亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

iOS9的新特性以及適配方案-----轉載

2019-11-14 17:57:54
字體:
來源:轉載
供稿:網友

2015年9月8日,蘋果宣布iOS 9操作系統的正式版在太平洋時間9月16日正式推出,北京時間9月17日凌晨1點推送。

新的iOS 9系統比iOS8更穩定,功能更全面,而且還更加開放。iOS 9加入了更多的新功能,包括更加智能的Siri,新加入的省電模式。iOS 9為開發者提供5000個全新的API。
iOS9新的特性

這對于使用者來說固然是一個好消息,每一次版本更新帶來的都是更多的便利和更全面的功能,接受新的系統固然會有一些不適應,新的系統也有可能會有一些缺陷,但是至少蘋果在不斷地更新,讓我們體驗更好的產品.


然而,對于我們開發者來說,這就不能說是一個好消息了,系統更新迭代,伴隨的是我們需要快速的接受新的知識,掌握新的技巧,以及大量的修改我們的工程,不過也沒辦法,誰讓我們是程序員呢,不更新自己就會被科技淘汰,相信很多朋友在這上面被坑過,那么請繼續往下看.

步入正題,最近一段時間,我總結了前一段時間遇到的一些伴隨新系統出現的問題,經過自己的測試以及網上的資料,同時總結了解決方案.

接下來讓我們更新一下我們的知識吧!

1. 限制HTTP協議,全部改用更安全的HTTPS

iOS9讓所有的HTTP默認使用了HTTPS,原來的HTTP協議傳輸都改成TLS1.2協議進行傳輸。直接造成的情況就是App發請求的時候彈出網絡無法連接。
對于這個問題的解決方案,網上有一篇博客已經總結的很好了,我在這就簡要的說明怎么處理這種問題.

HTTPS和HTTP的區別在于哪里呢?舉個簡單的栗子:原來的 HTTP 是塑料水管,容易被戳破;那么如今新設計的 HTTPS 就像是在原有的塑料水管之外,再包一層金屬水管。一來,原有的塑料水管照樣運行;二來,用金屬加固了之后,不容易被戳破。Apple讓你的HTTP采用SSL/TLS協議,就是讓你從HTTP轉到HTTPS.不使用SSL/TLS的HTTP通信,就是不加密的通信!所有信息明文傳播,帶來了三大風險:竊聽風險(eavesdropping):第三方可以獲知通信內容。篡改風險(tampering):第三方可以修改通信內容。冒充風險(PRetending):第三方可以冒充他人身份參與通信。SSL/TLS協議是為了解決這三大風險而設計的:所有信息都是加密傳播,第三方無法竊聽。具有校驗機制,一旦被篡改,通信雙方會立刻發現。配備身份證書,防止身份被冒充。
  • 在 Info.plist 中聲明,倒退回不安全的網絡請求依然能讓App訪問指定http,甚至任意的http(蘋果不建議這么做):
技術分享
需要添加的節點


NSAPPTransportSecurity - NSAllowsArbitraryLoads
這個子節點的意思是:是否仍然允許加載?!

設為YES的話就將禁用了AppTransportSecurity轉而使用用戶自定義的設置,這個問題就解決了。

2. Bitcode

應該有朋友在真機調試的時候發現在使用微博微信等第三方SDK的時候,會提示報錯,

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

Xcode默認開啟bitcode模式,bitcode的理解應該是把程序編譯成的一種過渡代碼,然后蘋果再把這個過渡代碼編譯成可執行的程序。bitcode也允許蘋果在后期重新優化我們程序的二進制文件,可以直接理解為App瘦身


解決方式:

  1. 某些第三方庫還不支持bitcode,我們只能等待庫的開發者升級了此項功能.(這個是我們所不能掌握的,嘿嘿)
  2. 直接禁用bitcode,禁用的方法就是找到如下配置,選為NO.注意:iOS中bitcode是默認YES,watchOS中bitcodes是不讓改的必須為YES。
    技術分享
    選為NO禁用

3. 企業級分發

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

  • 設置-->通用--->描述文件 自行添加信任.
技術分享
選擇描述文件
技術分享
添加信任

4. URL scheme

URL scheme一般使用的場景是應用程序有分享或跳其他平臺授權的功能,分享或授權后再跳回來.
在iOS8并沒有做過多限制,但是iOS9需要將你要在外部調用的URL scheme列為白名單,才可以完成跳轉.
如果iOS9沒做適配 會報如下錯誤 :

canOpenURL: failed for URL : "[mqzone://QQapp](mqzone://qqapp)"  - error: "This app is not allowed to query for scheme mqzone"

例如在實現第三方登錄時,不能直接跳轉到相應的app直接獲取權限.
解決方式為:

  • 設置應用白名單 否則不能直接關聯上你手機里的應用
    在info.plist中加入<key>LSapplicationQueriesSchemes</key> <array>    <!-- 微信 URL Scheme 白名單-->    <string>wechat</string>    <string>weixin</string>    <!-- 新浪微博 URL Scheme 白名單-->   <string>sinaweibohd</string>    <string>sinaweibo</string>    <string>sinaweibosso</string>    <string>weibosdk</string>    <string>weibosdk2.5</string>    <!-- QQ、Qzone URL Scheme 白名單-->   <string>mqqapi</string>    <string>mqq</string>    <string>mqqOpensdkSSoLogin</string>   <string>mqqconnect</string>   <string>mqqopensdkdataline</string>   <string>mqqopensdkgrouptribeshare</string>   <string>mqqopensdkfriend</string>   <string>mqqopensdkapi</string>   <string>mqqopensdkapiV2</string>   <string>mqqopensdkapiV3</string>   <string>mqzoneopensdk</string>   <string>wtloginmqq</string>    <string>wtloginmqq2</string>    <string>mqqwpa</string>    <string>mqzone</string>    <string>mqzonev2</string>    <string>mqzoneshare</string>    <string>wtloginqzone</string>    <string>mqzonewx</string>   <string>mqzoneopensdkapiV2</string>   <string>mqzoneopensdkapi19</string>   <string>mqzoneopensdkapi</string>   <string>mqzoneopensdk</string>    <!-- 支付寶  URL Scheme 白名單-->    <string>alipay</string>    <string>alipayshare</string></array>

5. statusBar

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

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent][[UIApplication sharedApplication]setStatusBarHidden:YES];

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

- (UIStatusBarStyle)preferredStatusBarStyle{    return UIStatusBarStyleLightContent;}

6. 字體

iOS9中,中文系統字體變為了專為中國設計的“蘋方”,字體有輕微的加粗效果,并且最關鍵的是字體間隙變大了!
所以很多原本寫死了width的label可能會出現“...”的情況。
包括在很多時候我們自動計算行高行寬的時候出現偏差,導致一些不可知的錯誤
解決方式:

// 字體的大小CGSize size = [title sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:14.0f]}];CGSize adjustedSize = CGSizeMake(ceilf(size.width), ceilf(size.height));
加上向上取整 ceilf()就能解決了.

7. AFNetworking

為了迎合iOS新版本的升級, AFNetworking在3.0版本中刪除了基于 NSURLConnection API的所有支持。

如果你的項目以前使用過這些API,建議立即升級到基于 NSURLsession 的API的AFNetworking的版本。

具體解決方案我將會過幾天在另一篇文章中詳細說明,關于AFNetworking 3.0的遷移,如果有感興趣的朋友可以關注下。

以上就是我所總結的有關于iOS9的新特性以及適配方案,可能還會有一些遺漏或者錯誤的地方,

歡迎大家指出和補充,知識只有交流才能進步,讓我們一起成長,一起學習,一起提高自己!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97久久伊人激情网| 国产精品久久激情| 亚洲成人中文字幕| 亚洲久久久久久久久久久| 亚洲直播在线一区| 国产精品亚洲精品| 91免费视频国产| 色无极亚洲影院| 国产精品无av码在线观看| 欧美国产日韩二区| 欧美激情乱人伦一区| 欧美自拍大量在线观看| 九九热在线精品视频| www.午夜精品| 免费97视频在线精品国自产拍| 欧美孕妇性xx| 国产91色在线|免| 日韩久久精品电影| 成人日韩在线电影| 国模视频一区二区三区| 久久综合久久88| 国产欧美亚洲精品| 在线播放日韩精品| 色爱av美腿丝袜综合粉嫩av| 亚洲综合在线播放| 中文字幕亚洲欧美一区二区三区| 日韩日本欧美亚洲| 欧美日韩国产精品一区二区三区四区| 欧美精品video| 国产精品成人一区| 国产中文字幕日韩| 日韩电影大全免费观看2023年上| 欧美日韩国产在线播放| 成人免费xxxxx在线观看| 91精品国产综合久久男男| 亚洲午夜av久久乱码| 国产在线观看不卡| 精品国产一区二区三区久久久狼| 日韩精品中文字幕有码专区| 久久人人爽人人爽人人片av高请| 久久精品国产亚洲一区二区| 欧美大胆a视频| 欧美日韩中文字幕日韩欧美| 欧美激情久久久久久| 日韩网站免费观看高清| 日韩免费观看高清| 色偷偷9999www| 国产成人精彩在线视频九色| 欧美精品videos| 精品国产乱码久久久久久婷婷| 麻豆精品精华液| 91久久国产精品91久久性色| 亚洲一区二区三| 亚洲欧洲美洲在线综合| 91九色综合久久| 中文字幕在线看视频国产欧美| 欧美精品一本久久男人的天堂| yellow中文字幕久久| 中文字幕亚洲自拍| 色噜噜久久综合伊人一本| 色哟哟入口国产精品| 深夜精品寂寞黄网站在线观看| 国产午夜精品一区二区三区| 精品国产自在精品国产浪潮| 岛国精品视频在线播放| 亚洲影视九九影院在线观看| 97国产成人精品视频| 精品中文字幕久久久久久| 国外成人在线播放| 97在线视频一区| 操人视频在线观看欧美| 91黑丝在线观看| 97国产精品免费视频| 亚洲天堂av女优| 日韩在线视频线视频免费网站| 韩日精品中文字幕| 中文字幕精品国产| 国产成人在线播放| 国产亚洲欧美日韩一区二区| 国产精品人成电影| 国外成人在线播放| 色综合久综合久久综合久鬼88| 一区二区三欧美| 欧美精品18videos性欧| 国产精品观看在线亚洲人成网| 国产精品永久免费视频| 欧美中文字幕第一页| 91系列在线播放| 中文字幕日韩av综合精品| 欧美中文字幕视频在线观看| 亚洲精品99久久久久中文字幕| 午夜欧美不卡精品aaaaa| 国产成人精品免高潮费视频| 亚洲激情国产精品| 亚洲大胆美女视频| 亚洲国产成人精品电影| 欧美激情亚洲一区| 亚洲国产91色在线| 日本精品免费一区二区三区| 欧美极品少妇xxxxⅹ免费视频| 色婷婷av一区二区三区久久| 欧美丝袜美女中出在线| 秋霞成人午夜鲁丝一区二区三区| 国产精品网址在线| 国产视频精品va久久久久久| 欧美老女人bb| 国外成人在线直播| 最新的欧美黄色| www.日韩av.com| 18一19gay欧美视频网站| 国产98色在线| 日韩av免费看网站| 日韩女优人人人人射在线视频| 大胆人体色综合| 57pao成人永久免费视频| 欧美一二三视频| 亚洲最大福利网| 羞羞色国产精品| 欧美日韩高清区| 亚洲精品视频在线观看视频| 91精品国产乱码久久久久久蜜臀| 91中文精品字幕在线视频| 精品日韩美女的视频高清| 69av视频在线播放| 国产精品av在线播放| 国产91亚洲精品| 亚洲黄色片网站| 亚洲精品91美女久久久久久久| 亚洲一区二区中文| 国产97在线|日韩| 91爱视频在线| 日韩中文在线中文网在线观看| 国产激情久久久久| 久久久精品国产亚洲| 日本精品免费一区二区三区| 国产精品久久久久久av福利软件| 成人日韩在线电影| 最近中文字幕mv在线一区二区三区四区| 最新国产成人av网站网址麻豆| 日韩在线观看免费网站| 国产在线a不卡| 国产成人精品免费久久久久| 久久人人爽人人| 亚洲精品一二区| 亚洲欧美日韩网| 国内成人精品视频| 亚洲精品国精品久久99热| 亚洲精品国精品久久99热| 国产精品美女久久久久久免费| 欧美野外猛男的大粗鳮| 神马久久桃色视频| 在线观看精品自拍私拍| 国产精品福利小视频| 久久精品一区中文字幕| 国产精品69久久久久| 欧美香蕉大胸在线视频观看| 欧美性xxxxx极品娇小| 久久精品视频在线| 久久视频这里只有精品| 中日韩午夜理伦电影免费| 91九色视频在线| 欧美激情欧美激情在线五月| 日韩黄色在线免费观看| 一区二区三区美女xx视频|