3

我们是一个在线支付应用程序,允许用户通过信用卡、借记卡或网上银行向不同的商家付款。由于苹果在 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 强制执行。

4

1 回答 1

1

设置NSAllowsArbitraryLoads将完全禁用 TLS/SSL 检查,因此您将能够发出普通http调用。有单独的键NSExceptionMinimumTLSVersionNSThirdPartyExceptionMinimumTLSVersion,允许您指定旧版本的 TLS。有关更多信息,请参阅:https ://developer.apple.com/library/prerelease/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33 。

我无法谈论 Apple 将拒绝和不会拒绝什么,他们的指导方针可能会发生变化。但是,文档表明它NSAllowsArbitraryLoads是用于调试和开发的,因此您可能不应该提交它。

如果您有太多的银行合作伙伴需要管理,您可以为您的构建创建一个运行脚本预操作,该操作将为您的所有合作伙伴设置例外Info.plist

于 2015-11-07T08:21:59.090 回答