概要
久しぶりに SpriteKit アプリを Xcode で開いたら Swift3.0 のサポートが終了しておりビルドできなかったので Swift4.2 にコンバートしビルドできるようにしました
その時のメモです
環境によってエラー内容等、異なるので参考程度に御覧ください
環境
- macOS 10.14.5
- Xcode 10.3
- Swift 3.0 to 4.2
コンパイラのバージョンを 4.2 にする
まず以下のようなエラーが発生しました
SWIFT_VERSION
が 3.0 はもうサポートしていないというエラーです
プロジェクトの設定から「Build Settings」で「Swift Language Version」 を 4.2 にしましょう
テストのプロジェクトがある場合はそれらの「Build Settings」も変更しましょう
最終的にはプロジェクト配下で git grep 'SWIFT_VERSION'
を実行し 3.0 がなければ OK です
pod update
各種ライブラリが古いと Swift3.0 になっている場合があるのでライブラリをアップデートしましょう
pod update
YouTubePlayer のインストール
これはおそらく今回のコンバートとは関係ないと思います
が対応する箇所があったので紹介します
「No such module YouTubePlayer」が出た場合は単純にライブラリを追加すれば OK です
vim Podfile
pod 'YouTubePlayer'
pod install
インストール後ビルドすると 'UIWebViewNavigationType' has been renamed to 'UIWebView.NavigationType'
というエラーが出るのでライブラリを unlock して fix すれば OK です
Realm のフィールドに @objc を付与
AVAudioSession のフィールド参照方法を修正
これも Xcode の言う通り fix していけば OK です
'AVAudioSessionCategoryAmbient' has been renamed to 'AVAudioSession.Category.ambient'
-> fix'AVAudioSessionCategorySoloAmbient' has been renamed to 'AVAudioSession.Category.soloAmbient'
-> fix
UIApplication のフィールド参照方法を修正
fix で OK です
The Google Mobile Ads SDK was initialized without an application ID
Info.plist に GADIsAdManagerApp
-> YES
を追加すれば OK です (参考)
最後に
基本は Xcode の指示に従えば文法は修正できます
ライブラリ関連のエラーは unlock するかライブラリ側の修正を待つかプルリクエストを送りましょう
最新のライブラリのドキュメントを読むこともおすすめです
あとはトライアンドエラーで解決していくしかないかなと思います
0 件のコメント:
コメントを投稿