当我将构建上传到苹果拥有的集成了iTunes Connect的新TestFlight上时,我看到以下日志:
WARNING ITMS-90191:“缺少beta权限。您的应用程序不包括beta-reports-active权限。如果您打算通过TestFlight分发此版本以进行beta测试,请使用新生成的配置配置文件重新构建此应用程序。”
当我查看iTunes连接上的构建时,我还看到以下警告:
要使用TestFlight测试版测试,build X.Y.Z必须包含正确的测试版授权。有关详细信息,请参阅常见问题解答。
链接的常见问题说明:
如果我的预发行版本不包含正确的测试版授权,我应该怎么做?
要使用TestFlight应用程序测试您的预发布版本,必须使用包含beta授权的应用商店分发配置文件进行签名。在iOS开发人员中心中生成的新分发供应配置文件将自动包含测试版授权。
如果您的现有分发配置配置文件是在启动TestFlight测试版测试之前生成的,则必须重新生成该配置文件。
问题是我使用的是一个新创建的App Store分发配置文件。我是这样创建的:
当我检查下载的配置文件的源代码时,我看到:
<key>Entitlements</key>
<dict>
// ...
<key>aps-environment</key>
<string>production</string>
<key>beta-reports-active</key>
<true/>
// ...
因此,已为production
设置了资源调配配置文件,并且不包含beta-reports-active
授权。
然而,当这个构建被上传到TestFlight时,iTunes连接继续抱怨。
对如何解决这个问题有什么想法吗?这是苹果的bug吗?
rdar://20128048
发布于 2015-03-12 08:01:20
首先,确保您使用的是应用商店分发配置文件。这可能是一个苹果不同的配置配置文件,而不是你用来签署之前 TestFlight版本的Ad Hoc Distribution配置配置文件。
在切换到App Store分发配置文件后,我继续遇到错误ITMS-90191。我修复了这个问题,方法是在Xcode项目中将beta-reports-active
密钥添加到我的目标的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>
将权限添加到我的目标后,我可以成功地将构建上传到iTunes Connect TestFlight,而不会出现ITMS-90191
警告:
发布于 2015-05-12 03:49:26
手动编辑plist文件对我不起作用。
编辑现有配置文件和生成文件这次也不起作用。
但是,就像joehl一样,创建一个全新的配置文件实际上为我解决了这个问题。因此,创建一个全新的配置文件,您就可以恢复业务了。这看起来像是TestFlight中的一个小故障。
发布于 2015-06-03 16:27:56
通过将此代码添加到我的xcodebuild脚本中,我能够修复此问题。
xcodebuild ... PROVISIONING_PROFILE=<Provisioning Profile Id>
看起来在构建设置中手动设置代码签名标识也可以解决此问题。
https://stackoverflow.com/questions/28998478
复制相似问题