丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
專欄 正文
發(fā)私信給小芹菜
發(fā)送

6

你的 App 真正適配了iOS 9嗎?

本文作者: 小芹菜 2015-09-10 17:29
導(dǎo)語:我們的App真的已經(jīng)兼容適配好iOS 9系統(tǒng)了嗎?

【編者按】本文作者馮義力,騰訊 Bugly SDK 開發(fā)工程師。近期 Bugly 支持 ATS 及 Bitcode 特性的 SDK 即將發(fā)布。

你的 App 真正適配了iOS 9嗎?

Apple秋季產(chǎn)品發(fā)布會(huì)剛剛結(jié)束,iOS 9 GM版本也正式發(fā)布了。新的iPhone設(shè)備即將開售,iOS 9系統(tǒng)升級(jí)也將會(huì)在下周開始陸續(xù)進(jìn)行推送。

在這之前,我們還可以為自己的App兼容適配做點(diǎn)什么,或者說,我們的App真的已經(jīng)兼容適配好iOS 9系統(tǒng)了嗎?

從7月份開始到現(xiàn)在,Apple已發(fā)布5個(gè)iOS 9的Beta版本,相信開發(fā)者在這段時(shí)間也已經(jīng)把iOS 9系統(tǒng)的特性基本了解清楚,也為自己的App進(jìn)行了一系列兼容適配處理。

但在這里,筆者還是要再次跟大家聊聊iOS 9中兩個(gè)比較特別的特性及其兼容問題,即:App Transport Security和App Thinning。

App Transport Security

App Transport Security is a feature that improves the security of connections between an app and web services. The feature consists of default connection requirements that conform to best practices for secure connections.

App Transport Security(ATS)是Apple為提高系統(tǒng)及應(yīng)用安全性而在iOS 9和OS X EI Capitan中引入的新特性,必然,出于安全性的考慮,在新發(fā)布的watchOS 2系統(tǒng)中也會(huì)適用。

一旦開啟ATS后,應(yīng)用所有的網(wǎng)絡(luò)請(qǐng)求將會(huì)自動(dòng)轉(zhuǎn)換為HTPPS傳輸,且采用一系列配置要求來保證數(shù)據(jù)傳輸?shù)陌踩?,包括?/p>

· Transport Layer Security協(xié)議版本要求TLS1.2以上

· 服務(wù)的Ciphers配置要求支持Forward Secrecy等

· 證書簽名算法符合ATS要求等

這些配置項(xiàng)在升級(jí)服務(wù)器支持HTTPS過程中都需要嚴(yán)格遵守的,否則就會(huì)導(dǎo)致你的HTTPS服務(wù)在iOS 9系統(tǒng)中連接仍是失效的。

如果你的App的服務(wù)也在升級(jí)以適配ATS要求,可以使用如下的方式進(jìn)行校驗(yàn):

在OS X EI Capitan系統(tǒng)的終端中通過nscurl命令來診斷檢查你的HTTPS服務(wù)配置是否滿足Apple的ATS要求:$ nscurl --verbose --ats-diagnostics https://<your_server_domain>

當(dāng)然,你也可以參考Apple提供官方指南App Transport Security Technote進(jìn)行服務(wù)的升級(jí)配置以滿足ATS的要求。

Apple雖然希望開發(fā)者可以積極的參與并為系統(tǒng)及應(yīng)用安全共同努力,但官方仍提供了一些參考配置去禁用ATS功能或降低ATS的安全性要求。

開發(fā)者可以在App的Info.plist中添加NSAppTransportSecurity的相關(guān)配置,用以禁用ATS或者添加白名單,可用的配置參數(shù)如下:

· NSAllowsArbitraryLoads - 設(shè)置true即支持所有HTTP請(qǐng)求

· NSExceptionDomains - 添加白名單

· NSExceptionMinimumTLSVersion - 白名單指定域名支持的TLS版本

· NSExceptionRequiresForwardSecrecy - 白名單指定域名是否支持Forward Secrecy

· NSExceptionAllowsInsecureHTTPLoads - 白名單指定域名禁用ATS

· NSThirdPartyExceptionMinimumTLSVersion - 白名單指定第三方服務(wù)域名最低支持的TLS版本

· NSThirdPartyExceptionRequiresForwardSecrecy - 白名單指定第三方服務(wù)域名是否支持Forward Secrecy

· NSThirdPartyExceptionAllowsInsecureHTTPLoads - 白名單指定第三方域名禁用ATS

舉個(gè)例子:

禁用所有連接使用ATS

在Info.plist中配置禁用ATS:

  你的 App 真正適配了iOS 9嗎?

 指定域名禁用ATS

在Info.plist中配置App的服務(wù)域名mine.test.com支持HTTP:

 你的 App 真正適配了iOS 9嗎?

指定域名修改ATS安全要求

在Info.plist中配置第三方服務(wù)third.test.com的TLS1.1及禁用Forward Secrecy:

 你的 App 真正適配了iOS 9嗎?

App Thinning

The App Store and operating system optimize the installation of iOS and watchOS apps by tailoring app delivery to the capabilities of the user’s particular device, with minimal footprint. This optimization, called app thinning, lets you create apps that use the most device features, occupy minimum disk space, and accommodate future updates that can be applied by Apple. Faster downloads and more space for other apps and content provides a better user experience.

開發(fā)者都知道,當(dāng)前iOS App的編譯打包方式是把適配兼容多個(gè)設(shè)備的執(zhí)行文件及資源文件合并一個(gè)文件,上傳和下載的文件則包含了所有的這些文件,導(dǎo)致占用較多的存儲(chǔ)空間。

App Thinning是一個(gè)關(guān)于節(jié)省iOS設(shè)備存儲(chǔ)空間的功能,它可以讓iOS設(shè)備在安裝、更新及運(yùn)行App等場(chǎng)景中僅下載所需的資源,減少App的占用空間,從而節(jié)省設(shè)備的存儲(chǔ)空間。

根據(jù)Apple官方文檔的介紹,App Thinning主要有三個(gè)機(jī)制:

Slicing

開發(fā)者把App安裝包上傳到AppStore后,Apple服務(wù)會(huì)自動(dòng)對(duì)安裝包切割為不同的應(yīng)用變體(App variant),當(dāng)用戶下載安裝包時(shí),系統(tǒng)會(huì)根據(jù)設(shè)備型號(hào)下載安裝對(duì)應(yīng)的單個(gè)應(yīng)用變體。

On-Demand Resources

ORD(隨需資源)是指開發(fā)者對(duì)資源添加標(biāo)簽上傳后,系統(tǒng)會(huì)根據(jù)App運(yùn)行的情況,動(dòng)態(tài)下載并加載所需資源,而在存儲(chǔ)空間不足時(shí),自動(dòng)刪除這類資源。

Bitcode

開啟Bitcode編譯后,可以使得開發(fā)者上傳App時(shí)只需上傳Intermediate Representation(中間件),而非最終的可執(zhí)行二進(jìn)制文件。 在用戶下載App之前,AppStore會(huì)自動(dòng)編譯中間件,產(chǎn)生設(shè)備所需的執(zhí)行文件供用戶下載安裝。

其中,Bitcode的機(jī)制可以支持動(dòng)態(tài)的進(jìn)行App Slicing,而對(duì)于Apple未來進(jìn)行硬件升級(jí)的措施,此機(jī)制可以保證在開發(fā)者不重新發(fā)布版本的情況下而兼容新的設(shè)備。

如果你的應(yīng)用也準(zhǔn)備啟用Bitcode編譯機(jī)制,就需要注意以下幾點(diǎn):

· Xcode 7默認(rèn)開啟Bitcode,如果應(yīng)用開啟Bitcode,那么其集成的其他第三方庫也需要是Bitcode編譯的包才能真正進(jìn)行Bitcode編譯


· 開啟Bitcode編譯后,編譯產(chǎn)生的.app體積會(huì)變大(中間代碼,不是用戶下載的包),且.dSYM文件不能用來崩潰日志的符號(hào)化(用戶下載的包是Apple服務(wù)重新編譯產(chǎn)生的,有產(chǎn)生新的符號(hào)文件)


· 通過Archive方式上傳AppStore的包,可以在Xcode的Organizer工具中下載對(duì)應(yīng)安裝包的新的符號(hào)文件

iOS 9的ATS特性和App Thinning特性給開發(fā)者帶來安全提升和體驗(yàn)上的優(yōu)化,也是開發(fā)者在后續(xù)App的兼容適配方便會(huì)考慮的事項(xiàng)。

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

你的 App 真正適配了iOS 9嗎?

分享:
相關(guān)文章

編輯

雷鋒網(wǎng)編輯,AI慕課學(xué)院負(fù)責(zé)人。關(guān)注智能駕駛與金融科技,歡迎來撩:www.mooc.ai。
當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚懮暾?qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說