uniappx nsapptransportsecurity 如何配置

在uniappx开发中,如何正确配置NSAppTransportSecurity以满足iOS应用的安全传输要求?具体需要修改哪些配置文件,能否提供完整的ATS配置示例?有些第三方接口要求允许不安全的HTTP请求,这种情况下应该如何设置例外域名?

2 回复

manifest.jsonapp-plus 下添加:

"ios": {
  "ATS": {
    "NSAllowsArbitraryLoads": true
  }
}

注意:上架 App Store 需说明理由,否则可能被拒。


在 UniApp X 中,NSAppTransportSecurity(ATS)是 iOS 平台的网络安全配置,用于控制 App 是否允许不安全的 HTTP 请求或自定义域名访问。配置方法如下:

步骤:

  1. 打开项目的 manifest.json 文件
  2. "app-plus""distribute""ios" 节点下添加 "ATS" 配置。

示例配置:

{
  "app-plus": {
    "distribute": {
      "ios": {
        "ATS": {
          "NSAllowsArbitraryLoads": true,  // 允许所有 HTTP 请求(不推荐)
          "NSExceptionDomains": {
            "example.com": {
              "NSIncludesSubdomains": true,
              "NSTemporaryExceptionAllowsInsecureHTTPLoads": true,
              "NSTemporaryExceptionMinimumTLSVersion": "TLSv1.1"
            }
          }
        }
      }
    }
  }
}

参数说明:

  • NSAllowsArbitraryLoads:设为 true 时允许所有 HTTP 请求(仅用于测试,上架 App Store 可能被拒)。
  • NSExceptionDomains:针对特定域名配置例外:
    • NSIncludesSubdomains:是否包含子域名。
    • NSTemporaryExceptionAllowsInsecureHTTPLoads:允许该域名使用 HTTP。
    • NSTemporaryExceptionMinimumTLSVersion:指定最低 TLS 版本。

注意事项:

  • 提交 App Store 时,若启用 NSAllowsArbitraryLoads 需在审核信息中说明理由。
  • 推荐仅通过 NSExceptionDomains 配置必要域名,确保安全性。

保存配置后重新编译项目即可生效。

回到顶部