如何使用HTTPS主机修复IOS应用程序中的SSL错误

时间:2016-03-11 00:59:45

标签: ios iphone xcode cordova ssl

我们在开发环境中有一个使用我们的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)应用提交失败,那么解决此问题的解决方案是什么,以便在应用商店上成功提交应用。?

谢谢,

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>

所以我可以肯定地说,您可以拥有域例外并仍然获得批准。