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