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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/28998478/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-08 18:04:07  来源:igfitidea点击:

Apple TestFlight upload warning ITMS-90191: missing `beta-reports-active` entitlement

xcodeapp-store-connecttestflight

提问by pkamb

When I upload a build to the new Apple owned and iTunes Connect-integrated TestFlight, I see the following log:

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

WARNING ITMS-90191: "Missing beta entitlement. Your app does not include the beta-reports-active entitlement. If you intend to distribute this build via TestFlight for beta testing, please re-build this app with a newly generated provisioning profile."

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

When I look at the build on iTunes Connect, I also see the following warning:

当我查看 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 测试,构建 XYZ 必须包含正确的 Beta 授权。 有关更多信息,请参阅常见问题解答。

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

要使用 TestFlight Beta 测试,构建 XYZ 必须包含正确的 Beta 授权。有关更多信息,请参阅常见问题解答。

The linked FAQ states:

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

What should I do if my prerelease build does not contain the correct beta entitlement?

To use the TestFlight app to test your prerelease build, it must be signed with an App Store Distribution Provisioning profile that includes the beta entitlement. New Distribution Provisioning profiles generated in the iOS Developer Center will automatically contain the beta entitlement.

If you have an existing Distribution Provisioning Profile that was generated before the launch of TestFlight Beta Testing, you must regenerate the profile.

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

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

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

The problem is that I amusing a newly created App Store Distribution Provisioning Profile. I created it like so:

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

App Store Distribution Provisioning Profile

App Store 分发配置文件

When I inspect the source of the downloaded Provisioning Profile, I see:

当我检查下载的配置文件的来源时,我看到:

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

So the Provisioning Profile is set for productionand doescontain the beta-reports-activeentitlement.

因此,供应配置文件设置为production包含的beta-reports-active权利。

However, iTunes Connect continues to complain when this build is uploaded to TestFlight.

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

Any ideas on how to fix this issue? Is this an Apple bug?

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

rdar://20128048

雷达://20128048

采纳答案by pkamb

First, be sure that you are using an App Store Distribution Provisioning Profile. This is likely a differentprovisioning profile from the Ad Hoc Distribution Provisioning Profile you were using to sign pre-Apple TestFlight builds.

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

I continued to hit Error ITMS-90191 afterI switched to an App Store Distribution Provisioning Profile. I fixed the issue by additionally adding the beta-reports-activekey to my Target's Entitlements.plistfile in the Xcode project.

切换到 App Store Distribution Provisioning Profile后,我继续遇到错误 ITMS-90191 。我通过在 Xcode 项目中将beta-reports-active密钥添加到我的 TargetEntitlements.plist文件中来解决该问题。

The beta-reports-activekey must be included in the Provisioning Profile ANDthe Target's entitlements.

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

TargetName.entitlements:

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>

After adding the entitlement to my Target, I'm able to successfully upload the build to iTunes Connect TestFlight without the ITMS-90191warning:

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

enter image description here

在此处输入图片说明

回答by John Minne

Manually editing the plist file didn't do it for me.
Editing an existing profile and generating the file also did NOT work this time.
But, just like for joehl, creating a brand NEW provision profile actually fixed it for me. So, create an all new Provision Profile and and you will be back in business. This looks like a glitch in TestFlight.

手动编辑 plist 文件对我没有帮助。
这次编辑现有配置文件并生成文件也不起作用。
但是,就像 joehl 一样,创建一个全新的配置文件实际上为我解决了这个问题。因此,创建一个全新的供应配置文件,您将重新开始营业。这看起来像是 TestFlight 中的一个小故障。

回答by dlobanov

I was able to fix this by adding this to my xcodebuild script.

我能够通过将它添加到我的 xcodebuild 脚本来解决这个问题。

xcodebuild ... PROVISIONING_PROFILE=<Provisioning Profile Id>

Looks like setting Code Sign Identitiesin Build Settingsmanually could fix this problem too.

看起来手动在Build Settings 中设置Code Sign Identities也可以解决这个问题。

回答by xissburg

Using an AppStore provisioning profile solved this for me. I managed to successfully distribute and install on devices. I was using an AdHoc provisioning profile as usual and suddenly I started to get this error. Frustrating stuff indeed.

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

回答by Heath Borders

I edited my entitlements.plistwith the following command: /usr/libexec/PlistBuddy -c "Add :beta-reports-active bool true" entitlements.plist

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

回答by Usman Nisar

A simple solution: Delete your previous provisioning profile, and create a new one. solves my problem. :)

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

回答by Ben Thomas

If you're using Fastlane, make sure you set ad-hoc to false for the sighstep, otherwise it will generate an ad-hoc profile which is not suitable for TestFlight distribution. i.e.:

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

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