「ITMS-90381: Too many symbol files..」解决方案

640 阅读1分钟

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

原因解释:

  1. 出现 「ITMS-90381」是因为苹果发现 binary 中没有 armv7 的内容,但是却上传了 armv7 的 symbol。
  2. 出现 1 的现象是因为,Xcode 会根据工程设定自动处理 App binary 和 symbol,如果是 iOS 11+ 则不再产生 armv7 内容,但 Pod 工程只对 binary 做了处理,未处理 symbol,导致出现了 Pod 产物中 binary 不含 armv7,而 dsym symbol 包含 armv7。
  3. 解决思路是阻止 Pod 工程产生 armv7 的 dsym,方法有多种,配置 Pod 不产生 dsym,或者指定 Pod 的 arch,但副作用最小的还是上面这个方法(详见参考资料中的讨论)。

参考资料:

github.com/CocoaPods/C…