MacOS Sequoia로 업데이트를 하면서 XCode 16도 함께 업데이트를 했습니다.
iOS18 업데이트도 함께 진행됐지요.
업데이트 이후 처음으로 AppStore에 Distribut App을 진행하는 과정에서 다음과 같은 bitcode 에러가 발생했습니다.
Asset validation failed
Invalid Executable. The executable 'Runner.app/Frameworks/Mapbox.framework/Mapbox' contains bitcode
Asset validation failed
Invalid Executable. The executable 'Runner.app/Frameworks/Mapbox.framework/Mapbox' contains bitcode. (ID: 467e04cc-f5f2-4eff-9e2b-d3433fdc5c16)
2024-12-11 17:32:36.013 INFO: [ContentDelivery.Uploader.600000AEEF40]
오류가 뭔지 한참을 찾아보다가 해결방법을 찾아내고 적용해서
문제점을 해결했네요.
그 해결 방법을 공유해드리겠습니다.
저는 Mapbox 라는 OpenSource Map 라이브러리를 사용하는 과정에서 bitcode 문제가 발생했는데요 아래와 같이 문제점을 해결했습니다.
post_install do |installer|
installer.pods_project.targets.each do |target|
# Mapbox Bitcode 비활성화
if target.name == 'Mapbox'
`xcrun --sdk iphoneos bitcode_strip -r Pods/Mapbox-iOS-SDK/dynamic/Mapbox.framework/Mapbox -o Pods/Mapbox-iOS-SDK/dynamic/Mapbox.framework/Mapbox`
end
end
end
참고로 아래와 같은 내용도 있어서 적용해봤는데 해결되지는 않았습니다.
build_settings['ENABLE_BITCODE'] 가 먹히지 않는것 같더라고요.
post_install do |installer|
installer.pods_project.targets.each do |target|
# Mapbox Bitcode 비활성화
if target.name == 'Mapbox'
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
end
혹시 다른 라이브러리를 사용하는 경우도 bitcode 문제를 겪을수 있을것 같아
library의 위치인 "Pods/Mapbox-iOS-SDK/dynamic/Mapbox.framework/Mapbox"를 어떻게 찾는지에 대해 공유드려보겠습니다.
1. Project뷰에서 project/ios/Pods 폴더에서 사용하고 있는 라이브러리 이름 확인
2. Copy Path/Refrence... 클릭
3. Path From Content Root 클릭
4. 경로 확인 (MapBox의 경우 "ios/Pods/Mapbox-iOS-SDK/dynamic/Mapbox.framework/Mapbox")
5. ios를 제거하고 사용
참고 링크
1. [iOS]Bitcode와 관련 Issue
https://medium.com/@hyosing92/ios-bitcode%EC%99%80-%EA%B4%80%EB%A0%A8-issue-4643dc841af7
2. Fixing Bitcode Issues in Xcode 16
https://medium.com/@abdulahad2024/fixing-bitcode-issues-in-xcode-16-how-to-resolve-invalid-executable-errors-when-uploading-ios-da07a5a39c7c
'Development > Flutter' 카테고리의 다른 글
[해결방법] flutter_inappwebview SUPPRESS_ERROR_PAGE error (0) | 2024.09.10 |
---|---|
[해결방법] Error: CocoaPods not installed or not in valid state (0) | 2024.08.23 |
[Tips] build.gradle 구조 개선하기 (local.properties 사용) (0) | 2024.08.19 |
[해결방법] dSYM 누락을 감지했습니다 (0) | 2024.08.16 |
[해결방법] 대상 API 수준을 업데이트 하는 방법 (0) | 2024.08.13 |