当我使用 TestFlight 添加用于内部测试的最新版本时,我看到它处于“缺少合规性”状态。
这是一个大问题吗?为什么会出现这种情况?我该如何解决这个问题?
https://i.stack.imgur.com/XBXUa.png
除非您的应用程序使用某种特殊加密,否则您可以简单地将布尔密钥添加到您的 Info.plist
,名称为 ITSAppUsesNonExemptEncryption
,值为 false
。
在代码中:
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
如果您想改用 Xcode UI,请前往项目 >目标>信息面板,添加一个新的“App Uses Non-Exempt Encryption”布尔键,值为 NO
:
https://i.stack.imgur.com/CaHdK.png
如果您的应用程序使用自定义加密,那么您将需要提供额外的法律文件并审查您的加密,然后才能选择构建。
如果您继续选择该版本进行测试,它将手动询问合规性信息。选择“否”会为您提供上面的 plist 建议。
https://i.stack.imgur.com/qORCd.png
这是 2015 年 WWDC 中宣布的更改,但我想它是最近才实施的。请参阅 this 和 this 获取与出口合规性相关的 WWDC 会议记录,仅对“出口”进行文本搜索。
SO上还有其他类似的问题,请参阅:
内部测试时 ITSAppUsesNonExemptEncryption 出口合规性?
无法选择最新上传的版本添加到 testflight
ITSAppUsesNonExemptEncryption Cordova Build
不再需要提交新的构建或修改 Info.plist
;相反,请按照以下步骤操作:
确保您是 App Store Connect 中的管理员或 App Manager 角色。转到 TestFlight 左上角的 iOS 选项卡,然后单击警告旁边的黄色三角形以在 iTunes Connect 中提供此信息:
https://i.stack.imgur.com/i7ret.png
单击弹出窗口中的“提供出口合规信息”链接:
https://i.stack.imgur.com/Gwd22.png
不过,如果您确实选择修改 Info.plist
,您将永远不需要再次处理此弹出窗口。
在您的 Info.plist
底部添加以下内容
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
在您的 Info.plist
中,右键单击属性表,单击 Add Row
,使用类型 Boolean
添加键名 App Uses Non-Exempt Encryption
并设置值 NO
。
https://i.stack.imgur.com/Du2XO.png
处理此问题的另一种方法
右点击 info.plist
并选择打开方式然后点击 Source Code
在文件的最后添加这一行到 </dict>
标记之前
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
如果您的 info.plist 显示为属性列表(而不是 xml),则您需要为密钥输入的文本是:App Uses Non-Exempt Encryption
如果您没有在 api 调用中使用 https,请在 info.plist 中添加此密钥“App Uses Non-Exempt Encryption”并将其设置为“NO”
右点击 info.plist 并选择 open as 然后点击 Source Code 将此行添加到文件最后的 </dict>
标记之前
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
并保存文件。
对于 SwiftUI
通常没有 info.plist
文件。所以使用这种方式来添加非豁免加密密钥和值。如下单击 + 按钮并键入 ITSAppUsesNonExemptEncryption
作为键和 NO
作为值
https://i.stack.imgur.com/L0Qfh.png
我只是资助另一种方法来做同样的解决方法。因为我没有可能点击黄色三角形(即使我有管理员角色),当你进入 testflight 时,然后 iOS(在“构建”下)而不是黄色三角形点击版本号,另一个页面将打开您会在右上角找到添加合规信息之类的内容(对不起,如果我不完全准确,但我有意大利语版本,但它真的很容易找到)。然后,即使您像我一样无法单击黄色三角形,也可以这样做。