IPA 上传苹果后台后出现 「ITMS-90381: Too many symbol files..」系列提示,虽不影响提审,但邮件看着心烦。
解决方案如下:
在 Podfile 中加入下述内容
minimum_deployment_target = 11.0 # 11.0 or higher
post_install do |installer|
# Workaround for AppStore issue
# ITMS-90381: Too many symbol files
# https://github.com/CocoaPods/CocoaPods/issues/7111
installer.generated_projects.each do |project|
project.targets.each do |target|
target.build_configurations.each do |config|
# Ensure we set all Pods to match the minimum deployment target specified by the app
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = minimum_deployment_target
end
end
end
end
原因解释:
- 出现 「ITMS-90381」是因为苹果发现 binary 中没有 armv7 的内容,但是却上传了 armv7 的 symbol。
- 出现 1 的现象是因为,Xcode 会根据工程设定自动处理 App binary 和 symbol,如果是 iOS 11+ 则不再产生 armv7 内容,但 Pod 工程只对 binary 做了处理,未处理 symbol,导致出现了 Pod 产物中 binary 不含 armv7,而 dsym symbol 包含 armv7。
- 解决思路是阻止 Pod 工程产生 armv7 的 dsym,方法有多种,配置 Pod 不产生 dsym,或者指定 Pod 的 arch,但副作用最小的还是上面这个方法(详见参考资料中的讨论)。