Apple TestFlight上传警告ITMS-90191:缺少“beta-reports-active”权利

时间:2015-03-11 22:20:04

标签: xcode itunesconnect testflight

当我将构建内容上传到新的Apple拥有的和iTunes Connect集成的TestFlight时,我会看到以下日志:

  

警告ITMS-90191:"缺少测试版权利。您的应用不包含beta-reports-active授权。如果您打算通过TestFlight分发此版本以进行beta测试,请使用新生成的配置文件重新构建此应用程序。"

当我查看iTunes Connect上的版本时,我也看到以下警告:

To use TestFlight Beta Testing, build X.Y.Z must contain the correct beta entitlement. For more information, see the FAQ.

  

要使用TestFlight Beta Testing,构建X.Y.Z必须包含正确的beta权利。有关详细信息,请参阅常见问题解答。

链接的常见问题解答声明:

  

如果我的预发布版本不包含正确的测试版权限,我该怎么办?

     

要使用TestFlight应用程序测试预发布版本,必须使用包含测试版权利的App Store Distribution Provisioning配置文件对其进行签名。在iOS开发人员中心生成的新分发配置文件将自动包含测试版权。

     

如果您具有在启动TestFlight Beta Testing之前生成的现有分发配置文件,则必须重新生成配置文件。

问题是我使用新创建的App Store Distribution Provisioning Profile。我是这样创建的:

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

8 个答案:

答案 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警告:

enter image description here

答案 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?