uniapp app transport security 如何配置
在uniapp开发iOS应用时,如何正确配置ATS(App Transport Security)以确保应用能正常访问HTTP接口?iOS默认要求HTTPS请求,但某些测试环境需要使用HTTP协议,该怎样在manifest.json或原生配置中修改ATS设置?
2 回复
在manifest.json中配置transportSecurity字段,设置allowInsecure为true,或在iOS的ATS中配置白名单。
在 UniApp 中配置 App Transport Security(ATS)主要针对 iOS 平台,用于控制应用对网络请求的安全策略(如 HTTPS 要求)。以下是配置方法:
1. 在 manifest.json 中配置
打开项目根目录的 manifest.json 文件,在 app-plus → distribute → ios 节点下添加 ATS 配置:
{
"app-plus": {
"distribute": {
"ios": {
"ATS": {
"NSAllowsArbitraryLoads": true,
"NSExceptionDomains": {
"your-domain.com": {
"NSIncludesSubdomains": true,
"NSTemporaryExceptionAllowsInsecureHTTPLoads": true,
"NSTemporaryExceptionMinimumTLSVersion": "TLSv1.1"
}
}
}
}
}
}
}
参数说明:
- NSAllowsArbitraryLoads:
true:允许所有 HTTP 请求(不强制 HTTPS),适用于测试或混合内容。false:强制 HTTPS(默认推荐上架 App Store 时设为false)。
- NSExceptionDomains:为特定域名配置例外(如开发环境或第三方服务)。
NSIncludesSubdomains:是否包含子域名。NSTemporaryExceptionAllowsInsecureHTTPLoads:是否允许该域名使用 HTTP。NSTemporaryExceptionMinimumTLSVersion:指定最低 TLS 版本(如 TLSv1.1、TLSv1.2)。
2. 注意事项
- 上架 App Store:苹果审核要求尽可能禁用
NSAllowsArbitraryLoads(设为false),仅对必需域名配置例外。 - 本地测试:若调试 HTTP 接口,可临时开启
NSAllowsArbitraryLoads: true,但提交前需恢复安全配置。 - 域名格式:例外域名不要带协议(如写
example.com而非https://example.com)。
3. 重新打包
配置后需重新生成 App 包(运行 npm run build:app-plus 或通过 HBuilderX 打包),使配置生效。
通过以上步骤即可灵活管理 iOS 网络请求安全策略。

