ChatGPT解决这个技术问题 Extra ChatGPT

TestFlight 中缺少合规性状态

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

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

https://i.stack.imgur.com/XBXUa.png


m
mokagio

除非您的应用程序使用某种特殊加密,否则您可以简单地将布尔密钥添加到您的 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 中宣布的更改,但我想它是最近才实施的。请参阅 thisthis 获取与出口合规性相关的 WWDC 会议记录,仅对“出口”进行文本搜索。

SO上还有其他类似的问题,请参阅:

内部测试时 ITSAppUsesNonExemptEncryption 出口合规性?

无法选择最新上传的版本添加到 testflight

ITSAppUsesNonExemptEncryption Cordova Build


什么是特殊加密?是否使用 iOS 钥匙串存储用户的信息计数?
在新的 iTunesConnect 下:顶部菜单 > 功能 > 加密
@mokagio 我正在使用 Https 连接来消耗应用程序的数据,所以我必须选择是并提交任何文件吗?
我对我的 api 使用 https fetch 查询,我应该回答是还是否?这听起来像是棱镜合规性的一种形式。
即使我在 plist 文件中将 ITSAppUsesNonExemptEncryption 设置为 NO,我的 macOS 应用程序上也有此警告。
p
pkamb

不再需要提交新的构建或修改 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,您将永远不需要再次处理此弹出窗口。


@am_ 我刚刚尝试过,它仍然有效。您只需单击弹出窗口中的“提供出口合规信息”链接。帖子已使用新的屏幕截图进行了编辑。
当我单击三角形时,没有“提供出口合规信息”链接,我只得到信息文本。
原来是访问问题。我不是管理员(开发人员+其他人),我们的管理员是提交应用程序的人。我让我们的管理员在他的帐户中查看了它,他能够看到/单击“提供出口合规信息”链接来解决问题。
@RandyHill 感谢您提供信息——我已经更新了我的答案以解释您需要成为管理员。
@am_ 只有具有管理员角色的用户才能看到链接
A
Atul Yadav

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

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

H
Himanshu padia

在您的 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/>

需要右键单击属性表,然后单击“添加行”来执行此操作,我花了几分钟才找到:)
S
Shaked Sayag

如果您的 info.plist 显示为属性列表(而不是 xml),则您需要为密钥输入的文本是:App Uses Non-Exempt Encryption


M
Mahendra Thotakura

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


使用 URLSession 的 HTTPS 连接——不受出口文档上传要求的约束。
什么是 URLSession?我怎么知道我是否使用它?我正在使用带有 Fetch 请求的 React Native 应用程序,但我不知道 - 尝试搜索它。
@DrorBar 你最后在这里做什么?我也在使用 React Native(与 Expo),我不确定我应该在这里做什么。我正在通过 HTTPS 调用我的后端。
@DarrylYoung 我还没有找到具体的答案,但我很确定这类 HTTPS 调用不受加密要求的约束。您应该很好地添加密钥。
p
pkamb

右点击 info.plist 并选择 open as 然后点击 Source Code 将此行添加到文件最后的 </dict> 标记之前

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

并保存文件。


M
Maciek Czarnik

此外,如果您看不到“提供出口合规信息”按钮,请确保您的 App Store Connect 中有 the right role 或与正确的人(帐户持有人、管理员或应用经理)交谈。


P
Pramodya Abeysinghe

对于 SwiftUI

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

https://i.stack.imgur.com/L0Qfh.png


D
Dharman

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