iPA 构建失败并出现异常 - 在为 QA 测试/ AdHod 准备构建时发生 NonZeroExcitException

iPA building failed with an exception - NonZeroExcitException while preparing build for QA test/ AdHod

我每次构建 ipa 都失败


如果有人在查看以下错误消息时有任何想法,那就绕圈了

这个版本有什么问题

完整的错误消息文本是:

"ipatool 失败并出现异常:CmdSpec::NonZeroExcitException:命令已退出,pid 19900 退出 1: /Applications/Xcode.app/Contents/Developer/usr/bin/bitcode-build-tool -v -t /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin --sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk -o /var/folders/f4/wbk3bb9500s8527_0_ncx1r40000gn/T/ipatool20190729-17893-1r436rx/thinned-out/armv7/Payload/LanguageCurry.app/Frameworks/CardinalMobile.framework/CardinalMobile --generate-dsym /var/folders/f4/wbk3bb9500s8527_0_ncx1r40000gn/T/ipatool20190729-17893-1r436rx/thinned-out/armv7/Payload/LanguageCurry.app/Frameworks/CardinalMobile.framework/CardinalMobile. dSYM --strip-swift-符号/var/folders/f4/wbk3bb9500s8527_0_ncx1r40000gn/T/ipatool20190729-17893-1r436rx/thinned-in/armv7/Payload/LanguageCurry.app/Frameworks/CardinalMobile.framework/CardinalMobile 标准输出: 调试:SDK路径:/Applications/Xcode.app/Contents/Dev"

PS :我正在使用以下一组 pods

pod 'Alamofire', '~> 4.5'
  pod 'GoogleSignIn'
  pod 'JVFloatLabeledTextField'
  pod 'Braintree'
  pod 'BraintreeDropIn'
  pod 'CTShowcase'
  pod 'Fabric'
  pod 'Crashlytics'
  pod 'Firebase/Core'
  pod 'SwiftyStoreKit'
  pod 'OneSignal', '>= 2.6.2', '< 3.0'

经过 3 天的时间,我找到了解决这个问题的方法。

某些第三方不支持由于 App Thinning 和 Bitcode 功能而导致的构建失败 pods 因为它们已过时代码版本。


所以我不得不在我的 ipa 中关闭这些功能。

第 1 步。转到项目设置并关闭 启用位码 选项


第 2 步。在构建 ipa 时关闭 App Thinning

我们遇到了类似的问题,我已将其描述 我只是不想分享我们的调查结果,因为似乎没有人公布他们的结果。 没有位码就不需要分发。长话短说,其中包含 LLVM 检测,这会阻止 AppStore 处理。我写了整篇关于 XCode 12 and BigSur issues with XCFramework.

的博客

总而言之,在为分发创建 XCFramework 时,需要执行以下几个必要步骤以确保:

  • 使用存档构建是必须,发布构建是不够的
  • BUILD_LIBRARY_FOR_DISTRIBUTION 必须设置为 YES
  • SKIP_INSTALL 必须设置为 NO
  • GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO 关闭 GCC 工具并将它们从二进制文件中删除
  • CLANG_ENABLE_CODE_COVERAGE = NO 从二进制文件中关闭代码覆盖工具

以上所有内容有助于解决我们的准备和分发问题,如果您碰巧遇到与我们相同的问题,希望能为您节省一些时间。