React Native iOS无法加载外部链接图片 如何配置info.plist允许所有外部链接
iOS端React Native应用全局允许外部图片链接加载配置方案
这个问题是iOS系统自带的App Transport Security(ATS)安全限制导致的,默认所有网络请求必须符合ATS的HTTPS加密规则才会被放行,不符合规则的外部图片资源会被系统拦截,你之前逐个添加域名就是给特定域名开ATS例外。
配置Info.plist允许所有外部链接的方法
- 打开项目iOS目录下的
Info.plist文件,你可以直接用文本编辑器打开,也可以在Xcode中打开项目后,找到对应Target的「Info」标签,在「Custom iOS Target Properties」区域操作 - 找到名为
NSAppTransportSecurity(对应Xcode可视化界面显示为App Transport Security Settings)的字典项,如果不存在就手动新增,类型选择Dictionary - 在
NSAppTransportSecurity项下新增NSAllowsArbitraryLoads(对应Xcode可视化界面显示为Allow Arbitrary Loads)的布尔值项,值设置为YES
完成上面的配置后,ATS的全局安全限制就会被完全关闭,所有HTTP、HTTPS资源都可以正常加载,不需要再逐个添加域名到Info.plist中。
注意事项
- 如果你的应用仅需要加载外部媒体资源、不需要放开所有网络请求,可以选择新增
NSAllowsArbitraryLoadsForMedia项并设为YES,相比全局放开安全性更高 - 应用上架App Store时,如果使用了全局放开ATS的配置,需要向苹果审核团队说明放开限制的合理理由,否则可能被拒审。如果有明确的域名范围,还是建议优先使用
NSExceptionDomains配置域名例外,全局放开仅推荐在测试阶段使用
内容的提问来源于stack exchange,提问作者Kescript
相关产品推荐
相关产品推荐

