我正在创建一个iOS应用程序,我使用xcodebuild build ...
来构建我的项目,并使用xcrun -sdk iphoneos PackageApplication ...
来创建ipa。当我尝试将ipa发布到App Store时,我收到以下错误:
错误ITMS-90668:"无效的Bundle Executable。可执行文件' Project.app/Project'包含不完整的bitcode。
我发现此问题有一个解决方案 - 将Enable Bitcode
设置为No
。但这不是我想要的,因为如果我在工作区创建新项目,我需要为新项目将此选项设置为“否”,因为默认值为Yes
。
这个问题还有其他解决方案吗?
答案 0 :(得分:0)
经过一些研究后,我发现当我使用xcodebuild build ...
和时,Enable Bitcode
设置为Yes
,-fembed-bitcode-marker
被添加到铿锵OTHER_CFLAGS
。这个标志只是添加了一个“bitcode占位符”而不是完整的bitcode。这是由Apple完成的,因为bitcode的生成可能会减慢构建速度。要生成完整的bitcode,-fembed-bitcode-marker
必须替换为-fembed-bitcode
。
使用完整的bitcode创建ipa后,我能够将我的应用程序发布到App Store。
我的问题的另一个解决方案是使用xcodebuild archive ...
代替xcodebuild build ...
来构建我的项目,使用xcodebuild -exportArchive -archivePath <path to the .xcarchive> ...
代替xcrun -sdk iphoneos PackageApplication ...
来创建我的ipa。使用归档方法时,-fembed-bitcode-marker
会自动替换为-fembed-bitcode
,而我的ipa包含带有完整bitcode的二进制文件。