【问题标题】:Apple TestFlight upload warning ITMS-90191: missing `beta-reports-active` entitlementApple TestFlight 上传警告 ITMS-90191:缺少“beta-reports-active”权利
【发布时间】:2015-05-13 22:37:26
【问题描述】:

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

警告 ITMS-90191:“缺少 beta 授权。您的应用不包含 beta-reports-active 授权。如果您打算通过 TestFlight 分发此构建以进行 beta 测试,请使用新生成的配置重新构建此应用个人资料。”

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

要使用 TestFlight Beta 测试,构建 X.Y.Z 必须包含正确的 Beta 权利。如需更多信息,请参阅常见问题解答。

链接的常见问题解答指出:

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

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

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

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

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

<key>Entitlements</key>
<dict>
    // ...
    <key>aps-environment</key>
    <string>production</string>
    <key>beta-reports-active</key>
    <true/>
    // ...

因此,Provisioning Profile 是为production 设置的,并且确实包含beta-reports-active 权利。

但是,当这个版本被上传到 TestFlight 时,iTunes Connect 继续抱怨。

关于如何解决此问题的任何想法?这是 Apple 的错误吗?

rdar://20128048

【问题讨论】:

    标签: xcode app-store-connect testflight


    【解决方案1】:

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

    在我切换到 App Store 分发配置文件之后,我继续遇到错误 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>
    

    将权利添加到我的 Target 后,我​​能够成功地将构建上传到 iTunes Connect TestFlight,而不会出现ITMS-90191 警告:

    【讨论】:

    • 谢谢。而已。但是我必须创建一个新的配置文件,尽管现有的配置文件具有描述的密钥。
    【解决方案2】:

    手动编辑 plist 文件不适合我。
    这次编辑现有配置文件和生成文件也不起作用。
    但是,就像 joehl 一样,创建一个全新的配置文件实际上为我修复了它。因此,创建一个全新的供应配置文件,您将重新开始营业。这看起来像是 TestFlight 中的一个小故障。

    【讨论】:

    • 您的“旧”配置文件是 App Store Distribution 配置文件吗?新的 Apple TestFlight 确实需要与旧的 TestFlight 不同的配置文件类型。
    【解决方案3】:

    我可以通过将其添加到我的 xcodebuild 脚本来解决此问题。

    xcodebuild ... PROVISIONING_PROFILE=<Provisioning Profile Id>
    

    Build Settings中手动设置Code Sign Identities似乎也可以解决这个问题。

    【讨论】:

      【解决方案4】:

      使用 AppStore 配置文件为我解决了这个问题。我成功地在设备上分发和安装。我像往常一样使用 AdHoc 配置文件,突然我开始收到这个错误。确实令人沮丧。

      【讨论】:

        【解决方案5】:

        一个简单的解决方案:删除您以前的配置文件,然后创建一个新配置文件。解决了我的问题。 :)

        【讨论】:

          【解决方案6】:

          如果您使用的是 Fastlane,请确保将 sigh 步骤的 ad-hoc 设置为 false,否则它将生成不适合 TestFlight 分发的 ad-hoc 配置文件。即:

          sigh(
            adhoc: false,
            team_id: "XXXXXXXXX"
          )
          

          【讨论】:

            【解决方案7】:

            我使用以下命令编辑了我的entitlements.plist /usr/libexec/PlistBuddy -c "Add :beta-reports-active bool true" entitlements.plist

            【讨论】:

              【解决方案8】:

              我刚刚成功向 TestFlight 提交了一个新的应用版本,并在 Apple 接受我的提交后意识到我的 Entitlements.plist 中没有 beta-reports-active。

              在我之前为 TestFlight 提交的版本中,我的提交会因“缺少 beta 授权”而被拒绝

              有其他人注意到 TestFlight 不再需要 beta-reports-active 了吗?

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2015-04-18
                • 2015-03-12
                • 2021-12-17
                • 2015-11-27
                • 2020-09-12
                相关资源
                最近更新 更多