Xcode仅在真机运行时出现Bitcode错误求助
以下是未提及的可能原因及对应解决思路:
确认Amplitude框架本身的Bitcode支持
你已开启项目的Bitcode,但依赖的Amplitude-iOS框架可能本身未包含Bitcode。可通过命令验证:otool -l /Users/xxxxxxxxx/Library/Developer/Xcode/DerivedData/Appname-dvsqmvczxjaaajfxojqecerjuauk/Build/Products/Debug-iphoneos/Amplitude-iOS/Amplitude_iOS.framework/Amplitude_iOS | grep bitcode若输出无
__LLVM相关字段,说明该框架确实不支持Bitcode,此时要么联系官方获取带Bitcode的版本,要么关闭自身项目的Bitcode。检查CocoaPods配置(若用Pod管理依赖)
若通过CocoaPods引入Amplitude,Podfile的配置可能覆盖了你设置的Bitcode参数。可在Podfile末尾添加钩子强制开启所有Pod的Bitcode:post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['ENABLE_BITCODE'] = 'YES' end end end执行
pod install后重新编译项目。确保所有Target的Bitcode设置一致
若项目包含多个Target(如主App、Widget、扩展等),需保证所有Target的Enable Bitcode设置完全统一,不能部分开启、部分关闭,否则会触发架构冲突报错。验证框架的架构完整性
报错指向arm64架构,可能你引入的Amplitude框架仅包含模拟器架构(x86_64),或真机arm64版本未携带Bitcode。用命令查看框架支持的架构:lipo -info /Users/xxxxxxxxx/Library/Developer/Xcode/DerivedData/Appname-dvsqmvczxjaaajfxojqecerjuauk/Build/Products/Debug-iphoneos/Amplitude-iOS/Amplitude_iOS.framework/Amplitude_iOS确认输出包含
arm64,若缺失则需重新下载包含真机架构的框架版本。尝试临时关闭Bitcode测试
苹果当前已放宽Bitcode的强制要求,App Store上传也允许关闭Bitcode。可暂时将主Target的Enable Bitcode设为NO,若能正常运行,说明问题根源就是Amplitude框架不支持Bitcode,此时保持关闭Bitcode即可。检查Xcode版本兼容性
旧版Xcode与新版Xcode编译的框架可能存在Bitcode兼容性问题。尝试升级Xcode至最新稳定版,或更换适配当前Xcode版本的Amplitude框架版本。
内容的提问来源于stack exchange,提问作者Sandra Passani

