使用 xcodebuild -exportArchive(Xcode8.3,自动签名)时如何获取分发应用程序?

How to get a distribution app when using xcodebuild -exportArchive (Xcode8.3, Auto Signing)?

更新 Xcode8.3 后,选项“-exportSigningIdentity”、“-exportProvisioningProfile”和“-exportFormat'从'xcodebuild -exportArchive'中删除。

当我尝试获取分发应用程序时,出现以下错误:
xcodebuild:错误:选项“-exportProvisioningProfile”无效。

那么,当项目设置为启用自动签名时,如何从 MyApp.xcarchive 获取分发 MyApp.ipa?

当您设置 Automatic Signing Enabled 时 Xcode 将根据配置文件自动生成。

但是为了使您的命令正常工作,您需要在第一次手动导出存档。 完成后,Xcode 将生成配置文件(在 Apple Developer 网站上以 "XC" 开头)。

那么您的 xcodebuild 命令将起作用。

产品 -> 存档

完成后

Windows -> 管理器 -> Select 最后一个版本 -> 导出上传到 App Store 下的右侧面板)

如果您需要更多信息,请告诉我。

只需替换此参数:

-exportProvisioningProfile "MyProvisioningProfile"

与:

PROVISIONING_PROFILE_SPECIFIER="MyProvisioningProfile"

希望对您有所帮助。

听起来您想从现有的 xcarchive 在命令行上创建一个 IPA。从 Xcode 7 开始,首选的方法是(来自 man xcodebuild):

xcodebuild -exportArchive -archivePath xcarchivepath -exportPath destinationpath -exportOptionsPlist path

所以在你的情况下:

xcodebuild -exportArchive -archivePath MyApp.xcarchive -exportPath MyApp.ipa -exportOptionsPlist exportOptions.plist

exportOptions.plist 是一个 PLIST 文件,其中包含配置 IPA 导出的各种参数。有关所有可用选项,请参阅 xcodebuild -help。您必须至少为 method 指定一个条目(应用程序商店、临时、企业等 - 默认为开发)。如果您只是想导出用于 App-Store 分发,文件应如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>method</key>
    <string>app-store</string>
</dict>
</plist>