ios - cmd 行测试因 SSL 证书错误而失败

标签 ios objective-c ssl cedar gh-unit

在遇到一系列与覆盖刷新(已修复)和测试输出被消耗(未修复)相关的问题后,我决定尝试使用 Cedar 和 GH-Unit 作为 XCTest 的替代品。

不幸的是,这带来了一个新问题:

  • 从 IDE 启动时一切顺利。
  • 从 cmd 行启动时,我收到 SSL 证书错误

错误总结:

Error Domain=com.biasedbit.http Code=60 "Peer certificate cannot be authenticated with given CA certificates" 

我该如何解决这个问题? (还有额外的要点)为什么从 IDE 启动时会知道证书,而不是从命令行启动?

最佳答案

在命令行中,有必要明确指定应允许无效/自签名 SSL 证书。我仍然不确定为什么在通过 IDE 运行时不需要这样做,但这是另一个问题。

设置接受无效证书

  • 对于核心苹果 API,这可能有点棘手。它似乎是私有(private) API 或上述 block 。
  • 这由 AFNetworking 支持。

使用我正在使用的网络堆栈(BBHTTP,顺便说一下,它非常好,但似乎被低估了)这很简单:

[[BBHTTPRequest postToURL:_serviceUrl data:[envelope data] contentType:@"text/xml"] setup:^(BBHTTPRequest* request)
{
    request.allowInvalidSSLCertificates = YES;
} execute:^(BBHTTPResponse* response)
{
    if (_logResponses)
    {
        LogDebug(@"\n\n$$$$$$$$$ Got response: %@", [[NSString alloc] initWithData:[response content] encoding:NSUTF8StringEncoding]);
    }

    //etc .. . . 

} error:^(NSError* error)
{
    //etc .. . . 
}];

关于ios - cmd 行测试因 SSL 证书错误而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21074079/

相关文章:

ios - AVAsset 'tracksWithMediaType'返回一个空数组?(音频)

iphone - PhoneGap + 语音识别SDK

apache - 在两个不同端口下运行的同一域的 HTTP 到 HTTPS 重定向

amazon-web-services - AWS S3 图像仅通过 HTTP 提供服务,但 Chrome 升级到 HTTPS

ios - Json 数据未正确反射(reflect)在 tableView 中

ios - Objective C 相当于 Swift addConstraints?

关于字体大小的 iOS 9 问题

ios - 当打开另一个特定应用程序 (Facebook) 时,可以从我的应用程序发送推送通知吗?

ios - 有没有办法获取 PHAsset 数组的 PHAssetResource ?

java - 从 Clojure 调用的 App Engine URLFetch 服务给出 AccessControlException