Ssl youtubeAPI v3在tvOS上的证书无效
我想从我的tvOS应用程序请求youtube数据api v3。为此,我编写了以下类:Ssl youtubeAPI v3在tvOS上的证书无效,ssl,swift2,nsurlsession,tvos,youtube-data-api,Ssl,Swift2,Nsurlsession,Tvos,Youtube Data Api,我想从我的tvOS应用程序请求youtube数据api v3。为此,我编写了以下类: class YoutubeSearch { static let sharedClient = YoutubeSearch() private var task: NSURLSessionDataTask! func getVideoNSURLsForTitle(title: String, completionHandler: ([String], NSError?) -> Void )
class YoutubeSearch {
static let sharedClient = YoutubeSearch()
private var task: NSURLSessionDataTask!
func getVideoNSURLsForTitle(title: String, completionHandler: ([String], NSError?) -> Void ) -> NSURLSessionTask {
// URL
let urlString = makeURL(title)
let url = NSURL(string: youtubeApi)
// cancel task, if there is already one
task?.cancel()
// setup new request
let request = NSURLRequest(URL: url!)
let config = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: config)
task = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
// No errors occured
do {
// some JSON processing
// complitionHandler is returned here
} catch let parseError {
// Some other error
print(parseError)
let jsonStr = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("YoutubeSearch Error: '\(jsonStr)'")
}
}
// execute request
task.resume()
return task
}
}
该代码在模拟器中运行良好。我得到一个有效的JSON。但在tvOS上,它抛出一个错误,告诉我证书无效:
NSUnderlyingError=0x13e207d70{Error Domain=KCFerrorDomain=KCF网络代码=-1202“(null)”用户信息={{kCFStreamPropertySSLClientCertificateState=0,kCFStreamPropertySSLPeerTrust=,KCFnetworkCfStreamsSlorOriginalValue=-9814,kCFStreamErrorDomainKey=3,kCFStreamErrorCodeKey=-9814,kCFStreamPropertySSLPeerCertificates={type=不可变,count=3,value=(
0 :
1 :
2 :
)}}},NSLocalizedDescription=此服务器的证书无效。您可能正在连接假装为“www.googleapis.com”的服务器,这可能会使您的机密信息处于危险之中。NSErrorFailingURLKey={API-KEY},NSErrorFailingURLStringKey={API-KEY},NSErrorClientCertificateStateKey=0})
但我没能解决这个问题。我在HTTPS服务器信任评估中找到了苹果公司的技术说明TN2232,但坦率地说,还有很多工作要做,而我不确定我是否忘记了一件简单的附加事情
我了解到我可以禁用服务器信任。但这不是我的选择,因为这个应用程序应该在苹果商店中使用
有人面临同样的问题吗?或者有人知道如何解决这个问题吗
亲切的问候