旧バージョンのxcodeを使うときに考慮すべきことまとめ

最新のxcodeを使えなくて、実際にアプリ開発で困ったこととその対策をまとめておく

最新のiOSiPhoneXcodeからアプリをインストールできない

iPhoneiOSのバージョンアップを基本的に自動更新にしている人が多いと思うが、xcodeのバージョンは古いままだとxcodeからiPhoneにアプリをインストールできなくなる。その際に必要となるのが以下の記事の作業。Xcodeに含まれていないiOS Devise Supportファイルを手動で入れる作業が必要でその手順が以下に書かれている

kan-kikuchi.hatenablog.com

旧バージョンのSwiftが使用できない

今回実際に困った例ではXcode10.1から10.2へのアップデートでSwiftのバージョンが4.2から5に変わっていたため。プロジェクトでCarthageを使用していてCarthageのコマンドでビルドしたライブラリはSwift5でビルドされる。しかしアプリはSwift4.2で開発したためSwift4.2でビルドしようとするとCarthageでビルドしたものとバージョンが異なるためビルドに失敗する。その際に必要となるのが以下の記事の作業。Xcodeコマンドラインツールのバージョンを切り替える必要があり、その手順が以下に書かれている

sutepulu.com

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をダウンロードして使う。以下の記事に手順が書かれてる

qiita.com

qiita.com

今回はCircleCIでビルドしたアプリをAppStoreConnectへアップロードしたかったため、最新のSDKとversion.plistをgitに登録して、fastlaneのgymでビルドする際にsdkを指定する形で対応した

gym(
  ・・・
  sdk: 'iOS 12.2',
  ・・・
)

【追記】
古いバージョンのXcodeSDKだけ最新にしてもアプリ審査でリジェクトになる場合がある。やはりXcodeのバージョンはどこかのタイミングであげないとダメみたいです。

そんなことより早くxcodeのバージョンあげれるようにしないと...以上です