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

pka*_*amb 21 xcode itunesconnect testflight

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

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

当我在iTunes Connect上查看构建时,我也看到以下警告:

要使用TestFlight Beta Testing,构建XYZ必须包含正确的beta权利. 有关更多信息,请参阅常见问题.

要使用TestFlight Beta Testing,构建XYZ必须包含正确的beta权利.有关更多信息,请参阅常见问题.

链接的FAQ说明:

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

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

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

问题是,我正在使用新创建的App Store发行配置文件.我是这样创建的:

App Store分发配置文件

当我检查下载的Provisioning Profile的来源时,我看到:

<key>Entitlements</key>
<dict>
    // ...
    <key>aps-environment</key>
    <string>production</string>
    <key>beta-reports-active</key>
    <true/>
    // ...
Run Code Online (Sandbox Code Playgroud)

因此,供应配置文件设置为production并且确实包含beta-reports-active权利.

但是,当此版本上传到TestFlight时,iTunes Connect会继续抱怨.

有关如何解决此问题的任何想法?这是Apple的bug吗?

rdar:// 20128048

pka*_*amb 22

首先,请确保您使用的是App Store Distribution Provisioning Profile.这可能是您用于签署Apple TestFlight之前版本的Ad Hoc Distribution Provisioning Profile 的不同配置文件.

切换到App Store Distribution Provisioning Profile 后,我继续点击Error ITMS-90191 .我通过在Xcode项目中另外添加beta-reports-active我的Target Entitlements.plist文件的密钥来解决这个问题.

beta-reports-active密钥必须包含在提供个人资料目标的权利.

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>
Run Code Online (Sandbox Code Playgroud)

将权利添加到Target后,我可以成功将构建上传到iTunes Connect TestFlight而不会ITMS-90191发出警告:

在此输入图像描述