我们是一个在线支付应用程序,允许用户通过信用卡,借记卡或网上银行支付给不同的商家。由于Apple在IOS 9.0中引入了App Transport Security,因此我们在UIWebView中加载不同的银行URL时遇到了问题。
ATS要求所有银行网站都符合TLS 1.2标准,但大多数银行仍在使用SSL或TLS 1.0。基于各种堆栈溢出答案来绕过这一点,我们必须明确允许特定域符合SSL或TLS 1.0,或者我们可以使用NSAllowsArbitraryLoads来允许所有银行URL。由于我们无法跟踪我们想要使用NSAllowsArbitraryLoads方法的所有银行网址。
苹果拒绝使用NSAllowsArbitraryLoads的应用程序吗?
在IOS 9中启用NSAllowsArbitraryLoads是否完全禁用TLS或SSL检查,或仅删除TLS 1.2强制执行。
答案 0 :(得分:1)
设置NSAllowsArbitraryLoads
将完全禁用TLS / SSL检查,因此您可以发出纯http
次呼叫。有单独的密钥NSExceptionMinimumTLSVersion
和NSThirdPartyExceptionMinimumTLSVersion
,允许您指定旧版本的TLS。有关详细信息,请参阅:https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33。
我无法谈论Apple将会拒绝的内容以及他们的指导方针可能会发生变化。但是,文档指出NSAllowsArbitraryLoads
用于调试和开发,因此您可能不应该使用它进行提交。
如果您有太多的银行合作伙伴需要管理,您可以为您的Build创建一个Run-Script Pre-Action,它将为您Info.plist
中的所有合作伙伴设置例外。