カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

Xcode 9 アップデートの対応

この記事は最終更新日から1年以上経過しています。

Xcode 9 Swift 4がリリースされたので、アップデートしてみました。
その際のマイグレーションについて参考になるかは分かりませんが、
私が開発しているアプリでの作業をメモしておきます。

今回のアプリはGoogleMapsとRealm、SVProgressHUDを使用したアプリですので
そのAPIパッケージもアップグレードする必要があります。

ターミナルでプロジェクトのディレクトリに移動します。

cd <path-to-project>

pod updateを実行します。

pod update

インストールしていたAPIがアップグレードされます。
iOSのターゲットを9.0としていたため、エラーが解消されなかったのでターゲットを10.0に変更しました。

Xcodeでプロジェクトを開くと色々と警告が表示されていました。

ビルドしてももちろん通らないので、修正をしていきます。

まずはPods project > Validate Project Settings > Update to recommended settingsをクリックします。
すると次のような画面が表示されると思いますので、[Perform Chenges]をクリックします。

処理が終了し、ひとまずビルドしてみるとSucceeded。Realmのエラーが消えました。

まだ警告が出ていますので、○○ project > Validate Project Settings > Update to recommended settingsをクリックします。

先ほどと同じような画面が表示されますので、同じく[Perform Chenges]をクリックします。

これでまた1つ警告が消えました。

まだSwift 4の警告が出ていますが、ひとまずビルドして端末にインストールできるようになりました。

Swift 4について、特にAPIを使用しないアプリであれば、コンバートするだけで移行が完了するようです。
○○ project > Swift Conversion > Conversion to Swift 4 is availableをクリックします。

Select targets to convert:というウィンドウが表示されます。
コンバートが必要なものに自動でチェックが入っているようなので、そのまま[Next]をクリックします。

次にSwift 4 @obj inference:というオプションを聞いてきますので、推奨されているMinimize Inferenceを選択したまま[Next]をクリックします。

次に書き換えられる内容が表示されますので、確認して[Save]をクリックします。

これでコンバートは完了ですが、ビルドするとDependency Analysis Warningが発生します。
解決するにはビルドセッティングの[Swift Compiler – Code Generation]-[Swift 3 @obj inference]のところを「Default」に変更します。
これでビルドが通るようになります。

Xcode: 9.0
Swift: 3.1
OS: Sierra 10.12

この記事がお役に立ちましたらシェアお願いします
3,423 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です