2022년 5월 2일 월요일

Unity iOS 런타임 Crash 이슈


모바일 게임용 빌드머신으로 일반pc에 해킨토시os 설치하고 

젠킨스를 셋팅해서 AOS/iOS 빌드를 모두 수행하도록 하여 사용중 이었는데

iOS 정책으로 xcode 버전을 올려야 하는데 이를 위해서는 mac os를 업데이트 

해야 하는 큰 문제에 봉착하였다.

일반 mac도 잘모르는 판에 해킨토시 업데이트 라니 

관련 이슈를 처리할 개발자가 남아 도는 것도 아니고 mac mini를 새로 구매하여

새롭게 셋팅했다


새 빌드 머신 구성

Mac mini 8g 1t 

os Monterey

xcode 13.3.1

jenkins 2.332.1


빌드 셋팅은 기존 과 동일하게 하고 업데이트가 필요한부분은 업데이트를 진행 하였다

기타 homebrew 도 설치하여 필요한것들도 설치

필요한 인증서와 프로파일 설치

빌드 테스트 

- AOS 빌드는 별 문제 없이 퍼플리싱 업로드 까지 잘 진행 되었다.

- iOS 빌드는 빌드및 TestFlight 업로드까지는 문제가 없는데 iPhone 실행시 Crash가 발생

폰 로그를 살펴보니 아래와 같은 내용이 나왔다.

 Error loading /var/containers/Bundle/Application/AA927267-A484-45A3-A7D2-63CD35C6B155/ancestrallegacy.app/Frameworks/UnityFramework.framework/UnityFramework:  dlopen(/var/containers/Bundle/Application/AA927267-A484-45A3-A7D2-63CD35C6B155/ancestrallegacy.app/Frameworks/UnityFramework.framework/UnityFramework, 0x0109): dependent dylib '@rpath/libswiftCore.dylib' not found for '/private/var/containers/Bundle/Application/AA927267-A484-45A3-A7D2-63CD35C6B155/ancestrallegacy.app/Frameworks/UnityFramework.framework/UnityFramework'. relative file paths not allowed '@rpath/libswiftCore.dylib'


UnityFramework 에서 swift 라이브러리에 접근을 못하는 애러 메시지같다.

관련 내용을 구글링하여 다양한 솔루션을 시도해봤지만 뚜렸한 해법이 없었다.

같은 오류만 반복될뿐이였다.


몇 주간 고생하며 이리저리 찾아봐도 별 진전이 없었다. 

그와중에 코로나에 걸려 일주일 쌩으로 날리고 정신적으로나 육체적으로 모두 힘든 시간이 

흐르던 와중 우연찮게 중국 사이트에서 관련 이슈를 언급하는 내용이 있었는데

그 내용덕에 해결하게 되었다.

요지는 Unity 프로젝트내 외부 라이브러리중 Facebook 미디에이션 라이브러리가 swift 를 사용하고 이를 정상 빌드하기 위해서는 

Xcode > Build Setting > Runpath Search Paths  /usr/lib/swift 경로를 추가해야 한다는 거다.


https://developers.google.com/admob/ios/mediation/facebook#objective-c

참고) Facebook iOS MediationAdapter 6.9.0.0 이후 버전 해당


지금까지 엉뚱한곳에서 문제를 찾고 있었는데 이미 Google Admob 미디에이션 안내 사이트에 버젓이 나와 있던 내용이었다. 


Thank you!! China bro ~~


 

댓글 없음:

댓글 쓰기