我们在开发环境中有一个使用我们的HTTPS服务器的ios应用程序(使用cordova构建) 我们收到SSL错误,所以我们尝试了下面的步骤1)并且它可以工作。
解决方法
1)在iOS中添加了绕过SSLError的逻辑:~AppDelegate.m
@implementation NSURLRequest(DataController)
+(BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host{
return YES;
}
@end
2)现在我们想在app store中提交应用程序,我们在各种论坛中看到我们需要删除 在提交应用程序之前,在步骤1)之上,否则它将被拒绝。
我们尝试过以下代码 - A&通过从代码中删除步骤1),我们的开发环境中的MYAPP-Info.plist中的B但是它没有用。
代码A)
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
代码B)
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>OUR_HTTPS_URL</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
现在的问题是〜
A)如果我们只删除步骤1),那么应用程序提交是否有效,否则将失败。
B)如果删除步骤1)应用提交失败,那么解决此问题的解决方案是什么,以便在应用商店上成功提交应用。?
谢谢,
答案 0 :(得分:0)
我有2个使用info.plist绕过此功能的应用。获得批准是没有问题的。我在我的开发设置和生产中使用这些我使用HTTPS连接。这是我的info.plist中的条目。请注意,我有2个有例外的域名。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>YOUR FIRST DOMAIN GOES HERE</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
<key>YOUR SECOND DOMAIN GOES HERE</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>
</dict>
所以我可以肯定地说,您可以拥有域例外并仍然获得批准。