1

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

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

  • 从 IDE 启动时,一切顺利。
  • 从命令行启动时,出现 SSL 证书错误

错误总结:

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

我怎样才能解决这个问题?(以及额外的点)为什么从 IDE 启动时会知道证书,而不是从命令行启动?

4

1 回答 1

1

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

设置接受无效证书

  • 使用核心苹果 API,这可能有点棘手。它似乎是一个私有 API,或者是前面的块。
  • 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 .. . . 
}];
于 2014-01-12T13:32:36.277 回答