簡體   English   中英

如何使用 XCode 12.4 從 Swift 3 遷移?

[英]How do I migrate from Swift 3 using XCode 12.4?

我已經搜索過類似的問題,但我找不到任何人描述這樣的事情......

Swift項目三年沒看,剛打開。 它在 Swift 3。

當我打開 XCode 時,它自動安裝了一些更新,現在是 XCode 12.4(我不知道之前是什么)。

我知道我必須至少將我的代碼遷移到 Swift 4,因為不再支持 Swift 3。

我做的第一件事是 go 編輯...轉換...到當前 Swift 語法。 但是我得到了“沒有選擇目標”的錯誤,它不會讓我 select 成為目標。 我在網上找到建議更改Swift語言版本。 我通過 Build Settings 執行此操作,那里有一個下拉菜單,我選擇了 Swift 4.0(以前是 3.0)。 這允許我將 select 作為轉換目標,但隨后我收到錯誤消息,指出轉換失敗,並且“請確保所有選定的目標在嘗試遷移之前使用當前配置的 Swift 版本成功構建。”

我看到的建議是,我應該首先確保在嘗試遷移之前可以構建代碼。 但我無法構建它,因為我收到錯誤消息“SWIFT_VERSION '3.0' 不受支持,支持的版本為:4.0、4.2、5.0。”

我似乎進退兩難:我無法將代碼轉換為 Swift 4,因為它無法構建,但我無法構建它,因為它不是 Swift 4!

我需要以某種方式獲取 XCode 的舊版本,還是有其他解決方案?

順便說一下,我現在無法將構建設置中的 Swift 語言版本改回 3.0,因為該選項不在下拉列表中。

啊哈,我找到了解決辦法。

我通過這個問題找到了它。

事實證明,我需要將 go 放入MyProjectName.xcodeproj/project.pbxproj並將對SWIFT_VERSION的所有引用從 3.0 更改為 4.0。

我通過vim MyProjectName.xcodeproj/project.pbxproj做到了這一點,然后在 Vim 中我使用了:%s/SWIFT_VERSION = 3.0/SWIFT_VERSION = 4.0/g

在我這樣做之后,轉換工作將它從 4.0 轉換為 5.0。 事實上,除了AppDelegate.swift中非常小的語法更改外,似乎幾乎不需要任何更改,這次工具本身進行了我之前所做的等效更改 - 即在project.pbxproj SWIFT_VERSION從 4.0 更改為 5.0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM