@@ -4,8 +4,8 @@ Swift 6言語モードを有効化して、コードにデータ競合が発生
44
55| 原文| [ https://github.com/apple/swift-migration-guide/blob/main/Guide.docc/Swift6Mode.md ] ( https://github.com/apple/swift-migration-guide/blob/main/Guide.docc/Swift6Mode.md ) |
66| ---| ---|
7- | 更新日| 2024/8/3 (翻訳を最後に更新した日付)|
8- | ここまで反映| [ https://github.com/apple/swift-migration-guide/commit/19d63f2d91811b11f5cc832f72d4374ae4b83f1f ] ( https://github.com/apple/swift-migration-guide/commit/19d63f2d91811b11f5cc832f72d4374ae4b83f1f ) |
7+ | 更新日| 2024/10/7 (翻訳を最後に更新した日付)|
8+ | ここまで反映| [ https://github.com/apple/swift-migration-guide/commit/7ceaf9183065ce7dbe9a5ade1dc36b4df48796e0 ] ( https://github.com/apple/swift-migration-guide/commit/7ceaf9183065ce7dbe9a5ade1dc36b4df48796e0 ) |
99
1010## Swiftコンパイラを利用する
1111
@@ -29,8 +29,8 @@ Swiftパッケージマネージャー(SPM)のコマンドライン呼び出
2929### パッケージマニフェスト
3030
3131` swift-tools-version: 6.0 ` を使用する` Package.swift ` ファイルは、すべてのターゲットに対してSwift 6言語モードを有効にします。
32- 引き続き` Package ` の` swiftLanguageVersions ` プロパティを使用して、パッケージ全体の言語モードを設定できます。
33- さらに、新しい` swiftLanguageVersion ` ビルド設定を使用して、必要に応じてターゲットごとに言語モードを変更できるようにもなりました。
32+ 引き続き` Package ` の` swiftLanguageModes ` プロパティを使用して、パッケージ全体の言語モードを設定できます。
33+ さらに、新しい` swiftLanguageMode ` ビルド設定を使用して、必要に応じてターゲットごとに言語モードを変更できるようにもなりました。
3434
3535``` swift
3636// swift-tools-version: 6.0
@@ -41,7 +41,7 @@ let package = Package(
4141 // ...
4242 ],
4343 targets : [
44- // デフォルトのツール言語モードを利用する
44+ // デフォルトのツール言語モード(6)を利用する
4545 .target (
4646 name : " FullyMigrated" ,
4747 ),
@@ -56,6 +56,70 @@ let package = Package(
5656)
5757```
5858
59+ パッケージが以前のバージョンのSwiftツールチェーンをサポートし続けなければならず、ターゲットごとに` swiftLanguageMode ` を設定したい場合は、6以前のツールチェーンのためのバージョン固有のマニフェストを作成する必要があります。例えば、5.9以降のツールチェーンをサポートし続けたい場合、` Package@swift-5.9.swift ` を用意します:
60+ ``` swift
61+ // swift-tools-version: 5.9
62+
63+ let package = Package (
64+ name : " MyPackage" ,
65+ products : [
66+ // ...
67+ ],
68+ targets : [
69+ .target (
70+ name : " FullyMigrated" ,
71+ ),
72+ .target (
73+ name : " NotQuiteReadyYet" ,
74+ )
75+ ]
76+ )
77+ ```
78+
79+ そしてSwiftツールチェーン6.0以上のためのもう1つの` Package.swift ` を用意します:
80+ ``` swift
81+ // swift-tools-version: 6.0
82+
83+ let package = Package (
84+ name : " MyPackage" ,
85+ products : [
86+ // ...
87+ ],
88+ targets : [
89+ // デフォルトのツール言語モード(6)を利用する
90+ .target (
91+ name : " FullyMigrated" ,
92+ ),
93+ // まだSwift 5言語モードが必要
94+ .target (
95+ name : " NotQuiteReadyYet" ,
96+ swiftSettings : [
97+ .swiftLanguageMode (.v5 )
98+ ]
99+ )
100+ ]
101+ )
102+ ```
103+
104+ 一方、Swift 6言語モードを利用したいだけで、それが(より古いモードのサポートを維持しつつ)利用可能なら、単一の` Package.swift ` のまま互換性のある方法でバージョンを指定できます:
105+ ``` swift
106+ // swift-tools-version: 5.9
107+
108+ let package = Package (
109+ name : " MyPackage" ,
110+ products : [
111+ // ...
112+ ],
113+ targets : [
114+ .target (
115+ name : " FullyMigrated" ,
116+ ),
117+ ],
118+ // 6.0以前のswift-tools-versionをサポートするための`swiftLanguageVersions`と`.version("6")`
119+ swiftLanguageVersions : [.version (" 6" ), .v5 ]
120+ )
121+ ```
122+
59123## Xcodeを利用する
60124
61125### ビルド設定
0 commit comments