我最近向TestFlight提交了一个构建版本,它被拒绝,并出现以下错误:
无效的捆绑包 - 不允许的LLVM工具。不要提交启用了LLVM配置文件检测或coverage集合的应用程序。关闭LLVM配置文件或代码覆盖率,重建您的应用程序并重新提交应用程序。
Apple的Technical Q&A建议运行以下命令来查找构建是否启用了LLMV Instrumentation符号或代码覆盖,但结果是否定的。
$ nm -m -arch all <PathToArchive>/Products/Applications/<AppName>.app/<AppBinary> | grep gcov
$ otool -l -arch all <PathToArchive>/Products/Applications/<AppName>.app/<AppBinary> | grep __llvm_prf
gist有用的carlossless也没有显示任何LLMV仪器符号。任何想法如何解决这一问题?
问题是应用程序中使用的内部SDK pod是在没有的情况下构建的
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO
CLANG_ENABLE_CODE_COVERAGE = NO
xcodebuild中的标志。当我们使用以下命令构建SDK时,Apple接受了构建:
xcodebuild -workspace "${FRAMEWORK_NAME}.xcworkspace" -scheme "${FRAMEWORK_NAME}" -configuration "${CONFIGURATION}" -arch arm64 -arch armv7 -arch armv7s only_active_arch=no CLANG_ENABLE_CODE_COVERAGE=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=NO BITCODE_GENERATION_MODE=bitcode defines_module=yes -sdk "iphoneos" -derivedDataPath "${OUTPUT_DIR}"
这在article的Carlossless中得到了很好的解释。