Swift 5.0 日本語化計画 : Swift 5.0

Swift 4.2 への移行


Xcode 10.0 には、プロジェクトを Swift 4.2 に移行するのに役立つ Swift 移行ツールが付属しています。


以前のリリースの移行ガイドについては、Swift 4 への移行 を参照してください。


移行前の準備


移行しようとするプロジェクトが Swift 3 または Swift 4 モードで正常にビルドされ、すべてのテストに合格していることを確認します。最初はコンパイラの変更によるエラーを解決する必要があります。


プロジェクトをソース制御下で管理することを強くお勧めします。これにより、移行アシスタントによって適用された変更を簡単に確認し、破棄して必要に応じて移行を再試行することができます。


プロジェクトへの意味があるときにターゲットごとに移行するかどうか、また時期を決定します。Swift 4.2 への移行は間違いなく推奨されていますが、Swift 3、4、および 4.2 のターゲットは共存して共にリンクできるため、すべてのプロセスを移行するか否かではありません。


移行アシスタントは、選択したスキームを使用して変更を収集するために、移行ビルド を実行します。処理されるターゲットは、スキームに含まれているものです。スキームに含まれている内容を確認して変更するには、「(Edit Scheme) スキームの編集...」 シートを呼び出し、左側の列から 「(Build) ビルド」 タブを選択して、すべてのターゲットと単体テストが含まれていることを確認します。


プロジェクトが Carthage または CocoaPods によって提供される他のオープンソースプロジェクトに依存する場合は、Carthage/CocoaPods プロジェクトの使用 セクションを参照してください。


Swift 移行アシスタント


初めて Xcode 10 でプロジェクトを開くと、Issue Navigator に移行機会が表示されます。クリックすると、移行するかどうかを尋ねるシートが表示されます。後で思い出したり、または、メニューから[(Edit) 編集] -> [(Convert) 変換] -> [(To Current Swift Syntax) 現在の Swift 構文へ] を選択すると、(Migrator) 移行ツールを手動で呼び出すことができます。


移行するターゲットのリストが表示されます。Swift コードを含まないターゲットは選択されません。


選択したすべてのターゲットが Swift 4 モードになっている場合は、1 つの移行ワークフローしかありませんが、Swift 3 のターゲットでは、2 種類の @objc inference (推論) が選択できます。


これら 2 つの選択肢の詳細と意味については、Xcode のヘルプ記事 Swift 4 @objc 推論への移行 を参照してください。


[(Next) 次へ] をクリックすると [(Generate Preview) プレビュー生成] シートが表示され、アシスタントはソースの変更を取得するために 移行ビルド を開始します。これが完了して「(Save) 保存」 をクリックすると適用されるすべての変更が表示されます。これにより、Swift 言語バージョン ビルド設定も Swift 4.2 に変更されます。


移行プロセスに悪影響を与えるターゲットの処理に問題がある場合があります。(Report Navigator) レポートナビゲータ に切り替えて、追加されたエントリの (Convert) 変換 を選択します。これは変換ビルドログです。ログに表示されるエラーを確認します。


ターゲットにコード署名できないというエラーが表示された場合は、ターゲットのビルド設定からコード署名を無効にしてみてください。他のエラーが表示された場合は、バグレポートを提出 して詳細を記入してください。可能であれば、問題のある移行を示すプロジェクトを添付することを強くお勧めします。


Swift 4.2 移行の変更の概要


(Migrator) 移行ツールが提案する変更の大部分は、以前の SDK と現在の SDK の比較によって生成されたデータからもたらされ、これにより、例えば ID や型の名前が変更される可能性があります。通常のコンパイラから修正されています (compiler fix-its)


最も一般的な SDK の変更点は、グローバル定数を静的型プロパティに移動し、文字列定数を Swift 列挙型 case に変換したことです。これらは移行ツールによって自動的に処理されます。


Swift 3 コードから移行する場合は、去年の Swift 4 への移行 からの移行ツールの移行変更の概要もご覧ください。


移行後


移行ツールは多くの機械的な変更の面倒を見ますが、移行ツールの変更を適用した後にプロジェクトをビルドするには、手動でさらに変更する必要があります。


関連する修正があるコンパイラエラーが表示されることがあります。移行ツールは Swift 4 コンパイラが提供する修正を組み込むように設計されていますが、100% 適用されない場合は修正が適用されないことがあります。


たとえうまくコンパイルできても、移行ツールが提供したコードは理想的ではないかもしれません。あなたの最善の判断で、変更があなたのプロジェクトに適していることを確認してください。


プロジェクトの移行中に発生する可能性がある問題のリストについては、移行の既知の問題 セクションを参照してください。


移行の既知の問題


SDK


その他


Carthage/CocoaPods プロジェクトの使用


Carthage、CocoaPods、Swift パッケージマネージャ などのパッケージマネージャを使用して、外部依存関係を持つプロジェクトを移行する際に考慮すべき重要な点をいくつか示します。


その他






目次
目次
Xcode 10 の新機能

SwiftLogo
  • Swift 5.0 全メニュー

  • Swift プログラム言語

  • Swift について
  • Swift 4.2 への移行
  • 移行前の準備
    Swift 移行アシスタント
    Swift 4.2 移行の変更の概要
    移行後
    移行の既知の問題
    Carthage/CocoaPods プロジェクトの使用
    その他

  • Swift のダウンロード

  • Swift 入門

  • 文書化

  • ソースコード

  • コミュニティガイドライン

  • 投稿

  • Swift の継続的統合

  • Swift ソースの互換性

  • フォーカスエリア

  • ABI の安定性

  • サーバーワークグループ

  • コンパイラと標準ライブラリ

  • プロジェクト

  • パッケージマネージャ

  • Swift コアライブラリ

  • REPL とデバッガ、プレイグラウンド













  • トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)