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應用越來越安全

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章