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
Apple TestFlight upload warning ITMS-90191: missing `beta-reports-active` entitlement
提问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 授权。有关更多信息,请参阅常见问题解答。
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发行配置文件。我是这样创建的:
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 production
and doescontain the beta-reports-active
entitlement.
因此,供应配置文件设置为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-active
key to my Target's Entitlements.plist
file in the Xcode project.
切换到 App Store Distribution Provisioning Profile后,我继续遇到错误 ITMS-90191 。我通过在 Xcode 项目中将beta-reports-active
密钥添加到我的 TargetEntitlements.plist
文件中来解决该问题。
The beta-reports-active
key 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-90191
warning:
将权利添加到我的目标后,我能够成功地将构建上传到 iTunes Connect TestFlight 而不ITMS-90191
发出警告:
回答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.plist
with 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 sigh
step, 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"
)