Xcode7打包,iOS9真機閃退,如何解決?,xcode7ios9

來源:互聯網
上載者:User

Xcode7打包,iOS9真機閃退,如何解決?,xcode7ios9

有些項目用xcode7開啟運行,打包安裝到iOS9裝置上程式會閃退。
如果用xcode7以下編譯,然後打包到iOS9的裝置上就是正常的。這是為什麼,關鍵是,怎麼解決?

答:iOS9發布之後,有些app在新的系統下會經常出現閃退的情況,而官方也給了許多的適配與改變。以使使用者體驗更好。所以做為開發人員怎樣為自己維護的App做適配呢?

最快解決的方法肯定是使用Xcode7以下的編譯打包。(筆者就是因為需求一直在催,所以果斷用舊版Xcode5編譯...555)

 

當然,如果一定要用Xcode7的話也可以解決,需要解決的步驟如下:

(1.)關於iOS9網路適配(HTTP 轉 HTTPS)。

為了強制增強資料訪問安全, iOS9 預設會把 所有的http請求都改為 HTTPS 請求。(HTTPS = HTTP+SSL/TLS+TCP)

解決這個變化帶來的影響,有2個方案:

方案a:立即讓公司的服務端升級使用TLS 1.2,以解析相關資料;

方案b:如果伺服器無法升級改變,雖Apple不建議,但可通過在 Info.plist 中聲明,倒退回不安全的網路請求依然能讓App訪問指定http,甚至任意的http。

          本應用的根目錄下的“info.plist”的檔案需加下面的索引值;簡單粗暴地信任所有http伺服器:

<key>NSAppTransportSecurity</key><dict>    <!--Connect to anything (this is probably BAD)-->    <key>NSAllowsArbitraryLoads</key>    <true/></dict>
或者不用代碼,而在“info.plist”檔案的屬性列表上直接添加:

(2)bitcode,一種被編譯器的一種中間形式的代碼。以後在Watch應用中必須包含Bitcode,iOS不強制,但Xcode7預設會開啟Bitcode。

方案a:更新library使庫中包含Bitcode,否則會出現以下中的警告;

(null): URGENT: all bitcode will be dropped because '/Users/myname/Library/Mobile Documents/com~apple~CloudDocs/foldername/appname/GoogleMobileAds.framework/GoogleMobileAds(GADSlot+AdEvents.o)' was built without 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. Note: This will be an error in the future.

方案b:簡單粗暴,關閉Bitcode.

TAGRETS->Build Setting,右上方搜尋“bitcode”,改為“No”;

(3).iOS9 URL Scheme 適配,引入白名單概念

在在info.plist裡面增加可信任的調用app,否則回報如下錯誤:

-canOpenURL: failed for URL: "weixin://app/wx9c8771d3c07dfd30/" - error: "This app is not allowed to query for scheme weixin"-canOpenURL: failed for URL: "wtloginmqq2://qzapp" - error: "This app is not allowed to query for scheme wtloginmqq2"

可在根目錄的“info.plist”檔案中加入“LSApplicationQueriesSchemes”數組:每個欄位的url需要我們自己添加,如添加了包括微博等sdk的url(具體的其他方應用SDK會有相應說明):

(4)企業級分發

iOS9之前,企業級分發的操作很便捷,直接點擊App出現的“信任”按鈕即可,

而iOS9以後,企業級分發ipa包變得與Mac上dmg安裝包安裝時一樣:預設不能安裝,也不再出現“信任”這個按鈕; 

所以在我們的真機運行,安裝到手機裡面後第一次開啟app。不會像以前提示,信任還是不信任該認證.

這個時候需要開啟自己的裝置上面的 設定-》通用-》描述檔案-》企業級應用 中信任對應的企業開發人員。這個也是iOS9的新特性;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.