精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲小视频在线观看| 性做久久久久久| 91精品中文在线| 久久午夜无码鲁丝片| 色婷婷久久久| 欧美精品日韩一本| 欧美,日韩,国产在线| 成人高清免费在线播放| 国产一区二区精品久久| 51精品国产黑色丝袜高跟鞋| 美国黄色特级片| 91精品丝袜国产高跟在线| 91九色02白丝porn| 日本中文字幕一级片| 牛牛热在线视频| 国产精品99久| 国产日韩欧美夫妻视频在线观看| 国产无码精品久久久| 精品一区电影| 日韩成人中文字幕在线观看| 日韩av片专区| 日本高清不卡一区二区三区视频| 亚洲资源中文字幕| 亚洲成人午夜在线| 日韩美女一级视频| 99精品一区二区| 亚洲一区二区久久久久久久| 97人妻一区二区精品视频| 欧美日韩mv| 久久五月天综合| 超碰人人干人人| 日本欧美高清| 亚洲国产精品专区久久| 韩国三级丰满少妇高潮| 激情中国色综合| 色综合久久中文综合久久97| 日韩久久久久久久久久久久| 黄在线免费观看| 国产精品天干天干在线综合| 久久久亚洲综合网站| 欧美视频xxx| 高清不卡一二三区| 99国产在线| 成人黄色在线观看视频| 精品无人区卡一卡二卡三乱码免费卡| 日韩免费精品视频| 国产又大又黄又粗| 国产精品普通话对白| 97精品一区二区三区| 日干夜干天天干| 日韩午夜一区| 97在线视频免费观看| 日本三级中文字幕| 1000部精品久久久久久久久| 国外成人在线播放| 欧美三级午夜理伦| 亚洲欧美日韩一区在线观看| 国模gogo一区二区大胆私拍 | www.色视频| 国产麻豆欧美日韩一区| 999热视频在线观看| 亚洲成人精品女人久久久| 国产精品一区久久久久| 粉嫩精品一区二区三区在线观看 | 精品国产美女a久久9999| 欧美亚洲愉拍一区二区| a在线观看免费视频| av一级久久| 欧美岛国在线观看| 国产国语性生话播放| 中文字幕伦av一区二区邻居| 亚洲视频在线免费观看| 自拍偷拍第9页| 中文字幕一区二区三区乱码图片| 超碰91人人草人人干| 久久一级黄色片| 午夜一区不卡| 国产精品美女www爽爽爽视频| 亚洲天堂一二三| 国产精品一区免费在线观看| 国产亚洲欧美另类一区二区三区| 天堂а在线中文在线无限看推荐| 国产喷白浆一区二区三区| 中文字幕久久一区| 免费av不卡在线观看| 狠狠做深爱婷婷久久综合一区| 日本熟妇人妻xxxxx| 91成人在线网站| 亚洲韩国日本中文字幕| 亚洲一级黄色录像| 黄色亚洲在线| 国产成人精品免费视频| 国产乱淫片视频| 337p粉嫩大胆色噜噜噜噜亚洲| 在线成人性视频| 17videosex性欧美| 欧美视频一区在线| 国产伦精品一区三区精东| 精品国产一区二区三区小蝌蚪| 欧美成人精品激情在线观看| 毛片视频网站在线观看| 狠狠色丁香久久婷婷综合_中| 国产精品一区二区免费看| 成人激情电影在线看| 亚洲成人激情综合网| 欧美wwwwwww| 亚洲成a人片77777在线播放 | 9999在线视频| 欧美日韩国产小视频| 中文字幕乱码在线| 国产精品久久观看| 欧美专区国产专区| 亚洲精品一区二区三区不卡| 中文字幕不卡三区| 欧美变态另类刺激| 日韩一区二区三区色| 中文字幕一区日韩电影| 一本一道无码中文字幕精品热| 国产一区二区三区久久悠悠色av| 欧美一卡2卡3卡4卡无卡免费观看水多多| 精精国产xxxx视频在线| 欧美亚洲图片小说| 亚洲做受高潮无遮挡| 亚洲国产二区| 97se视频在线观看| 久久bbxx| 欧美三级中文字| 3d动漫精品啪啪一区二区下载 | 久久久久久亚洲| 国产精品高潮呻吟AV无码| 国产亚洲精品久| 久久精品99国产| 欧美三级电影在线| 国产做受高潮69| 亚洲经典一区二区三区| ●精品国产综合乱码久久久久| 青青在线免费观看视频| 真实原创一区二区影院| 日韩美女视频免费看| 亚洲av成人精品一区二区三区在线播放 | 成人性视频免费看| 久久久久久久波多野高潮日日| 精品亚洲一区二区三区四区五区高| 四虎影视国产在线视频| 91精品啪在线观看国产60岁| 青青青视频在线免费观看| 男女男精品视频| 不卡中文字幕在线| 日韩欧美三区| 欧美成人黄色小视频| 亚洲xxxx天美| 姬川优奈aav一区二区| 特级西西人体wwwww| 国产精品一卡| 日韩欧美一区二区视频在线播放| 免费日韩电影| 中文字幕日韩专区| 国产免费av电影| 一区二区三区欧美在线观看| 亚洲最大视频网| 一区二区精品| 日韩尤物视频| 成人在线视频www| 九九热精品视频国产| 成人免费观看在线视频| 欧美日韩在线视频一区| 少妇无套高潮一二三区| 麻豆极品一区二区三区| 成人在线免费高清视频| 日韩黄色网络| 国产精品扒开腿做爽爽爽的视频| 成人福利在线| 日韩精品中文字幕在线不卡尤物| 国产精品第二十页| 国产亚洲短视频| 午夜精品免费看| 亚洲特色特黄| 五月天丁香综合久久国产 | 欧美无乱码久久久免费午夜一区| 99久久精品久久亚洲精品| 国产精品资源网站| 欧美亚洲国产成人| 欧美国产一区二区三区激情无套| 99久久伊人精品影院| 老司机2019福利精品视频导航| 色偷偷91综合久久噜噜| 亚洲AV无码精品国产| 色8久久精品久久久久久蜜| 久久久久亚洲av片无码| 99国产精品国产精品久久| 国产野外作爱视频播放| 久久久精品国产免大香伊| 日韩成人av网站| 在线日韩三级| 2019中文字幕在线| 久久黄色美女电影| 日韩成人中文字幕在线观看| 亚洲一卡二卡在线| 亚洲成人av在线电影| 国产免费嫩草影院| 99re免费视频精品全部| 久久久福利影院| 国产日韩一区二区三区在线| 自拍视频一区二区三区| 亚洲资源网站| 国产高清一区视频| 成人豆花视频| 国产精品99久久久久久白浆小说 | 无码日韩人妻精品久久蜜桃| 欧美精品国产一区| 亚洲综合视频一区| 欧美女优在线视频| 国产一区二区在线网站| 国产精品毛片aⅴ一区二区三区| 欧美在线视频导航| av蜜臀在线| 久久福利视频网| 成人欧美一区| 亚洲人成电影网站色www| 亚洲免费国产视频| 欧美一区二区视频免费观看| 无码人妻黑人中文字幕| 亚洲国产另类av| 精品国产乱码久久久久久鸭王1| 国产亚洲精久久久久久| 国产夫妻性爱视频| 不卡一卡二卡三乱码免费网站| 在线播放免费视频| 久久精品国内一区二区三区| 国产精品宾馆在线精品酒店| 亚洲激情另类| 日韩亚洲欧美视频| 精品91视频| 日韩欧美猛交xxxxx无码| 中文字幕一区二区三三| 国产三级中文字幕| 久久久久久久久久久久久久| 亚洲日本无吗高清不卡| 精品国产乱码久久久久久果冻传媒| 久久国产精品 国产精品| 久草在线综合| 久久99精品久久久久久久青青日本 | 国内激情久久| 97视频在线免费| 亚洲国产专区| 2018国产在线| 日韩视频在线一区二区三区 | 婷婷丁香综合网| 中文字幕第一区二区| 东京热无码av男人的天堂| 国产情人综合久久777777| 少妇久久久久久久久久| 国产亚洲短视频| 亚洲精品成人av久久| 国产精品久久久久久久久快鸭| 超碰人人干人人| 综合婷婷亚洲小说| 久久亚洲AV无码| 精品国产91久久久久久| www五月天com| 欧美日韩午夜影院| 国产三级精品在线观看| 日韩欧美国产高清| 日韩一区二区三区在线观看视频 | 91在线观看免费网站| 1769国产精品视频| 开心色怡人综合网站| av中文一区| 男人天堂成人网| 一本综合精品| 免费看涩涩视频| 国产精品77777| 精品视频站长推荐| 国产人妖乱国产精品人妖| 久草福利资源在线| 一区二区欧美精品| www.com亚洲| 91精品婷婷国产综合久久性色| 粉嫩av一区二区夜夜嗨| 亚洲美女在线看| 国产美女av在线| 2019最新中文字幕| 欧美成人xxxx| 韩国成人av| 国产精品久久久久无码av| www.成年人视频| 欧美a级一区二区| 亚洲精品无码一区二区| 久久久国产综合精品女国产盗摄| 日韩在线观看免| 第一福利永久视频精品| 中文字幕一二区| 亚洲国产精品电影在线观看| fc2在线中文字幕| 久久久久在线观看| 国产精品久久久久久吹潮| 国产精品中出一区二区三区| 久久国产影院| 国产91对白刺激露脸在线观看| 精品一区二区三区久久久| 人妻体内射精一区二区三区| 国产精品三级av| 欧美一区二区三区四| 日韩精品综合一本久道在线视频| 9i精品一二三区| 欧美自拍视频在线| 超碰成人福利| 一级黄色免费在线观看| 性色一区二区三区| 风韵丰满熟妇啪啪区老熟熟女| 日本一区二区动态图| 看片网址国产福利av中文字幕| 欧美一区二区三区男人的天堂| 国产三级在线| 欧美资源在线观看| 久久久久97| 久久精品无码中文字幕| 国产一区在线视频| 99在线视频免费| 日本韩国欧美一区二区三区| 欧美天堂在线视频| 欧美日韩xxxxx| 91丨精品丨国产| 亚洲精品乱码视频| 日韩福利电影在线| 亚洲欧美色图视频| 欧美日韩国产精品专区| 欧美 日韩 综合| 国内精品久久久久影院优| 日韩一区二区三区精品视频第3页| 一区二区不卡在线| 蓝色福利精品导航| 国产黄色大片免费看| 色猫猫国产区一区二在线视频| 天堂在线观看视频| 国内精品小视频在线观看| 一区二区三区自拍视频| 日本美女爱爱视频| 国产成人亚洲精品青草天美| 麻豆明星ai换脸视频| 日韩午夜精品视频| 超碰在线观看免费版| 亚洲淫片在线视频| 欧美福利视频| 制服.丝袜.亚洲.中文.综合懂| 亚洲视频1区2区| a在线观看视频| 欧美第一黄色网| 超碰成人在线观看| 欧美日韩在线视频一区二区三区| av在线这里只有精品| 免费观看成人毛片| 亚洲欧美变态国产另类| 国模一区二区| 亚洲一二三区精品| 国产乱码精品一区二区三区五月婷| 免费中文字幕在线| 亚洲а∨天堂久久精品9966| a√中文在线观看| 欧美成人一区二区在线| 日韩电影在线一区二区三区| 国产性猛交xx乱| 91精品国产色综合久久| 欧美亚洲系列| 狠狠色噜噜狠狠色综合久| 香蕉亚洲视频| 国精品人伦一区二区三区蜜桃| 欧美群妇大交群的观看方式| av网站大全在线| 精品无人区一区二区三区竹菊 | 北条麻妃亚洲一区| 亚洲成人黄色影院| 成人免费在线电影| 91嫩草免费看| 水蜜桃久久夜色精品一区的特点| 国产三级精品三级观看| 精品少妇一区二区三区日产乱码| 日本乱码一区二区三区不卡| 亚洲最大免费| 处破女av一区二区| 青青国产在线视频| 九九精品在线视频| 久久成人av| 久久精品亚洲天堂| 高潮白浆女日韩av免费看| aaa日本高清在线播放免费观看| 亚洲综合在线中文字幕| 亚洲永久在线| 2018天天弄| 中文字幕日韩欧美在线视频| 风间由美性色一区二区三区四区| 一本色道无码道dvd在线观看| 亚洲精品你懂的| 日韩av免费观影| 97人人干人人| 丝袜美腿亚洲色图| 日韩精品国产一区二区| 久久精品99久久香蕉国产色戒| 日本午夜精品| 久久久久无码精品|