升級iOS9和Xcode7後應用崩潰解決方案

乞力馬紮羅的雪CYF發表於2015-10-02

      本人在上個月開發完成了一個用Swift開發的App,最近升級完Xcode7和手機升級到iOS9.0.2後,程式崩潰,出現更多錯誤。目前仍有部分從App Store上下載的應用,在iOS9系統下出現閃退的情況,那麼我估計這些應用也都是用Swift寫的。下面來分析這個問題並解決一下。

    【一】因為Xcode7中的Swift版本不同於Xcode6.4中Swift中的SDK,Xcode7中的Swift主要改變的就是語法問題,也就是一個強制型別轉換。在Xcode6.4中,下列程式碼是能夠編譯通過的:

var cellcell = UITableView()

let cell = self.***TableView.dequeueReusableCellWithIdentifier("***") as! UITableViewCell

cell.textLabel?.text = "Hello World"

cellcell = cell

但是來到Xcode中就會報錯,需要修改為如下程式碼才能成功:

var cellcell = UITableView()

let cell = self.***TableView.dequeueReusableCellWithIdentifier("***")

cell!.textLabel?.text = "Hello World"

cellcell = cell!


     問題的關鍵就是使用as進行強制型別轉換引起的。其中從最初的Swift到目前這個版本,Swift一直在改動很多回的就是這個模組。我們去找一些更早的Swift程式碼,現在去編譯一下,大多出現的也是as型別轉換出現的錯誤,當然也有optional可選型的問題。optional是Swift的特點,也比較難理解,需要大家好好琢磨。

    【二】 然後還會導致不能編譯通過的問題是引入第三方OC庫的問題。由於我的專案中使用了第三方的SDK,並且在Build Phases-->Link Binary With Libraries中引入了很多的*.framework,*.dylib,*.a等等庫檔案。然後編譯會出現如下錯誤:

You must rebuild it with bitcode enable(Xcode setting ENABLE_BITCODE).

解決方案請看博文:http://blog.csdn.net/zhyl8157121/article/details/48528831   。


     【三】最後編譯沒有問題了,但是執行的時候會出現一個問題,就是無法訪問網路資料,出現如下提示:

#warning:獲取app配置資訊失敗:The resource could not be loaded because the App Transport Security

解決方案請看博文:http://bbs.feng.com/read-htm-tid-9619460.html   。


       我經過一晚上的折騰以後,好久不見的App終於又在手機上愉快的跑起來了。


github主頁:https://github.com/chenyufeng1991  。歡迎大家訪問!


相關文章