Xcode 12 存档失败:ipatool 失败并出现异常:#<CmdSpec::NonZeroExitException

Xcode 12 archive failed: ipatool failed with an exception: #<CmdSpec::NonZeroExitException

我已经为这个错误苦苦挣扎了 2 周,并且我尝试了几乎所有在线可用的解决方案。尝试导出临时 ipa 时,出现以下错误:

{ code = 1061; description = "ipatool failed with an exception: #<CmdSpec::NonZeroExitException: $ /Applications/Xcode_new.app/Contents/Developer/usr/bin/python3 /Applications/Xcode_new.app/Contents/Developer/usr/bin/bitcode-build-tool -v -t /Applications/Xcode_new.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin -L /var/folders/n7/bmb8rpvx1r7g762vv1bm66lm0000gn/T/ipatool20201005-8057-ws4wo9/thinned-out/arm64/Payload/HelloWorld.app/Frameworks/XYZ.framework -L /var/folders/n7/bmb8rpvx1r7g762vv1bm66lm0000gn/T/ipatool20201005-8057-ws4wo9/thinned-out/arm64/Payload/HelloWorld.app/Frameworks --sdk /Applications/Xcode_new.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk -o /var/folders/n7/bmb8rpvx1r7g762vv1bm66lm0000gn/T/ipatool20201005-8057-ws4wo9/thinned-out/arm64/Payload/HelloWorld.app/HelloWorld --generate-dsym /var/folders/n7/bmb8rpvx1r7g762vv1bm66lm0000gn/T/ipatool20201005-8057-ws4wo9/thinned-out/arm64/Payload/HelloWorld.app/HelloWorld.dSYM --strip-swift-symbols /var/folders/n7/bmb8rpvx1r7g762vv1bm66lm0000gn/T/ipatool20201005-8057-ws4wo9/thinned-in/arm64/Payload/HelloWorld.app/HelloWorld\nStatus: pid 12181 exit 1\nStdout:\n SDK path: /Applications/Xcode_new.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk\n SDK version: 14.0\n PATH: ['/Applications/Xcode_new.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin', '/Applications/Xcode_new.app/Contents/Developer/usr/bin']\n Using: /Applications/Xcode_new.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo\n MachoInfo: cd /\n
['/Applications/Xcode_new.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo', '-info', '/var/folders/n7/bmb8rpvx1r7g762vv1bm66lm0000gn/T/ipatool20201005-8057-ws4wo9/thinned-in/arm64/Payload/HelloWorld.app/HelloWorld']\n -= Output =-\n Non-fat file: /var/folders/n7/bmb8rpvx1r7g762vv1bm66lm0000gn/T/ipatool20201005-8057-ws4wo9/thinned-in/arm64/Payload/HelloWorld.app/HelloWorld is architecture: arm64\n Exited with 0\n \n Command took 0 seconds\n Using: /Applications/Xcode_new.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dwarfdump\n GetUUID: cd /\n
['/Applications/Xcode_new.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dwarfdump', '-u', '/var/folders/n7/bmb8rpvx1r7g762vv1bm66lm0000gn/T/ipatool20201005-8057-ws4wo9/thinned-in/arm64/Payload/HelloWorld.app/HelloWorld']\n -= Output =-\n UUID: E5D8E7AF-7D34-32E1-9337-A84BC4389DFC (arm64) /var/folders/n7/bmb8rpvx1r7g762vv1bm66lm0000gn/T/ipatool20201005-8057-ws4wo9/thinned-in/arm64/Payload/HelloWorld.app/HelloWorld\n Exited with 0\n \n Command took 0 seconds\n Using: /Applications/Xcode_new.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/segedit\n ExtractXAR: cd /\n
['/Applications/Xcode_new.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/segedit', '/var/folders/n7/bmb8rpvx1r7g762vv1bm66lm0000gn/T/ipatool20201005-8057-ws4wo9/thinned-in/arm64/Payload/HelloWorld.app/HelloWorld', '-extract', 'LLVM', 'bundle', '/var/folders/n7/bmb8rpvx1r7g762vv1bm66lm0000gn/T/HelloWorld8zix1rk8/HelloWorld.arm64.xar']\n -= Output =-\n Exited with 0\n \n Command took 0 seconds\n Bitcode bundle version: 1.0\n Setting platform to: iOS\n Using: /Applications/Xcode_new.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld\n Linker option verification failed for bundle /var/folders/n7/bmb8rpvx1r7g762vv1bm66lm0000gn/T/HelloWorld8zix1rk8/HelloWorld.arm64.xar (unrecognized arguments: -sectalign DATA llvm_prf_cnts -sectalign DATA llvm_prf_data)\n\nStderr:\n\n>\n
/Applications/Xcode_new.app/Contents/Developer/usr/bin/ipatool:373:in run'\n /Applications/Xcode_new.app/Contents/Developer/usr/bin/ipatool:2808:in block in CompileOrStripBitcodeInBundle'\n
/Applications/Xcode_new.app/Contents/Developer/usr/bin/ipatool:2747:in each'\n /Applications/Xcode_new.app/Contents/Developer/usr/bin/ipatool:2747:in CompileOrStripBitcodeInBundle'\n
/Applications/Xcode_new.app/Contents/Developer/usr/bin/ipatool:3016:in block in ProcessIPA'\n /Applications/Xcode_new.app/Contents/Developer/usr/bin/ipatool:2978:in each'\n
/Applications/Xcode_new.app/Contents/Developer/usr/bin/ipatool:2978:in ProcessIPA'\n /Applications/Xcode_new.app/Contents/Developer/usr/bin/ipatool:3928:in '"; info = { }; level = ERROR; type = exception; } ); extractedWatchIPAInputPath = "/var/folders/n7/bmb8rpvx1r7g762vv1bm66lm0000gn/T/XcodeDistPipeline.~~~UmHmV8/Root"; }

这里有趣的部分是最后的输出:

-= Output =-\n Exited with 0\n \n Command took 0 seconds\n Bitcode bundle version: 1.0\n Setting platform to: iOS\n Using: /Applications/Xcode_new.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld\n Linker option verification failed for bundle /var/folders/n7/bmb8rpvx1r7g762vv1bm66lm0000gn/T/HelloWorld8zix1rk8/HelloWorld.arm64.xar (unrecognized arguments: -sectalign DATA llvm_prf_cnts -sectalign DATA llvm_prf_data)

看到 llvm_prf_cnts 和 llvm_prf_data,我检查了 this apple guide 并禁用了代码覆盖率以及 GCC_INSTRUMENT_PROGRAM_FLOW_ARCS

我们启用了 Bitcode,同样的设置在 Xcode 11 中有效。

有人可以解释一下为什么会发生这种情况吗?任何线索将不胜感激。谢谢。

终于找到问题了

CLANG_ENABLE_CODE_COVERAGE 被设置为 NO 但 CFLAG -fprofile-instr-generate 仍然被设置。删除 -fprofile-instr-generate 有效:)