【发布时间】:2017-03-30 09:58:27
【问题描述】:
我首先运行这个脚本:
xcodebuild clean archive -archivePath archive/MyApp -scheme MyAppScheme
它在归档目录中传递并生成 MyApp.xcarchive。 然后我尝试从存档中生成 .ipa 文件,并从那里开始有趣。我运行这个脚本:
xcodebuild -exportArchive -exportFormat ipa -archivePath "archive/MyApp.xcarchive" -exportPath "build/MyApp.ipa" -exportProvisioningProfile "UUID from file in ~/Library/MobileDevice/ProvisioningProfiles"
此脚本失败:error: no provisioning profile matches 'XXXXXXX-XXX-XXX...'
如果我尝试使用此构建脚本而不是之前的构建 .ipa:
xcodebuild -exportArchive -exportFormat ipa -archivePath "archive/MyApp.xcarchive" -exportPath "build/MyApp.ipa" PROVISIONING_PROFILE=Same UUID from file in ~/Library/MobileDevice/ProvisioningProfiles
它传递并生成 .ipa,但是当通过 Application Loader 提交 .ipa 文件时,我收到配置文件无效的错误:
错误 ITMS-90161:“配置文件无效。配置文件 包 com.myapp [Payload/MyApp.app] 中包含的配置文件是 无效的。 [缺少代码签名证书]。分布 将应用程序提交到应用程序时应使用配置文件 店铺。如需更多信息,请访问 iOS 开发者门户。”
我确定我使用的配置文件 UUID 是发行版一,因为当我使用文本编辑器打开文件时,我可以找到:
<key>aps-environment</key>
<string>production</string>
我设法发现通过的第二个脚本使用另一个配置 UUID(目录中有 3 个:个人一个和两个用于来自苹果开发者网站的应用程序 - 一个开发,另一个生产)。我通过以下步骤从这里发现了这一点:How to tell what profile/signing certificate was used to sign .ipa? 并检查 .ipa 文件中的 UUID,两者都是通过第二个脚本生成并通过 xcode 生成(xcode 将我传递给终端脚本的 UUID 传递)。
所以我假设构建 .ipa(第二个)的终端脚本忽略了运行脚本中插入的配置文件部分,而只是从配置文件目录中获取第一个。
关于如何修复以下脚本的任何建议:error: no provisioning profile matches 'XXXXXXX-XXX-XXX...' ???
【问题讨论】:
标签: ios xcode terminal provisioning-profile ipa