升級 Xcode 7 錯誤解決

解決升級到 Xcode 7 及 Swift 2.0 的錯誤

Xcode 7 跟 Swift 2.0 正式版終於發佈。升級過程難免會遇到一些 bugs,本文分享這些 bugs 的解決方法。

一、Swift 2.0 的 Print

Xcode 有提供 Swift 2.0 的自動轉換程式。基本上沒什麼問題,以 ParseExample 來講,似乎只是 println() 轉成 print()。

二、使用 CocoaPods 更新程式庫

使用 CocoaPods 來更新 Pods
使用 CocoaPods 來更新 Pods

這正是我們使用 CocoaPods 的原因所在,要更新全部的程式庫,只要一句指令:

記得在專案資料夾內執行。可以看到 Parse 相關程式庫都更新了,Facebook SDK 已經是最新版 4.6,無需更新。

三、為 Xcode 7 設定 Facebook

iOS SDK 9.0 新增了 App Transport Security 的設定,我們要把 Facebook 加入白名單。Facebook Developer 有提供詳細說明。

首先,以程式碼方式(Open as Source Code)打開你的 info.plist,在最後一個 </dict> 前面加入:

接著還要解決 canOpenURL 的問題。同樣在 info.plist 裡繼續加入以下程式:

如果你的 Facebook SDK 是 4.5 或更早的版本,則要改為加入:

注意,你的 info.plist 裡面可能已存在 LSApplicationQueriesSchemes 的設定,若有,可以將他們合併,去掉重覆的條目。

如果你已經完成這些設定,但還是出現 canOpenURL (通常涉及 fbauth2)的錯誤,只要把你的 iPhone 模擬器關掉重開即可。

四、directory not found for option ‘-F/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/Developer/Library/Frameworks’ “

這個錯誤的解決方法也很簡單。打開 Test Target 的 Build Setting,找到 Framework Search Paths,把裡面的設定(應該是有兩項)刪除掉即可。

Xcode Framework Search Paths Error
Xcode Framework Search Paths Error

五、 FBSDKLoginKit:’UIActionSheet’ is deprecated.

從 iOS 8.3 開始,’UIActionSheet’ 就已經失效,但 FBSDKLoginKit 仍未更新。還好這只是一個 warning,並不影響執行,相信不用多久,Facebook 會修復這一個 Bug。

至此,我的應用已經能夠在 Xcode 7 裡正常運作。如果你有遇到其他的 bugs 或是有更好的解法,歡迎在回覆中與我分享。

2 Comments


Add a Comment

你的電子郵件位址並不會被公開。 必要欄位標記為 *

Comment *
Name *
Email *
Website

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料