当我将构建内容上传到新的Apple拥有的和iTunes Connect集成的TestFlight时,我会看到以下日志:
警告ITMS-90191:"缺少测试版权利。您的应用不包含beta-reports-active授权。如果您打算通过TestFlight分发此版本以进行beta测试,请使用新生成的配置文件重新构建此应用程序。"
当我查看iTunes Connect上的版本时,我也看到以下警告:
要使用TestFlight Beta Testing,构建X.Y.Z必须包含正确的beta权利。有关详细信息,请参阅常见问题解答。
链接的常见问题解答声明:
如果我的预发布版本不包含正确的测试版权限,我该怎么办?
要使用TestFlight应用程序测试预发布版本,必须使用包含测试版权利的App Store Distribution Provisioning配置文件对其进行签名。在iOS开发人员中心生成的新分发配置文件将自动包含测试版权。
如果您具有在启动TestFlight Beta Testing之前生成的现有分发配置文件,则必须重新生成配置文件。
问题是我我使用新创建的App Store Distribution Provisioning Profile。我是这样创建的:
当我检查下载的Provisioning Profile的来源时,我看到:
<key>Entitlements</key>
<dict>
// ...
<key>aps-environment</key>
<string>production</string>
<key>beta-reports-active</key>
<true/>
// ...
因此,配置文件设置为production
,确实包含beta-reports-active
权利。
但是,当此版本上传到TestFlight时,iTunes Connect会继续抱怨。
有关如何解决此问题的任何想法?这是Apple的错误吗?
rdar:// 20128048
答案 0 :(得分:22)
首先,请确保您使用的是 App Store分发配置文件。这可能来自您用于签署Apple TestFlight之前版本的Ad Hoc Distribution Provisioning Profile的不同配置文件。
我在切换到App Store Distribution Provisioning Profile后继续点击Error ITMS-90191 。我通过在Xcode项目中向我的Target的beta-reports-active
文件添加Entitlements.plist
密钥来修复此问题。
beta-reports-active
密钥必须包含在配置文件 AND 目标的权利中。
TargetName.entitlements
:
<?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>beta-reports-active</key>
<true/>
// ...
</dict>
</plist>
将权利添加到我的目标后,我能够成功将构建上传到iTunes Connect TestFlight,而不会发出ITMS-90191
警告:
答案 1 :(得分:2)
手动编辑plist文件并没有为我做 编辑现有配置文件并生成文件这次也不起作用 但是,就像joehl一样,创建一个品牌新的配置文件实际上为我修复了它。因此,创建一个全新的配置文件,您将重新开始营业。这看起来像是TestFlight中的一个小故障。
答案 2 :(得分:2)
我能够通过将其添加到我的xcodebuild脚本来解决这个问题。
xcodebuild ... PROVISIONING_PROFILE=<Provisioning Profile Id>
似乎手动设置构建设置中的代码签名标识也可以解决此问题。
答案 3 :(得分:2)
使用AppStore配置文件为我解决了这个问题。我成功地在设备上分发和安装。我像往常一样使用AdHoc配置文件,突然间我开始收到此错误。确实令人沮丧。
答案 4 :(得分:1)
一个简单的解决方案:删除以前的配置文件,然后创建一个新配置文件。解决了我的问题。 :)
答案 5 :(得分:1)
如果您正在使用Fastlane,请确保为sigh
步骤将ad-hoc设置为false,否则它将生成一个不适合TestFlight分发的ad-hoc配置文件。即:
sigh(
adhoc: false,
team_id: "XXXXXXXXX"
)
答案 6 :(得分:1)
我使用以下命令编辑了entitlements.plist
:
/usr/libexec/PlistBuddy -c "Add :beta-reports-active bool true" entitlements.plist
答案 7 :(得分:0)
我刚刚成功地向TestFlight提交了一个新的应用程序版本,并在Apple接受我的提交后意识到,我的Entitlements.plist中没有beta-reports-active。
在我以前提交的TestFlight版本中,我的提交将被拒绝获得“缺少beta版的权利”
有没有其他人注意到TestFlight不再需要beta-reports-active?