App 上架

App Store Export Compliance 怎么填?加密声明、HTTPS与ITSAppUsesNonExemptEncryption完整指南 URL 别名

2026-10-04·星航开发者
App Store Export Compliance 怎么填?加密声明、HTTPS与ITSAppUsesNonExemptEncryption完整指南 URL 别名

App Store Export Compliance 怎么填?加密声明、HTTPS与ITSAppUsesNonExemptEncryption完整指南

iOS App 上传到 App Store Connect 或 TestFlight 时,开发者经常会看到一组和加密有关的问题。

例如:

App 是否使用加密?

是否使用标准加密算法?

是否需要提交 Export Compliance 文件?

很多开发者第一次看到这类问题时,会觉得自己的 App 根本没有“加密功能”。

但实际上,只要 App 使用 HTTPS、系统安全框架或者某些第三方 SDK,就可能涉及加密声明判断。

Apple 明确说明,如果 App 使用、访问、包含或实现加密功能,并准备上传、测试或分发,就需要确定 Export Compliance 要求。Apple Developer

一、什么是 Export Compliance?

Export Compliance 可以理解为:

应用加密出口合规声明。

Apple 在 App Store Connect 中会询问开发者:

App 是否使用加密。

使用的是什么类型。

是否只使用系统提供的加密。

是否包含标准或非标准算法。

根据回答,系统会判断是否需要额外文件。Apple Developer

所以它不是 App Store 审核里的普通功能介绍,而是合规信息的一部分。

二、为什么普通App也会遇到加密问题?

因为现在大多数 App 都会访问网络。

例如:

登录接口。

用户资料。

支付接口。

云端同步。

推送。

第三方 API。

这些请求通常都会通过 HTTPS。

HTTPS 本身就涉及加密。

但“使用了加密”并不等于一定需要上传复杂的出口文件。

Apple 会进一步判断加密属于什么类型。Apple Developer

三、只使用HTTPS也要申报吗?

需要正确声明 App 的加密使用情况。

但如果 App 只是使用 Apple 操作系统自带的加密能力,例如通过系统网络框架建立 HTTPS 连接,通常不需要额外上传 App Store Connect 加密文件。Apple 的官方说明也明确区分了“系统自带加密”和需要额外文件的其他加密实现。Apple Developer

所以重点不是:

有没有 HTTPS。

而是:

加密是怎么实现的。

四、什么情况下可能不需要额外文件?

Apple 当前说明,如果 App 的加密仅限于 Apple 操作系统本身提供的加密能力,一般不需要在 App Store Connect 上传额外的 Export Compliance 文件。Apple Developer

例如:

使用系统网络接口访问 HTTPS。

使用系统 Keychain。

使用系统提供的标准安全功能。

这类场景通常比自行实现加密算法简单。

五、什么情况下可能需要额外文件?

如果 App 使用:

操作系统之外的标准加密算法。

自行集成的加密库。

专有加密算法。

非标准加密技术。

就可能需要进一步判断。

Apple 的官方表格指出:

如果使用系统之外的行业标准算法,可能需要提交特定声明;如果使用专有或非标准加密算法,则可能需要提供更完整的相关文件。Apple Developer

六、第三方SDK也算吗?

要算。

开发者不能只看自己的代码。

如果 App 集成了:

VPN SDK。

通讯 SDK。

安全聊天 SDK。

加密钱包 SDK。

企业安全组件。

其他第三方加密库。

这些也可能影响 Export Compliance 判断。

因此在正式提交之前,最好把项目中主要第三方 SDK 的加密行为一起检查。

七、什么是 ITSAppUsesNonExemptEncryption?

这是 iOS 项目 Info.plist 中的一个重要键。

完整名称是:

ITSAppUsesNonExemptEncryption

它用于告诉 Apple:

App 是否使用非豁免加密。

Apple 官方说明,如果 App 不使用加密,或者只使用属于豁免范围的加密,可以根据实际情况将这个值设为 NO;否则应设为 YES。Apple Developer

八、设置为NO以后有什么作用?

如果你的 App 符合条件,并且正确设置了这个字段,就可以减少每次提交新 Build 时重复回答同样的加密问题。

Apple 明确建议开发者在 Info.plist 中提供相关信息,以简化后续 App Store Connect 提交流程。Apple Developer

但前提是:

你的实际加密情况确实符合这个声明。

不能为了省事随便填写。

九、设置为YES以后会怎样?

如果设为 YES,通常表示 App 使用了可能不属于直接豁免范围的加密。

之后 App Store Connect 可能继续询问:

使用什么算法。

加密用途是什么。

是否属于标准加密。

是否需要提交相关文件。

这时就应该按照 App 实际情况回答。

十、在哪里提交加密资料?

进入:

App Store Connect → Apps → 选择 App → App Information

找到:

App Encryption Documentation

可以根据页面提示回答问题,并在系统要求时上传文件。Apple Developer

也可以在某个缺少加密信息的 Build 上点击 Manage,继续处理对应问题。

十一、什么时候最好处理 Export Compliance?

建议在:

提交 App Review 或 TestFlight App Review 之前

处理完成。

Apple 官方也建议,如果需要提交加密文件,应在 Build 提交审核之前完成。Apple Developer

这样可以减少 Build 已经准备好,却因为加密声明不完整而卡在后台的情况。

十二、TestFlight也会问加密问题吗?

会。

因为 TestFlight Build 也属于 Apple 的测试分发流程。

Apple 明确说明,当你提交 App 到 TestFlight 或 App Store 时,都需要处理相应的加密出口合规问题。Apple Developer

所以不要认为:

“只是内测,不正式上架,就不用管 Export Compliance。”

十三、如果App只在某些国家发布,会有区别吗?

可能有。

Export Compliance 不只是 Apple 自己的后台规则。

它还与 App 分发地区和相关法律要求有关。

Apple 的文档特别提到,如果 App 在美国或加拿大以外地区分发,可能涉及美国出口法规以及其他地区的进口规则。Apple Developer

因此,分发地区也是判断的一部分。

十四、法国为什么经常单独被提到?

Apple 的官方加密文件参考说明中,法国可能需要额外的加密声明文件,具体取决于 App 使用的加密类型以及是否在法国分发。Apple Developer

所以如果你的 App 面向法国用户,应该按照 App Store Connect 当前提示处理。

不要直接套用其他 App 的答案。

十五、加密文件审核要多久?

Apple 官方说明,如果资料完整,Export Compliance 文件通常预计大约两个工作日完成审核,但仍然是按个案处理。Apple Developer

因此,如果你的 App 明确需要额外文件,最好提前准备。

不要等正式发布日期前一天才开始处理。

十六、审核完成以后还要每次重新提交吗?

如果 Apple 已经批准了对应加密文件,系统可能提供一个 Export Compliance Code。

开发者可以把这个值加入项目配置。

Apple 官方说明,这样可以减少后续每次提交时重复回答相关问题。Apple Developer

但如果 App 后续的加密实现发生重大变化,仍然应该重新评估。

十七、HTTPS和自研加密最大的区别是什么?

简单理解:

HTTPS 通常依赖成熟的标准协议和系统安全能力。

自研加密则可能涉及:

自行实现算法。

自定义协议。

专有加密方式。

后者的合规判断通常更复杂。

Apple 对专有或非标准加密的文件要求也明显更严格。Apple Developer

十八、App更新以后要重新检查吗?

建议检查。

如果新版本增加了:

VPN。

端到端加密聊天。

加密存储。

安全隧道。

钱包。

新的第三方安全 SDK。

就可能改变原来的 Export Compliance 判断。

不能因为 v1.0 不需要文件,就默认后续版本永远不需要。

十九、最常见的错误有哪些?

常见情况包括:

认为 HTTPS 不算加密。

完全忽略第三方 SDK。

为了跳过问题直接把字段设为 NO。

项目实际使用非豁免加密,但没有提交文件。

TestFlight 和正式上架的回答不一致。

修改了加密实现,却没有重新检查声明。

这些问题都可以通过提前梳理项目依赖来避免。

二十、提交审核前建议怎么检查?

建议按这个顺序:

第一,确认 App 是否使用加密。

第二,确认加密来自系统还是第三方。

第三,检查第三方 SDK。

第四,判断是否属于豁免情况。

第五,设置正确的 ITSAppUsesNonExemptEncryption。

第六,如果需要文件,提前上传 App Store Connect。

第七,确认 TestFlight 和正式提交使用相同真实信息。

第八,再提交审核。

开发者账号与上架服务

了解苹果开发者账号、Google Play开发者账号及App上架相关服务。

查看账号服务 →

Telegram客服: 联系客服

Telegram频道: 加入频道

相关文章推荐

继续阅读更多开发者账号及应用上架教程

查看更多文章 →
✈加入频道💬联系客服