1. 程式人生 > >iOS 11下AFNetworking 3.0的AFSecurityPolicy配置

iOS 11下AFNetworking 3.0的AFSecurityPolicy配置

WWDC大會剛開過,我就升級了手機系統(我的iPhone是15年購買的6 Plus),iOS 11的beta版真特麼卡,建議7以下的手機不要升級了。

手機升級了,那麼開發者工具Xcoder也需要升級才能駕馭iOS11,我勒個去,也是很卡。還就就是帶來一些列的開發問題,隨便舉個例子,導航欄增加了高度增加了,導致VC中的tableview向下移動了20,所以要做iOS 11的適配。然而,你會問我為什麼急急忙忙的升級?現在我認真的回答你----手賤。

已經升級了,根據小夥伴們的反應,版本退不回去,只好硬著頭皮去適配去開發。先給開發朋友們踩踩路。so,今天只談一項:iOS 11的ATS相關問題。

iOS 11情況下AFNetworking 3.0如果不配置AFSecurityPolicy

是工作不了的。

(1)從伺服器端下載.crt檔案,比如檔名叫 serverSecurity.crt

  (2)   將檔案轉成.cer檔案.終端命令:openssl x509 -in serverSecurity.crt -out https.cer -outform der 注意:https是一個檔名,可以換成別的名字

    (3)匯入.cer檔案到專案 。匯入的時候注意選中target

     (4) 配置ACNetWorkManager的securityPolicy屬性,貼程式碼:

NSString *cerPath = [[NSBundlemainBundle] pathForResource:

@"https"ofType:@"cer"];

NSData *certData  = [NSDatadataWithContentsOfFile:cerPath];

AFSecurityPolicy *securityPolicy = [AFSecurityPolicypolicyWithPinningMode:AFSSLPinningModeCertificate];

        securityPolicy.allowInvalidCertificates =YES;

        securityPolicy.pinnedCertificates = [NSSetsetWithObject

:certData];

        securityPolicy.validatesDomainName =YES;

        manager.securityPolicy = securityPolicy;

      總結:(1)配置過程不難

   (2)Apple不再向開發者妥協

    (3)iOS應用越來越安全