GitHubActionsのmacOSイメージでXcodeのバージョンを指定してビルドする

どんな問題があったか

アプリをAppStoreへアップロードするため、GitHubActionsでビルドのためのワークフローを動かした。しかし、アーカイブジョブのステップで、以下のエラーが出てしまった。

error: exportArchive: Validation failed. SDK version issue.
This app was built with the iOS 17.5 SDK. All iOS and iPadOS apps must be built with the iOS 18 SDK or later, included in Xcode 16 or later, in order to be uploaded to App Store Connect or submitted for distribution.

Xcode16以上でビルドする必要があるというバリデーションで失敗していた。

原因

今までiOSビルドのためのイメージはruns-on: macos-latestで指定しており、Xcodeのバージョンには手をつけていなかった。 これまでiOSビルドにはruns-on: macos-latestを指定しているだけで、Xcodeのバージョンは特に意識していなかった。

公式のイメージ用リポジトリを確認すると、2025年5月5日時点でmacos-latestが使用するイメージはmacOS-14-arm64

さらにこのイメージに含まれるソフトウェアを確認したところ、Xcode16が含まれているものの、デフォルトではXcode15.4が使用されているようだ。

解決方法

Xcode16はイメージに含まれているので、使用するXcodeのバージョンを明示的に指定してやれば今回の問題は解決できる。以下のように指定して対応した。

runs-on: macos-latest
steps:
  - name: Set Xcode version
    run: sudo xcode-select -s /Applications/Xcode_16.2.app

これでワークフロー内でXcode16.2を使用でき、無事にアーカイブしてAppStoreにビルドをアップロードすることができた。

おわり

明示的に指定することでエラーは解消できたものの、再びAppStore側で要求するXcodeの最低バージョンが変わったら再び対応する必要がある。

公式のイメージ側のデフォルトのXcodeバージョンが良い感じに更新してくれれば良いのだが、何か良い方法はないだろうか。

Next

GitHubActionsで実行中のワークフローをキャンセルして最新のみを実行する方法

PR

関連記事