アプリの動作環境や、対応OSバージョンに制限があるライブラリ(フレームワーク)等の要件から、時には古いバージョンのXcodeを使用せざるを得ない状況も生じます。
そうした旧バージョンのXcodeを利用する際、どのSwiftの言語バージョンに対応しているのか、気になったため調査を行いました。
Swiftのバージョン互換性について
Swiftは4未満では破壊的なアップデートなどもあり、コード間に互換性がありませんでした。ABIの安定化も初期の頃はなかったので、異なったバージョンをターゲットにしたフレームワークを使用することが出来ないこともありました。
しかし、現在(記事執筆時点)では、状況は大きく変わりました。Swift 4以降では、異なる言語バージョンをターゲットとするフレームワークを組み合わせて利用することが可能になっています。
ただし、いくつかの機能については、古いバージョンのSwiftでは利用できません。
コンカレンシーについて
コンカレンシーの利用には、Swift 5.5以降、および、コンカレンシーのタイプに対応したSwift標準ライブラリーが必要となります。そのため、アップルプラットフォームでは、デプロイメントターゲットの設定を以下の値以上にしなければ利用できません。
OS | Deployment Target |
---|---|
iOS | 13 |
macOS | 10.15 |
tvOS | 13 |
watchOS | 6.0 |
Xcodeの動作環境
Xcodeのバージョン別の動作環境については、次のページにまとめています。
Swift 6.x
Swift 6.xに対応しているXcodeのバージョンは次のようになっていました。
Swiftのバージョン | Xcodeのバージョン |
---|---|
6 | Xcode 16 |
Swift 5.x
Swift 5.xに対応しているXcodeのバージョンは次のようになっていました。
Swiftのバージョン | Xcodeのバージョン |
---|---|
5.10 | Xcode 15.3 |
5.9 | Xcode 15 |
5.8.1 | Xcode 14.3.1 |
5.8 | Xcode 14.3 |
5.7 | Xcode 14 |
5.6 | Xcode 13.3 |
5.5 | Xcode 13.0 |
5.4 | Xcode 12.5 |
5.3 | Xcode 12.0 |
5.2 | Xcode 11.4 |
5.1 | Xcode 11.2 |
5.0 | Xcode 10.2 |
Xcode 10.2が登場したのはmacOS Mojave 10.4の頃です。Swift 5.xが長い時間をかけて進歩して行っていることが実感できます。
Swift 4.x
Swift 4.xに対応しているXcodeのバージョンは次のようになっていました。
Swiftのバージョン | Xcodeのバージョン |
---|---|
4.2 | Xcode 10.0 |
4.1 | Xcode 9.3 |
4.0 | Xcode 9.0 |
Swift 3.x
Swift 3.xに対応しているXcodeのバージョンは次のようになっていました。
Swiftのバージョン | Xcodeのバージョン |
---|---|
3.1 | Xcode 8.3 |
3.0 | Xcode 8.0 |
Swift 2.x
Swift 2.xに対応しているXcodeのバージョンは次のようになっていました。
Swiftのバージョン | Xcodeのバージョン |
---|---|
2.2 | Xcode 7.3 |
2.1 | Xcode 7.1 |
2.0 | Xcode 7.0 |
Swift 1.x
Swift 1.xに対応しているXcodeのバージョンは次のようになっていました。
Swiftのバージョン | Xcodeのバージョン |
---|---|
1.2 | Xcode 6.3 |
1.1 | Xcode 6.1.1 |
1.0 | Xcode 6.0 |