Lesstep
GitHub Actions・macOS・2026年11月5日に確認

macos-15 と macos-26 で xcrun simctl list に何分もかかる:最初の呼び出しは simdiskimaged がシミュレーターのランタイムをマウントし、中を歩き終わるまで待つ

GitHub のホストの macos-15 と macos-26 のランナー(Apple Silicon)では、ジョブで最初の xcrun simctl が simdiskimaged を起動し、それがシミュレーターのランタイムのイメージをマウントします。多くの VM では、残りをマウントする前に1つ(ときに2つか3つ)のランタイムのファイルの木を全部たどり、コマンドはそれを待ちます。そのため最初の xcrun simctl list -j devices は最大2.5分かかり、2回目からは2.5秒もかかりません(runner-images #15247・イメージごとに30ジョブで測った報告)。イメージの担当者は調べると答えています。

見え方

それだけでは何も落ちず、最初のシミュレーターのステップが遅いだけです。落ちるのは、その呼び出しのまわりに短い時間の制限があるときです。あるプロジェクトのセットアップのスクリプトは xcrun simctl list devices --json に30秒しか与えておらず、ホストの macOS のランナーではときどき切れます(OpenCine #111):

TimeoutExpired(['xcrun', 'simctl', 'list', 'devices', '--json'], 30)

そのスクリプトを使うシミュレーターのテストは、どれも何もテストしないうちに落ちえました。シミュレーターを並べたり起動したりするテストランナーやビルドのツールも同じ最初の呼び出しをするので、待ちがそれらのタイムアウトの中に入ることもあります。自分のジョブで見るには、2回続けて時間を測ります:

- run: time xcrun simctl list -j devices > /dev/null
- run: time xcrun simctl list -j devices > /dev/null

測った数字

報告から(1行あたり30ジョブ・3コア 7 GB のランナー):

つまり、Xcode 16 と Xcode 26 のリリースが入れる CoreSimulator 1051 で起きます。どのランタイムをたどるかは VM ごとに違い、iOS・tvOS・watchOS・visionOS のどれも出てきます。Intel のイメージは試されていません。

効かないこと

テストのタイムアウトに入れない

見分け方

失敗したジョブを IntelliJ IDEA から見るなら

Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を、ジョブ・ステップと一緒に IDE のツールウィンドウに並べるので、シミュレーターを待って時間切れになったステップがすぐ分かり、いまのブランチの実行はステータスバーに出ます。読むのは無料、失敗したジョブの再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日の無料試用つき)です。

JetBrains Marketplace で入れる

GitHub と GitHub Actions は GitHub, Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標、Apple・Xcode・macOS は Apple Inc. の商標です。このページはそのいずれとも提携しておらず、承認も受けていません。

ほかに:xcode-27 のランナー · macOS 14 の終わり · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English