TestFlight 中缺少合规性状态

Missing Compliance status in TestFlight

当我添加最新版本以使用 TestFlight 进行内部测试时,我看到它处于“缺少合规性”状态。

这是个大问题吗?为什么会出现这个?我该如何解决这个问题?

除非您的应用程序使用某些特殊加密,否则您只需将布尔值添加到您的 Info.plist 中,名称为 ITSAppUsesNonExemptEncryption,值为 false.

在代码中:

<key>ITSAppUsesNonExemptEncryption</key>
<false/>

如果您想改用 Xcode UI,请转到“项目”>“目标”>“信息”面板,添加一个新的“App Uses Non-Exempt Encryption”布尔键值 NO:

如果您的应用使用自定义加密,那么您将需要提供额外的法律文件,并在能够 select 构建之前对您的加密进行审查。

如果您继续select对该版本进行测试,它将手动要求提供合规性信息。选择“否”会显示上面的 plist 建议。

这是在 2015 年 WWDC 上宣布的更改,但我想它是最近才实施的。请参阅 this and this 获取与出口合规性相关的 WWDC session 的文字记录,只需文本搜索“出口”即可。

SO上还有其他类似的问题,见:

不再需要提交新的构建或修改 Info.plist;相反,请按照以下步骤操作:

  1. 确保您是 App Store Connect 中的 AdminApp Manager 角色。

  2. 转到 TestFlight 左上角的 iOS 选项卡,然后单击 黄色三角形 在 iTunes Connect 中提供此信息的警告旁边:

  1. 单击弹出窗口中的“提供出口合规信息”link:

不过,如果您选择修改 Info.plist,您将永远不需要再处理此弹出窗口。

如果您的 info.plist 显示为 属性 列表(而不是 xml),则您需要为密钥输入的文本是:
应用程序使用非豁免加密

在您的 Info.plist 中,右键单击属性 table,单击 Add Row,添加键名 App Uses Non-Exempt Encryption 类型 Boolean 并设置值 NO.

在您的 Info.plist

底部添加以下内容
<key>ITSAppUsesNonExemptEncryption</key>
<false/>

如果您未在 api 调用中使用 https,请在您的 info.plist 中添加此密钥 "App Uses Non-Exempt Encryption" 并将其设置为 "NO"

此外,如果您看不到 "Provide Export Compliance Information" 按钮,请确保您的 App Store Connect 中有 the right role 或与合适的人(帐户持有人、管理员或应用程序管理员)联系.

  1. 如果你已经发布到Apple TestFlight进行测试

    You have to click the link each time and select No, only after that, your tester can see the build. This is quite annoying if you want to get your build delivered as soon as possible.

  2. 为下一次构建执行此操作,(如果在构建之前执行此操作则不会出现此错误)

解决方案是将以下设置添加到您的 iOS Info.plist:

    <key>ITSAppUsesNonExemptEncryption</key>
    <false/>

无法添加“缺少合规性”,请参阅此Missing Compliance

右键单击 info.plist 和 select open as 然后单击 源代码 在文件的最后添加这一行 </dict> 标签

<key>ITSAppUsesNonExemptEncryption</key>
<false/>

并保存文件。

我只是资助另一种方法来做同样的解决方法。因为我无法点击黄色三角形(即使我有管理员角色),当你进入 testflight 时,然后 iOS(在“构建”下)而不是黄色三角形点击版本号,将打开另一个页面,您会在右上角找到诸如添加合规信息之类的内容(抱歉,如果我不完全准确,但我有意大利语版本,但它真的很容易找到)。那么即使你像我一样无法点击黄色三角形,你也可以这样做。

对于SwiftUI

通常没有info.plist文件。所以使用这种方式添加非豁免加密密钥和值。按如下所示点击 + 按钮,输入 ITSAppUsesNonExemptEncryption 作为键,输入 NO 作为值