본문 바로가기

[unity]FBLPromises.framework/FBLPromises for architecture arm64 오류 수정 방법

앤디가이 2022. 12. 7.

Unity에서 구글 Admob 추가 후 IOS 빌드 시 Xcode 빌드에서 FBLPromises for architecture arm64 오류가 나오면서 빌드가 실패하는 케이스에 대한 해결 방안에 대해 알아보자.

 

기존 유니티 2018에서는 애드몹 추가 후 빌드&런으로 실행이 잘되던 프로젝트가 유니티 2021로 버전을 올리고, Google Admob 버전도 올리면서 새로운 환경으로 빌드 시도 시 에러가 나오면서 빌드가 되지 않았다. 

 

빌드 환경

 - Unity : 2021.3.15

 - Xcode : 14.1

 - Google Admob : v7.3.1

 - MacOS : Monterey(12.5)

 

 

상세 오류 메세지 

'/~/Build/Products/ReleaseForRunning-iphoneos/PromisesObjC/FBLPromises.framework/FBLPromises(FBLPromise.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. file '~/Build/Products/ReleaseForRunning-iphoneos/PromisesObjC/FBLPromises.framework/FBLPromises' for architecture arm64

 

 

해결 방안

유니티에서 빌드 후 생성되는 XCode 프로젝트를 보면, 기존과 달라진 점이 있다. 

기존에 Unity-IPhone 프로젝트 안에 있던 각종 라이브러리와 프레임워크가 별도 프로젝트 형태로 빠져 있는것이 발견되었다.

바로 UnityFramework라고 Targets에 별도로 구성이 빠져 있다.

 

Bitcode 활성화
Bitcode 활성화

 

Targets의 UnityFramework 항목을 선택 후 BuildSettings에 들어가 BuildOptions 항목 중 Enable Bitcode가 Yes로 설정되어 있다. 이 Enable Bitcode 설정 값을 No로 변경해주면 된다.

 

bitcode 값을 no로 바꿔야 한다는 것은 에러 문구를 통해 알 수 있었으나, Target에서 계속 Unity-iPhone이나 Pods만 바꾸다보니 계속 실패를 하였다. UnityFramework 항목이 별도로 빠져있을 줄은 처음 알았다. 

 

Unity 버전과 Admob, Xcode 버전을 지속적으로 업데이트 하기 위해서는 해당 변경 요소들을 잘 체크해 두면 도움이 될 것 같다.

 

댓글