使用 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 之间存在差异?