做iOS的ehentai客户端有什么困难?
先简单说一下ATS(App Transport Security)ATS(App Transport Security)是一个提高App和服务器之间数据安全传输的特性。这个功能来自iOS9和OSX10。如果HTTPS服务器能够通过ATS特性,则上述所有测试用例均通过;如果某一项的结果是失败的,你可以找到ATS字典来检查它,你可以知道HTTPS服务器不满足ATS的哪一个条件。在这里,我之前遇到了一个问题,就是我自己建证书的时候,通过这个命令测试的时候发现结果全是FAIL,而且在iOS的代码测试中有一个很奇怪的现象,就是同样的代码,在iOS8.4中请求的数据完全正常,但是在iOS9上,直接连接失败。最后发现自建证书因为不可信无法通过ATS,除非NSAllowsArbitraryLoads设置为YES。四。iOS客户端在上面第二步中,HTTPS服务器满足ATS的默认条件,SSL证书已经得到权威CA机构的认证,所以我们用Xcode7开发的时候,不需要做任何适应网络的事情,就可以和服务器正常通信。但是,当我们对安全性有更高的要求时,或者我们自己构建证书时,我们需要在本地导入证书进行验证。那么,如何将证书导入本地进行验证呢?首先,由于iOS客户端支持的证书是DER格式,我们需要创建客户端证书。创建一个客户端证书,并将服务器的CA根证书直接导出为DER格式。OpenSSL x509-通知PEM-Outformder-in ca。阴极射线管输出电流。cer导入证书后,我们再来分别说说使用NSURLSession和AFNetworking进行本地验证。首先,使用NSURLSession的验证步骤如下:将CA根证书导入到项目中,即我们创建的ca.cer获取信任对象,通过SecCertificateCreateWithData方法读取导入证书的数据生成证书对象,然后通过SecTrustSetAnchorCertificates将此证书设置为信任对象的受信任根证书。