发生了SSL错误

时间:2018-06-18 08:04:50

标签: objective-c iphone ios11

我在iTunes上上传了我的应用程序,它也在一些设备上运行(主要是iPhone7)。将Xcode或ios版本升级到11.4后,我遇到了 SSL连接错误 在iphone 6s或ipad工作正常但在客户端iphone 7上出现这个错误附加了屏幕截图的错误,我无法理解发生了什么,需要改变什么。

我已在info plist中添加了此代码

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSExceptionDomains</key>
        <dict>
            <key>yourdomain.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
        </dict>
    </dict>

我们还检查服务器证书,它们也是有效的。

1 个答案:

答案 0 :(得分:0)

首先检查您的端口是否有SSL并更正用于SSL固定的证书

检查SSL的代码

 - (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace {
      return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust];
    }

    - (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
      if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust])
        if ([trustedHosts containsObject:challenge.protectionSpace.host])
          [challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];

      [challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
    }