使用 xcodebuild -exportArchive (Xcode8.3, Auto Signing) 时如何获取分发应用程序?

Posted

技术标签:

【中文标题】使用 xcodebuild -exportArchive (Xcode8.3, Auto Signing) 时如何获取分发应用程序?【英文标题】:How to get a distribution app when using xcodebuild -exportArchive (Xcode8.3, Auto Signing)? 【发布时间】:2017-03-30 12:18:44 【问题描述】:

更新 Xcode8.3 后,选项 '-exportSigningIdentity'、'-exportProvisioningProfile' 和 '-exportFormat' 已从 ' xcodebuild -exportArchive'。

当我尝试获取分发应用程序时,我收到以下错误:xcodebuild: error: invalid option '-exportProvisioningProfile'。

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

Automatic Signing

【问题讨论】:

xcodebuild 中发生了一些变化。见***.com/a/43147906/171933 thanx,我注意到了。我的观点是如何在构建系统中为应用商店获取 .ipa~ 我在答案中概述的步骤应该在最后吐出一个 ipa! 【参考方案1】:

听起来您想从现有的 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>

【讨论】:

我转换了我的命令行,除了推送之外一切正常……我不确定它是否使用了良好的配置文件……我的项目中有很多具有不同配置文件的目标,我试图找到解决了 2 天......什么都没有。将安装旧版本的 xCode ..【参考方案2】:

只需替换此参数即可:

-exportProvisioningProfile "MyProvisioningProfile"

与:

PROVISIONING_PROFILE_SPECIFIER="MyProvisioningProfile"

希望对你有帮助。

【讨论】:

【参考方案3】:

当你设置Automatic Signing Enabled时,Xcode 会自动生成相应的配置文件。

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

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

产品 -> 存档

完成后

Windows -> Organizer -> 选择上一个版本 -> 导出下的右侧面板>上传到应用商店)

如果您需要更多信息,请随时通知我。

【讨论】:

如果我使用构建系统(如 jenkins),这将如何工作? 手动完成至少一次后,它就会起作用。为了让 Xcode 生成你的配置文件。

以上是关于使用 xcodebuild -exportArchive (Xcode8.3, Auto Signing) 时如何获取分发应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在使用 XCode 和 xcodebuild 之间存在差异?

Xcode 7.2 使用 xcodebuild 构建项目失败

NSUserdefaults 使用 xcodebuild

通过 xcodebuild 命令更改目标属性

使用命令 xcodebuild 时如何更改构建路径

xcodebuild 无法使用 XCTestExpectation 运行异步测试?