当我用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的底部添加以下内容

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

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

另一种处理方法

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

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

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

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

对于 SwiftUI

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