在遇到一系列与覆盖刷新(已修复)和测试输出被消耗(未修复)相关的问题后,我决定尝试使用 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/