旧バージョンのxcodeを使うときに考慮すべきことまとめ
最新のxcodeを使えなくて、実際にアプリ開発で困ったこととその対策をまとめておく
最新のiOSのiPhoneにXcodeからアプリをインストールできない
iPhoneのiOSのバージョンアップを基本的に自動更新にしている人が多いと思うが、xcodeのバージョンは古いままだとxcodeからiPhoneにアプリをインストールできなくなる。その際に必要となるのが以下の記事の作業。Xcodeに含まれていないiOS Devise Supportファイルを手動で入れる作業が必要でその手順が以下に書かれている
旧バージョンのSwiftが使用できない
今回実際に困った例ではXcode10.1から10.2へのアップデートでSwiftのバージョンが4.2から5に変わっていたため。プロジェクトでCarthageを使用していてCarthageのコマンドでビルドしたライブラリはSwift5でビルドされる。しかしアプリはSwift4.2で開発したためSwift4.2でビルドしようとするとCarthageでビルドしたものとバージョンが異なるためビルドに失敗する。その際に必要となるのが以下の記事の作業。Xcodeのコマンドラインツールのバージョンを切り替える必要があり、その手順が以下に書かれている
swiftenvとかのツールもあるのでそれらを使うとそれでも解決するのかもしれないが今回は試していない
AppStoreConnectにアプリをアップロードできない
アップロードする際に以下のようなエラーが発生
ERROR ITMS-90725: "SDK Version Issue. This app was built with the iOS 12.0 SDK. All iOS apps submitted to the App Store must be built with the iOS 11 SDK or later, included in Xcode 9 or later. Further, starting March 2019, all iOS apps submitted to the App Store must be built with the iOS 12.1 SDK or later, included in Xcode 10.1 or later."
iOS12.1 SDK以上を使ってビルドしたものをアップロードしろいう内容。もちろんxcodeのバージョンが新しければ内包されているSDKも新しいのでこのようなエラーは発生しない。対策としては最新のiOSバージョンのSDKをダウンロードして使う。以下の記事に手順が書かれてる
今回はCircleCIでビルドしたアプリをAppStoreConnectへアップロードしたかったため、最新のSDKとversion.plistをgitに登録して、fastlaneのgymでビルドする際にsdkを指定する形で対応した
gym( ・・・ sdk: 'iOS 12.2', ・・・ )
【追記】
古いバージョンのXcodeでSDKだけ最新にしてもアプリ審査でリジェクトになる場合がある。やはりXcodeのバージョンはどこかのタイミングであげないとダメみたいです。
そんなことより早くxcodeのバージョンあげれるようにしないと...以上です