2017-03-02 125 views
1

我有一個在xcode 7中使用swift 2開始的項目。我現在在xcode 8中使用swift 2.3。當我嘗試遷移到pro 3時,出現了幾個錯誤,沒有項目。無論是從圖書館和我的代碼。首先我更新我的豆莢,然後做一個項目的自動轉換。我的疑惑是: 如果一些圖書館可能會導致錯誤,我可以解鎖它並轉換? 在開始對話之前我需要準備些什麼嗎?在我閱讀的文章中,我沒有提到其他任何事情。 如果您繼續使用swift 2.3,您是否會遇到任何問題?swift 2.3 swift 3.0

該應用程序非常大,什麼是最好的選擇?

+1

我們最近經歷了這樣的轉換。至少可以說是可怕的。我們遵循混合的方法來完成它。自動轉換,手動代碼更改,錯誤修復和大量測試。 – humblePilgrim

+2

Mozilla最近完成了:https://mozilla-mobile.github.io/ios/firefox/swift/core/2017/02/22/migrating-to-swift-3.0.html 簡而言之,它可能長而複雜。 Swift 4應該允許「舊的Swift代碼」,但我強烈建議至少使用Swift 3,至於未來的版本。先檢查一下你的所有依賴關係(例如,pod有一個Swift 3版本)。 – Larme

+0

這是一個好主意,有一個項目的副本。我已經使用這個選項來轉換一個相對較小的應用程序,我需要一個小時來修復所有的錯誤(許多人可以選擇自動修復它們) – i6x86

回答

9

老實說?任何使用Swift構建的項目自2014年以來都應該通過了解代碼分解爲新版本通過Swift 3.X. (我一點也不關鍵,只是實際。)今年,Swift 4.X正在努力不要打破Swift 3.X代碼。

因此,既然出發點,這是我的想法:

  • 1拍攝工作斯威夫特2.X應用程序的備份和歸檔。備份備份。
  • 2接受應該有在3.X之前使用任何版本時已知的價格 - 轉換將是痛苦和費時。
  • 3儘可能地,不要使用第三方添加。它們會增加遷移到最新版本的複雜性。
  • 4請考慮等待斯威夫特4.我不是推薦這個,但是說​​着考慮一下大局。但永遠記得最終你必須端口的東西。 (好消息是Swift 3似乎足夠穩定,說未來的升級不會(至少)是痛苦的)
  • 5考慮遷移一切一次(如果你有那個金色備份在幾個地方複製, )是的,有許多方法可以將個別項目,文件等從2.X遷移到3.X - 和4.X(以及可能的Xcode 9),使事情變得更容易。但是只有如果你是從3.X開始的
  • 6 Regards to Swift 2.3 ...最新版本的Xcode不會編譯/編譯Swift 2.3。以此爲標誌 - 有一天它將不再被App Store接受。那一天可能要2-3年(或不是),但它差不多是2年的,因爲 ABI和版本兼容性的承諾是針對Swift 3.0的。順便說一句,只有後者發生。

歡迎來到一個快速發展的語言世界!

編輯:問候點#3(避免第三方加載項如果可能的話),我發現兩個環節表達的問題,可以拿出:

Analyzing Third Party Libraries

Avoiding Third Party UI Libraries

+3

我傾向於在「最壞的計劃,最好的希望」方式中回答。我的應用程序沒有問題 - 但我有三個好處。 (1)我從Swift/Xcode的最早測試版開始。儘管整個過程中都有問題和變化,但我從第1天開始準備就緒。(2)我最不擅長的領域涉及到CoreImage內核,而且我有一位出色的源代碼,他*還*就需要什麼進行了博客。但最重要的是 - 我試着在我的回答中強調這一點 - 我有意識地決定在不可能的情況下使用任何第三方代碼。我知道這在其他地方並不實用,但這是恕我直言的最棘手的事情。 – dfd

+0

應該只是堅持obj c – YaBoiSandeep