当我用TestFlight为内部测试添加我的最新构建时,我看到它有一个“Missing Compliance”状态。

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


除非你的应用程序使用一些特殊的加密,你可以简单地添加布尔密钥到你的信息。plist名称为ITSAppUsesNonExemptEncryption,值为false。

在代码:

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

如果你想使用Xcode UI,转到项目>目标>信息面板,添加一个新的“应用程序使用非豁免加密”布尔密钥,值为NO:

如果你的应用使用自定义加密,那么你需要提供额外的法律文件,并在选择构建之前审查你的加密。

如果您继续选择该版本进行测试,它将手动要求遵从性信息。选择“No”会显示上面的plist推荐。

这是在2015年全球开发者大会上宣布的改变,但我猜这是最近才实施的。在WWDC会议上,只需要文本搜索“export”,就可以看到与导出遵从性相关的文字记录。

关于SO还有其他类似的问题,请参见:

内部测试时ITSAppUsesNonExemptEncryption导出合规性? 无法选择要添加到测试飞行的最新上传版本 ITSAppUsesNonExemptEncryption Cordova Build


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

确保你是App Store Connect中的管理员或应用程序管理员角色。 转到TestFlight左上角的iOS选项卡,点击警告旁边的黄色三角形,在iTunes Connect中提供以下信息:

点击弹出窗口中的“提供出口合规信息”链接:

不过,如果您选择修改信息。Plist,你再也不需要处理这个弹出窗口了。


如果你的信息。Plist显示为一个属性列表(而不是xml),你需要为键输入的文本是: 应用程序使用非豁免加密


在你的信息。plist,右键单击属性表,单击“添加行”,添加密钥名称App Uses Non-Exempt Encryption with Type Boolean,并设置值NO。

另一种处理方法

右键单击信息。plist并选择打开为,然后单击源代码在</dict>标记之前的文件最后添加这一行

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

在Info.plist的底部添加以下内容

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

如果你没有在api调用中使用https,请在你的信息中添加这个密钥“应用程序使用非豁免加密”。plist并将其设置为NO


此外,如果你看不到“提供导出合规信息”按钮,请确保你在App Store Connect中拥有正确的角色或与正确的人(帐户持有人,管理员或应用程序经理)交谈。


右键单击信息。plist,选择open as,然后点击Source Code 将这一行添加到文件的最后 < / dict >标记

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

并保存文件。


I just fund another way to do the same workaround. Because of I hadn' t the possibility to click on the yellow triangle (even if I have admin role), when you go inside testflight, then iOS (under "Build") instead of yellow triangle click the version number, another page will open and you will find on top right something like add compliance information (sorry if I am not totally accurate but I have the italian version but it would be really easy to find). Then you can do the same even if you, like me, are not able to click on yellow triangle.


对于 SwiftUI

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


它只是表明你不使用加密,当你是一个新手时,这可能是令人生畏的,但如果你确定你不使用加密,这不是一个问题