我首先运行这个脚本:
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 Developer Portal。“
我确信我使用的配置文件UUID是Distribution one,因为当我使用文本编辑器打开文件时,我可以找到:
<key>aps-environment</key>
<string>production</string>
我设法发现的是,第二个传递的脚本使用另一个Provisioning 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...'
???
答案 0 :(得分:1)
答案在这里:xcodebuild error: no provisioning profile matches(标记为正确的那个)。 这有点令人困惑。基本上,本地机器中的UUID或配置文件名是什么并不重要。您需要转到https://developer.apple.com/account/ios/profile/production并复制名称标签旁边的内容(复制名称)。
或者您可以在计算机上配置文件目录的文件中找到名称下的ir。