精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

iOS 9 適配中一定會遇到的大坑合集

移動開發 Android
本文主要是說一些iOS9適配中出現的坑,如果只是要單純的了解iOS9新特性可以看瞄神的開發者所需要知道的 iOS 9 SDK 新特性。9月17日凌晨,蘋果給用戶推送了iOS9正式版,隨著有用戶陸續升級iOS9,也就逐漸的衍生出了一系列的問題,筆者也在趕忙為自己維護的App做適配,本文寫的一些坑基本都是親身體驗了。

[[151640]]

本文主要是說一些iOS9適配中出現的坑,如果只是要單純的了解iOS9新特性可以看瞄神的開發者所需要知道的 iOS 9 SDK 新特性。9月17日凌晨,蘋果給用戶推送了iOS9正式版,隨著有用戶陸續升級iOS9,也就逐漸的衍生出了一系列的問題,筆者也在趕忙為自己維護的App做適配,本文寫的一些坑基本都是親身體驗了。
一、NSAppTransportSecurity

iOS9讓所有的HTTP默認使用了HTTPS,原來的HTTP協議傳輸都改成TLS1.2協議進行傳輸。直接造成的情況就是App發請求的時候彈出網絡無法連接。解決辦法就是在項目的info.plist 文件里加上如下節點:

NSAppTransportSecurity - NSAllowsArbitraryLoads

這個子節點的意思是:是否允許任性的加載?! 設為YES的話就將禁用了AppTransportSecurity轉而使用用戶自定義的設置,這個問題就解決了。

 

上面說是蘋果限制了HTTP協議,但是也并不是說所有的HTTPS都能***適配iOS9了。

舉個栗子,從app內起webView加載https的網頁。新建個項目寫幾行起網頁的代碼
 

  1. - (void)loadView{ 
  2. UIWebView *web = [[UIWebView alloc]initWithFrame:[UIScreen mainScreen].bounds]; 
  3. self.view = web; 
  4. - (void)viewDidLoad { 
  5. [super viewDidLoad]; 
  6.  
  7. UIWebView *web = (UIWebView *)self.view; //董鉑然 
  8. NSURL *url = [NSURL URLWithString:@"https://github.com/"]; 
  9. NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
  10. [web loadRequest:request]; 

中間的url就是我們想要加載的https地址,用https://baidu.com/ 和 https://github.com/ 分別試一下,結果不同

github的網頁能打開,百度的網頁打不開,下面打印了一行log

  1. NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802

原因是蘋果的官方資料說首先必須要基于TLS 1.2版本協議。然后證書的加密的算法還需要達到SHA256或者更高位的RSA密鑰或ECC密鑰,如果不符合,請求將被中斷并返回nil.

在瀏覽器中是可以直接查看這個網站的加密算法的,先點綠鎖再點證書信息。

從右邊兩張圖可以看出,github帶RSA加密的SHA-256符合蘋果的要求,所以才可以展示。

針對百度的情況可以在info.plist中配置如下,如果網站引用的比較多應該是需要針對每個網站進行配置。

NSAppTransportSecurity,NSExceptionDomains,NSIncludesSubdomains,NSExceptionRequiresForwardSecrecy,NSExceptionAllowInsecureHTTPLoads 寫在下面便于復制。

其中的ForwardSecrecy理解為超前的密碼保護算法,在官方資料里有寫,一共是11種。配置完畢百度可以訪問。

 


二、Bitcode

bitcode的理解應該是把程序編譯成的一種過渡代碼,然后蘋果再把這個過渡代碼編譯成可執行的程序。bitcode也允許蘋果在后期重新優化我們程序的二進制文件,有類似于App瘦身的思想。

用了xcode7的編譯器編譯之前沒問題的項目可能會出現下列報錯。
 

  1. XXXX’ does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64 

問題的原因是:某些第三方庫還不支持bitcode。要不然是等待庫的開發者升級了此項功能我們更新庫,要不就是把這個bitcode禁用。

禁用的方法就是找到如下配置,選為NO.(iOS中bitcode是默認YES,watchOS中bitcodes是不讓改的必須YES。)


三、設置信任

這一條只和企業級應用或inhose 有關,和AppStore渠道的應用無關。

在iOS8只是彈出一個窗問你是否需要讓手機信任這個應用,但是在iOS9卻直接禁止,如果真的想信任需要自己去手動開啟。類似于Mac系統從未知開發者處下載的dmg直接打不開,然后要到系統偏好設置的安全性與隱私手動打開。 下圖展示左邊iOS8,右邊iOS9

用戶需要去 設置---》通用---》描述文件 里面自行添加信任。

這種問題的處理方法也就兩種:1.提前周知暫時不要升級iOS9 2.大多是公司員工使用的企業級應用,群發一個指導郵件。


四、字體

iOS8中,字體是Helvetica,中文的字體有點類似于“華文細黑”。只是蘋果手機自帶渲染,所以看上去可能比普通的華文細黑要美觀。iOS9中,中文系統字體變為了專為中國設計的“蘋方” 有點類似于一種word字體“幼圓”。字體有輕微的加粗效果,并且最關鍵的是字體間隙變大了!

所以很多原本寫死了width的label可能會出現“...”的情況。

上面這兩張圖也可以直觀的看出同一個界面,同一個label的變化。

所以為了在界面顯示上不出錯,就算是固定長度的文字也還是建議使用sizetofit 或者ios向上取整 ceilf() 或者提前計算

  1. CGSize size = [title sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:14.0f]}]; 
  2. CGSize adjustedSize = CGSizeMake(ceilf(size.width), ceilf(size.height)); 


五、URL scheme

URL scheme一般使用的場景是應用程序有分享或跳其他平臺授權的功能,分享或授權后再跳回來。

在iOS8并沒有做過多限制,但是iOS9需要將你要在外部調用的URL scheme列為白名單,才可以完成跳轉

如果iOS9沒做適配 會報如下錯誤

  1. canOpenURL: failed for URL : "mqzone://qqapp" - error: "This app is not allowed to query for scheme mqzone" 

具體的解決方案也是要在info.plist中設置 LSApplicationQueriesSchemes 類型為數組,下面添加所有你用到的scheme


六、statusbar

這個還好只是報一個警告,如果就是不管他,也不會出現問題。

  1. <Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. 

以前我們為了能夠實時的控制頂部statusbar的樣式,可能會在喜歡使用

  1. [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent] 
  2. [[UIApplication sharedApplication]setStatusBarHidden:YES]; 

但是這么做之前需要將 info.plist 里面加上View controller-based status bar appearance BOOL值設為NO,就是把控制器控制狀態欄的權限給禁了,用UIApplication來控制。但是這種做法在iOS9不建議使用了,建議我們使用吧那個BOOL值設為YES,然后用控制器的方法來管理狀態欄比如。

  1. - (UIStatusBarStyle)preferredStatusBarStyle 
  2. return UIStatusBarStyleLightContent; 

點進頭文件可以驗證剛才說法:

  1. @property(readwrite, nonatomic,getter=isStatusBarHidden) BOOL statusBarHidden NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController prefersStatusBarHidden]"); 


七、didFinishLaunchingWithOptions

如果運行的時候報下列錯誤,那就是你的didFinishLaunchingWithOptions寫的不對了
 

  1. ***** Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3505.16/UIApplication.m:3294** 

iOS9不允許在didFinishLaunchingWithOptions結束了之后還沒有設置window的rootViewController。 也許是xcode7的編譯器本身就不支持。

解決的方法當然就是先初始化個值,之后再賦值替換掉
 

  1. UIWindow *window = [[UIWindowalloc] initWithFrame:[UIScreenmainScreen].bounds]; 
  2. window.rootViewController = [[UIViewController alloc]init]; 


八、tableView

雖然現在的iOS9已經推送正式版了,但是iOS9使用時還是會感覺到App比以前更加卡頓了,tableView拖動時卡頓顯示的最為明顯。 并且之前遇到一個bug,原本好的項目用xcode7一編譯,tableView刷新出了問題 ,[tableView reloadData]無效 有一行cell明明改變了但是刷新不出來。 感覺可能是這個方法和某種新加的特性沖突了,猜測可能是reloadData的操作被推遲到下一個RunLoop執行最終失效。

解決的方法是,注釋[tableView reloadData],改用局部刷新,問題居然就解決了。

  1. [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone]; 

 

如果你不是在董鉑然博客園看到本文,請點擊查看原文。

暫時遇到這些問題,感覺iOS9的出現讓所有iOS開發都是菊花一緊,希望蘋果這種大刀闊斧做改變,特立獨行的風格發展下去以后別和government 產生矛盾,然后公司倒閉 導致開發人員失業,也許是我想多了。預祝所有的iOS都能及時的做好適配改完bug,下個版本一上線,所有問題都解決。

責任編輯:chenqingxiang 來源: 董鉑然的博客
相關推薦

2017-11-14 15:22:06

ReactNativeAppBugly

2023-12-18 13:10:00

finally死鎖JVM 崩潰

2025-04-03 09:51:37

2024-06-20 12:38:07

2022-04-02 06:43:44

CLI 工具Fig終端自動補全

2022-02-07 09:02:00

汽車智能技術

2015-04-16 09:48:12

APP測試

2015-07-13 16:56:40

IOS 9適配教程

2023-12-30 10:59:03

MySQLupdate數據庫

2009-03-10 19:04:58

服務器虛擬化IDC

2010-11-17 11:11:44

跳槽

2013-09-26 09:22:14

2010-11-03 10:55:39

求職

2020-04-24 20:05:16

VueAxios前端

2015-07-06 11:28:40

2015-07-30 17:00:01

喬老爺

2019-10-18 12:57:38

邊緣計算云計算安全

2019-08-07 06:16:28

物聯網IOT技術

2020-06-05 09:47:55

Linux 系統 數據

2017-10-25 11:02:14

CIO企業云業務
點贊
收藏

51CTO技術棧公眾號

wwwxxx亚洲| 红桃视频一区二区三区免费| 九九在线视频| 老司机精品视频导航| 久久资源免费视频| 国产老熟女伦老熟妇露脸| 国产综合色区在线观看| 亚洲人吸女人奶水| 国产综合色一区二区三区| 五月婷婷激情五月| 欧美视频在线观看| 亚洲一级免费视频| 精品国产乱码久久久久夜深人妻| 一个人www视频在线免费观看| 中文字幕欧美激情一区| 国产精品视频入口| 在线观看国产精品入口男同| 影音先锋亚洲一区| 国产99亚洲| 亚洲综合一二区| 色综合电影网| 色网站免费观看| 麻豆成人久久精品二区三区红 | 中文字幕久久久久久久| 亚洲精品国产精品国产| 一区二区国产视频| 中国成人在线视频| av在线免费观看网| 91欧美一区二区| 99一区二区| 亚洲一级av毛片| 久久久久久黄| 91wwwcom在线观看| 国产精品第56页| 伊人久久大香线蕉综合四虎小说 | 日本伦理一区二区三区| 日韩精品丝袜美腿| 日韩美女主播在线视频一区二区三区| 无需播放器的av| 综合在线影院| 欧美特黄级在线| 熟女少妇在线视频播放| 色呦呦在线视频| 一区二区三区在线高清| 日韩精品免费一区| 麻豆网站视频在线观看| 国产精品久线在线观看| 视频在线99re| av中文天堂在线| 国产拍揄自揄精品视频麻豆| 欧美大香线蕉线伊人久久| 人妻无码中文字幕免费视频蜜桃| 国产不卡视频一区| 99www免费人成精品| 成人av手机在线| 高清shemale亚洲人妖| 99热在线播放| 精品一区在线播放| 自拍偷拍精品视频| 人妖欧美一区二区| 国产精品美女在线观看| 中国一级特黄视频| 久久国产剧场电影| 91精品久久久久久久久久另类 | 精品久久一二三区| 亚洲最大视频网| jazzjazz国产精品久久| 精品国产凹凸成av人导航| www.17c.com喷水少妇| 久久99偷拍| 日韩精品一二三四区| 日韩中文字幕电影| 精品日韩免费| 日韩专区在线播放| 99视频只有精品| 激情六月综合| 日产精品99久久久久久| 伊人色综合久久久| 国产成人在线视频免费播放| 国产精品国产精品国产专区不卡| 天天操天天操天天干| 久久久91精品国产一区二区三区| 四虎一区二区| 国产网站在线免费观看| 亚洲午夜久久久久久久久久久| 国产 日韩 欧美在线| 在线最新版中文在线| 欧美色综合网站| 一本之道在线视频| 婷婷国产精品| 神马国产精品影院av| 欧美三级 欧美一级| 99精品国产福利在线观看免费| 国产99久久久欧美黑人| 国产美女三级无套内谢| 97久久精品人人做人人爽| 性欧美精品一区二区三区在线播放| 成人福利网站| 色综合欧美在线| 伊人成人免费视频| 国产99久久久国产精品成人免费| 国模少妇一区二区三区| 国产91在线播放九色快色| 一起草av在线| 91丝袜高跟美女视频| 宅男噜噜99国产精品观看免费| a级片在线免费| 欧美日韩精品三区| 亚洲av成人片色在线观看高潮| 日韩精品一区二区久久| 欧美精品激情在线观看| 中文字幕有码无码人妻av蜜桃| 国产不卡免费视频| 亚洲欧美成人一区| 在线黄色的网站| 欧美成人国产一区二区| 无码少妇精品一区二区免费动态| 欧美日韩国产亚洲一区| 国产精品电影一区| 色婷婷av一区二区三区之e本道| 国产精品毛片大码女人| 春日野结衣av| 成人另类视频| 美女av一区二区| 中文字幕乱码人妻二区三区| 91视频观看免费| 99在线免费视频观看| 国产精品亚洲四区在线观看| 伊人久久综合97精品| 国产一级视频在线观看| 国产一区二区三区久久悠悠色av| 日韩欧美亚洲v片| 女同视频在线观看| 欧美一级片免费看| 成人欧美一区二区三区黑人一 | 夜夜嗨av一区二区三区网页| 国产精品自拍视频在线| 国产在线日韩精品| 欧美一级在线亚洲天堂| 日批视频在线播放| 午夜欧美大尺度福利影院在线看| 久草福利在线观看| 天天av综合| 国产日韩av在线| av在线电影播放| 欧美日韩一卡二卡| 又色又爽的视频| 久久bbxx| 一区二区三区日韩精品视频| 亚洲国产日韩在线一区| 91精品观看| 91免费人成网站在线观看18| 免费a级人成a大片在线观看| 欧美日韩aaa| 久久精品一区二区三区四区五区 | 国产www精品| 精品成人一区二区三区免费视频| 欧美性猛交xxxx黑人| 九色porny自拍视频| 三级成人在线视频| 亚洲精品8mav| 久久爱www.| 欧美激情国产日韩精品一区18| www.久久精品.com| 午夜精品一区二区三区电影天堂| 7788色淫网站小说| 毛片一区二区| 正义之心1992免费观看全集完整版| 欧美亚洲二区| 欧美大胆在线视频| 刘玥91精选国产在线观看| 激情亚洲一区二区三区四区| 久久成人激情视频| 久久精品国产99国产| 日韩中文字幕亚洲精品欧美| 91在线一区| 欧美一级在线亚洲天堂| av播放在线观看| 欧美一级xxx| 国产又爽又黄的视频| 国产亚洲综合在线| 爱爱爱爱免费视频| 欧美日本不卡高清| 久久精品日韩| 免费成人高清在线视频| 免费av一区二区| 色视频在线看| 欧美久久久久久久久中文字幕| 九九精品在线观看视频| 久久久亚洲午夜电影| 看看黄色一级片| 亚洲美女少妇无套啪啪呻吟| 色999五月色| 57pao国产一区二区| 国产97在线观看| 伊人精品影院| 亚洲小视频在线| 国产成人久久精品77777综合| 丰满岳妇乱一区二区三区| 中文国语毛片高清视频| 91视频在线观看免费| 97人人爽人人| 新67194成人永久网站| 秋霞在线一区二区| 国产精品美女久久久久久不卡| 亚洲综合成人婷婷小说| 欧美精品高清| 韩国国内大量揄拍精品视频| 日本天堂在线观看| 亚洲欧美精品伊人久久| 国产超碰人人模人人爽人人添| 色综合久久综合网97色综合 | 成人77777| 日韩欧美在线不卡| 久久99国产精品久久| 国产精品欧美日韩一区二区| 在线heyzo| 中文字幕最新精品| 午夜福利理论片在线观看| 91精品国产综合久久香蕉麻豆| 波多野结衣视频网站| 亚洲精品菠萝久久久久久久| xxxx日本黄色| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 欧美性xxxxxxx| 国产av 一区二区三区| 欧美国产日韩精品免费观看| 一出一进一爽一粗一大视频| 国产河南妇女毛片精品久久久| 在线视频日韩一区| 久久精品国产清高在天天线| 日韩视频免费播放| 欧美啪啪一区| 9色视频在线观看| 国产精品久久久久久影院8一贰佰| 日韩精品国内| 中文字幕精品影院| 九色视频成人porny| 大奶在线精品| av电影成人| 91国内精品白嫩初高生| 亚洲自拍偷拍网址| 国产亚洲亚洲国产一二区| 国产日韩欧美电影在线观看| 粉嫩91精品久久久久久久99蜜桃| 日本精品一区二区三区在线播放视频| 咪咪网在线视频| 4438全国亚洲精品在线观看视频| 国产乱码午夜在线视频| 97激碰免费视频| 9999热视频在线观看| 午夜精品福利电影| 正在播放日韩精品| 日本韩国在线不卡| 欧美大片免费| 国产精品视频公开费视频| 99热播精品免费| 国产美女被下药99| 在线视频成人| 99国产在线视频| 国产精品欧美大片| 久久99精品国产一区二区三区| 久久久亚洲欧洲日产| 欧美精品123| 成人久久电影| 黄瓜视频免费观看在线观看www | 日韩中文在线视频| 麻豆网站在线看| 欧美激情二区三区| sese综合| 成人妇女淫片aaaa视频| 国产麻豆精品| 国产高清精品一区二区三区| 日韩电影不卡一区| 日本成人三级| 亚州av乱码久久精品蜜桃| 激情成人开心网| 国产一区二区三区久久久久久久久 | 在线精品一区二区| 国产成人a亚洲精v品无码| 日本在线观看不卡视频| 国产又粗又长又爽又黄的视频| 国产99精品国产| 中文字幕国产专区| 亚洲欧美在线aaa| 久久人人爽人人爽人人| 狠狠色香婷婷久久亚洲精品| 在线免费看毛片| 日韩精品中文字幕一区| 毛片在线能看| 欧美高清videos高潮hd| 吞精囗交69激情欧美| 91精品视频观看| 偷拍精品福利视频导航| 制服诱惑一区| 美女精品一区| 能看毛片的网站| 国产视频在线观看一区二区三区| 精品亚洲乱码一区二区 | 天天干天天干天天操| 制服丝袜亚洲网站| 天堂av在线资源| 理论片在线不卡免费观看| 女人高潮被爽到呻吟在线观看| 国产日韩欧美在线| 图片婷婷一区| 真实国产乱子伦对白视频| 免费在线一区观看| 国产精品久久久久久久无码| 国产精品理伦片| 中文字幕亚洲乱码熟女1区2区| 日韩精品一区二区三区中文不卡| jizz在线免费观看| 136fldh精品导航福利| 麻豆一区在线| 亚洲欧洲一区二区福利| 久久精品91| av鲁丝一区鲁丝二区鲁丝三区| 亚洲天堂2014| 中文字幕av久久爽| 亚洲精品综合久久中文字幕| 欧美家庭影院| 亚洲va欧美va在线观看| 精品免费av| 99视频在线免费| 91网址在线看| 一区二区三区视频免费看| 日韩一区二区三区电影在线观看 | 一本久久青青| 99热亚洲精品| 国产很黄免费观看久久| 51精品免费网站| 欧美影视一区在线| 青青草超碰在线| 午夜精品在线视频| 丁香婷婷成人| 青青草成人免费在线视频| 国产乱色国产精品免费视频| 911国产在线| 欧美优质美女网站| 国产区在线视频| 全球成人中文在线| 亚洲免费毛片| 能在线观看的av| 久久久美女艺术照精彩视频福利播放| 亚洲精品午夜久久久久久久| 欧美大片在线观看| 欧美伦理免费在线| 成人h在线播放| 激情婷婷欧美| 国产a级黄色片| 亚洲成人精品影院| 天堂中文在线资源| 午夜精品在线观看| 日韩精选在线| 已婚少妇美妙人妻系列| 国产亚洲综合av| 国产日韩久久久| 中文国产亚洲喷潮| 日韩深夜福利网站| 桥本有菜av在线| 国产一区二区三区免费观看| 久艹视频在线观看| 欧美成人a视频| 激情av在线| 精品无码久久久久久久动漫| 免播放器亚洲| 国产99在线 | 亚洲| 欧美高清激情brazzers| 日本aa在线| 国内精品久久久久久久果冻传媒| 久久国产欧美| 亚洲欧美日韩第一页| 69堂精品视频| a级片在线免费观看| 欧美在线3区| 麻豆精品视频在线观看视频| 国产免费无码一区二区视频| 亚洲缚视频在线观看| 新片速递亚洲合集欧美合集| 一区二区在线不卡| 成人免费av资源| 91青青草视频| 欧美日韩xxx| 九九视频免费观看视频精品| 最新天堂中文在线| 亚洲一区二区视频在线| 免费毛片在线| 成人写真福利网| 国产精品日韩久久久| 永久免费看片直接| 亚洲精品久久久久久久久久久久久 | 天堂av在线免费观看| 国产综合久久久久久| 亚洲乱码视频| 天天色天天综合| 日韩精品一二三四区| 奇米一区二区| 欧美日韩亚洲一二三| 一区二区在线免费观看|