【问题标题】:How to publish ipa which is produced with xcodebuild build command如何发布使用 xcodebuild build 命令生成的 ipa
【发布时间】:2016-10-27 13:53:02
【问题描述】:
我正在创建一个 iOS 应用程序,我使用 xcodebuild build ... 构建我的项目并使用 xcrun -sdk iphoneos PackageApplication ... 创建 ipa。当我尝试将 ipa 发布到 App Store 时,我收到以下错误:
错误 ITMS-90668:“无效的 Bundle Executable。可执行文件 'Project.app/Project' 包含不完整的位码。
我发现有一个解决这个问题的方法——将Enable Bitcode 设置为No。但这不是我想要的,因为如果我在工作区创建新项目,我还需要为新项目将此选项设置为 No,因为默认值为 Yes。
这个问题有其他解决方案吗?
【问题讨论】:
标签:
ios
xcode
app-store
publish
【解决方案1】:
经过一些研究,我发现当我使用xcodebuild build ... 和时,Enable Bitcode 设置为Yes -fembed-bitcode-marker 被添加到OTHER_CFLAGS 中用于clang。这个标志只是添加了一个“位码占位符”而不是完整的位码。这是由 Apple 完成的,因为位码的生成可能会减慢构建速度。要生成完整的位码,-fembed-bitcode-marker 必须替换为 -fembed-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 包含具有完整位码的二进制文件。