nhn / gpm.unity

A brand of NHN providing free services required for game development.

Home Page:https://gameplatform.nhncloud.com/en/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Xcode 빌드시 에러

Maqtup opened this issue · comments

commented

Service

  • WebView
  • AssetManagement
  • Communicator
  • LogViewer
  • Manager
  • UI
  • Profiler
  • Adapter
  • DLST

Version

Unity : 2020.3.34f1
WebView : 1.11.1
Xcode : 13.2
Firebase : 10.2.0
GamePot : 3.4.2

Describe the bug

유니티에서 웹뷰 패키지 설치 후 Build Phase에 번들 및 -ObjC를 OnPostProcessBuild에 추가하고 iOS로 빌드 했습니다.
xcode에서 빌드를 하면 아래와 같은 에러가 발생하여 문의 드립니다.

ld: warning: arm64 function not 4-byte aligned: _unwind_tester from /Users/xxxxx/Documents/UnityProject/xxxxxx/xxxxxx/Builds/iOS/Libraries/libiPhone-lib.a(unwind_test_arm64.o) Undefined symbols for architecture arm64: "_objc_msgSend$enumerateMatchesInString:options:range:usingBlock:", referenced from: -[GPMUtility(Json) extractNodeNameAndIndexInArrayString:] in GamePackageManagerWebView(GPMUtility+Json.o) "_objc_msgSend$extractNodeNameAndIndexInArrayString:", referenced from: ___50+[GPMUtility(Json) extractValueFrom:searchString:]_block_invoke in GamePackageManagerWebView(GPMUtility+Json.o) "_objc_msgSend$containsString:", referenced from: ___42+[GPMUtility(Json) valueFromJson:forPath:]_block_invoke in GamePackageManagerWebView(GPMUtility+Json.o) "_objc_msgSend$hasSuffix:", referenced from: ___42+[GPMUtility(Json) valueFromJson:forPath:]_block_invoke in GamePackageManagerWebView(GPMUtility+Json.o) ___42+[GPMUtility(Json) valueFromJson:forPath:]_block_invoke.12 in GamePackageManagerWebView(GPMUtility+Json.o) "_objc_msgSend$characterSetWithCharactersInString:", referenced from: ___42+[GPMUtility(Json) valueFromJson:forPath:]_block_invoke in GamePackageManagerWebView(GPMUtility+Json.o) ___42+[GPMUtility(Json) valueFromJson:forPath:]_block_invoke.12 in GamePackageManagerWebView(GPMUtility+Json.o) "_objc_msgSend$array", referenced from: +[GPMUtility(Json) valueFromJson:forPath:] in GamePackageManagerWebView(GPMUtility+Json.o) "_objc_msgSend$queryDictionaryInQueryString:", referenced from: -[NSURL(extensionOfQuery) queryDictionary] in GamePackageManagerWebView(GPMUtility+ContainerEx.o) "_objc_msgSend$JSONDictionaryFromData:errror:", referenced from: -[NSData(extension) JSONString] in GamePackageManagerWebView(GPMUtility+ContainerEx.o) -[NSData(extension) JSONStringWithError:] in GamePackageManagerWebView(GPMUtility+ContainerEx.o) "_objc_msgSend$allKeys", referenced from: -[NSDictionary(extension) objectForCaseInsensitiveKey:] in GamePackageManagerWebView(GPMUtility+ContainerEx.o) "_objc_msgSend$JSONPrettyStringFromDictionary:error:", referenced from: -[NSDictionary(extension) JSONPrettyString] in GamePackageManagerWebView(GPMUtility+ContainerEx.o) -[NSDictionary(extension) JSONPrettyStringWithError:] in GamePackageManagerWebView(GPMUtility+ContainerEx.o) "_objc_msgSend$prettyJsonString", referenced from: -[GPMWebViewError debugDescription] in GamePackageManagerWebView(GPMWebViewError.o) "_objc_msgSend$jsonString", referenced from: -[GPMWebViewError description] in GamePackageManagerWebView(GPMWebViewError.o) "_objc_msgSend$errorWithDomain:code:userInfo:", referenced from: +[GPMWebViewError resultWithCode:] in GamePackageManagerWebView(GPMWebViewError.o) +[GPMWebViewError resultWithCode:message:] in GamePackageManagerWebView(GPMWebViewError.o) +[GPMWebViewError resultWithDomain:code:userInfo:] in GamePackageManagerWebView(GPMWebViewError.o) +[GPMWebViewError resultWithDomain:code:description:underlyingError:] in GamePackageManagerWebView(GPMWebViewError.o) .....
Undefined symbol: _objc_msgSend$enumerateMatchesInString:options:range:usingBlock:
Undefined symbol: _objc_msgSend$extractNodeNameAndIndexInArrayString:
Undefined symbol: _objc_msgSend$containsString:
Undefined symbol: _objc_msgSend$hasSuffix:
Undefined symbol: _objc_msgSend$characterSetWithCharactersInString:
Undefined symbol: _objc_msgSend$array
Undefined symbol: _objc_msgSend$queryDictionaryInQueryString:
Undefined symbol: _objc_msgSend$JSONDictionaryFromData:errror:
Undefined symbol: _objc_msgSend$allKeys
Undefined symbol: _objc_msgSend$JSONPrettyStringFromDictionary:error:
Undefined symbol: _objc_msgSend$prettyJsonString
Undefined symbol: _objc_msgSend$jsonString
Undefined symbol: _objc_msgSend$errorWithDomain:code:userInfo:
Undefined symbol: _objc_msgSend$objectForKeyedSubscript:
Undefined symbol: _objc_msgSend$preferredInterfaceOrientationForPresentation
Undefined symbol: _objc_msgSend$supportedInterfaceOrientations
Undefined symbol: _objc_msgSend$grayColor
Undefined symbol: _objc_msgSend$setNavigationBarHidden:
Undefined symbol: _objc_msgSend$setConfiguration:
Undefined symbol: _objc_msgSend$initWithURL:
Undefined symbol: _objc_msgSend$setPreferredBarTintColor:
Undefined symbol: _objc_msgSend$navigationTextColor
Undefined symbol: _objc_msgSend$setPreferredControlTintColor:
Undefined symbol: _objc_msgSend$safariViewController
Undefined symbol: _objc_msgSend$selectedViewController
Undefined symbol: _objc_msgSend$visibleViewController
Undefined symbol: _objc_msgSend$presentedViewController
Undefined symbol: _objc_msgSend$topViewControllerWithRootViewController:
Undefined symbol: _objc_msgSend$rootViewControllerForAlertController
Undefined symbol: _objc_msgSend$whitespaceCharacterSet
Undefined symbol: _objc_msgSend$getWidth
Undefined symbol: _objc_msgSend$range
Undefined symbol: _objc_msgSend$getY
Undefined symbol: _objc_msgSend$getX
Undefined symbol: _objc_msgSend$setMargins🔝right:bottom:
Undefined symbol: _objc_msgSend$setSize:height:
Undefined symbol: _objc_msgSend$setSafariViewController:
Undefined symbol: _objc_msgSend$localizedDescription
Undefined symbol: _objc_msgSend$setCallbackCompletion:
Undefined symbol: _objc_msgSend$queryItems
Undefined symbol: _objc_msgSend$initWithConfiguration:
Undefined symbol: _objc_msgSend$setOpenCompletion:
Undefined symbol: _objc_msgSend$setSchemeList:
Undefined symbol: _objc_msgSend$setObject:forKey:
Undefined symbol: _objc_msgSend$setWebViewController:
Undefined symbol: _objc_msgSend$view
Undefined symbol: _objc_msgSend$findTopMostViewController
Undefined symbol: _objc_msgSend$safeBrowsingController
Undefined symbol: _objc_msgSend$showWithHTMLFile:bundle:
Undefined symbol: _objc_msgSend$setIsBackButtonVisible:
Undefined symbol: _objc_msgSend$showWithHTMLFile:
Undefined symbol: _objc_msgSend$UTF8String
Undefined symbol: _objc_msgSend$SDKLogLevel
Undefined symbol: _objc_msgSend$initWithFormat:arguments:
Undefined symbol: _objc_msgSend$setNavigationTextColor:
Undefined symbol: _objc_msgSend$windows
Undefined symbol: _objc_msgSend$showWithURL:
Undefined symbol: _objc_msgSend$isBackButtonVisible
Undefined symbol: _objc_msgSend$setWindowLevel:
Undefined symbol: _objc_msgSend$moveToPoint:
Undefined symbol: _objc_msgSend$makeKeyAndVisible
Undefined symbol: _objc_msgSend$setTintColor:
Undefined symbol: _objc_msgSend$setIsClearCache:
Undefined symbol: _objc_msgSend$show:
Undefined symbol: _objc_msgSend$queryItemWithName:value:
Undefined symbol: _objc_msgSend$arrayWithArray:
Undefined symbol: _objc_msgSend$initWithPath:
Undefined symbol: _objc_msgSend$whitespaceAndNewlineCharacterSet
Undefined symbol: _objc_msgSend$setOrientationMask:
Undefined symbol: _objc_msgSend$componentsSeparatedByCharactersInSet:
Undefined symbol: _objc_msgSend$renderDefaultPopupCloseButtonWith:
Undefined symbol: _objc_msgSend$JSONObjectWithData:options:error:
Undefined symbol: _objc_msgSend$JSONDataFromDictionary:options:error:
Undefined symbol: _objc_msgSend$initWithData:encoding:
Undefined symbol: _objc_msgSend$dataWithJSONObject:options:error:
Undefined symbol: _objc_msgSend$initWithFrame:configuration:
Undefined symbol: _objc_msgSend$initWithTarget:action:
Undefined symbol: _objc_msgSend$numberWithInteger:
Undefined symbol: _objc_msgSend$enumerateKeysAndObjectsUsingBlock:
Undefined symbol: _objc_msgSend$setBarTintColor:
Undefined symbol: _objc_msgSend$setProvidesPresentationContextTransitionStyle:
Undefined symbol: _objc_msgSend$interfaceOrientationMaskWithString:
Undefined symbol: _objc_msgSend$interfaceOrientationsOfApplicationPlist
Undefined symbol: _objc_msgSend$sharedGPMWebView
Undefined symbol: _objc_msgSend$convertApplicationOrientation:
Undefined symbol: _objc_msgSend$isActive
Undefined symbol: _objc_msgSend$setNavigationBarColor:
Undefined symbol: _objc_msgSend$setIsMaskViewVisible:
Undefined symbol: _objc_msgSend$setGoBackImagePathForFullScreenNavigation:
Undefined symbol: _objc_msgSend$setCloseImagePathForPopup:
Undefined symbol: _objc_msgSend$setSizeInternal:height:
Undefined symbol: _objc_msgSend$widthAnchor
Undefined symbol: _objc_msgSend$setSupportMultipleWindows:
Undefined symbol: _objc_msgSend$setRootViewControllerForAlertController:
Undefined symbol: _objc_msgSend$webView:didCommitNavigation:
Undefined symbol: _objc_msgSend$window
Undefined symbol: _objc_msgSend$setUserAgentString:
Undefined symbol: _objc_msgSend$setAddJavascript:
Undefined symbol: _objc_msgSend$length
Undefined symbol: _objc_msgSend$addJavascript

The same with me

안녕하세요. @Maqtup 님.
먼저 GPM을 사용해 주셔서 감사합니다.

문의하신 Unity 버전 2020.3.34f1에서는 GPM WebView 단독으로는 이슈 없는 점을 확인했습니다.
Firebase, GamePot이 함께 배포되며 발생하는 현상으로 보이며, 내용 확인되면 댓글로 전달드리겠습니다.

감사합니다.

In the Unity version 2020.3.34f1, we confirmed that GPM WebView alone has no issue.
It seems to be an issue that occurs when Firebase or GamePot are distributed together, and We will forward it to you in the comments when the contents are confirmed.

Thank you.

안녕하세요. @Maqtup 님.

GPM WebView에 Firebase를 연결했을 때, 하위 메시지는 다르지만 arm64 function not 4-byte aligned 경고를 확인했습니다.
Xcode workspace에서 [Unity-iPhone, UnityFramework] > Build Settings > Enable Bitcode를 YES에서 NO로 변경 후 빌드 및 실행에 문제가 없었습니다.
Gamepot의 경우 사내 정책상 접근이 힘들어 추가 테스트를 진행하지 못했습니다.

Enable Bitcode 설정에 대한 테스트 부탁드리며, 정상 빌드가 되지 않는다면 아래 링크도 참고 부탁드립니다.
https://issuetracker.unity3d.com/issues/ios-arkit-face-tracking-build-fails-in-xcode-arm64-function-not-4-byte-aligned

감사합니다.

When imported GPM WebView and Firebase, We saw the arm64 function not 4-byte aligned warning.
After changing [Unity-iPhone, UnityFramework] > Build Settings > Enable Bitcode from YES to NO in the Xcode workspace, we had no issues building and running.
For Gamepot, we did not have access to it due to internal policies, so we were unable to conduct further testing.

Please test the Enable Bitcode setting, and if it doesn't build properly, please refer to the link below.
https://issuetracker.unity3d.com/issues/ios-arkit-face-tracking-build-fails-in-xcode-arm64-function-not-4-byte-aligned

Thank you.

commented

답변 감사합니다. 저희는 이미 Bitcode를 No로 설정해서 사용중이었습니다.
그래도 에러가 나는것으로 보면 GamePot 과의 문제라고 생각되어 지네요.
사규상 추가 테스트가 힘드시니 어쩔수 없겠네요.
대응 감사합니다~

@Maqtup 님. 답변 감사합니다.
추가 문의 사항이 있으시면 언제든 편하게 연락 부탁드립니다.
이슈 클로즈하겠습니다.