本文へスキップ

Xcode Cloud の環境変数を全フェーズと Run Script Build Phase で確認する

📋目次

概要

前提として、検証対象は iOS アプリです。macOS アプリの場合は Developer ID 署名関連の変数など、一部の結果が異なります。

Xcode Cloud の Environment variable reference に載っている環境変数を、ci_post_clone.sh ci_pre_xcodebuild.sh ci_post_xcodebuild.sh の 3 フェーズと、Xcode プロジェクトに追加した Run Script Build Phase から出力し、ビルド・アーカイブ・テスト・分析の 4 アクションで実際の値を比較しました。

環境変数一覧

環境変数ビルドアーカイブテスト分析
CITRUETRUETRUETRUE
CI_XCODE_CLOUDTRUETRUETRUETRUE
CI_BUILD_ID<UUID><UUID><UUID><UUID>
CI_BUILD_NUMBER<ビルド番号><ビルド番号><ビルド番号><ビルド番号>
CI_BUILD_URLhttps://appstoreconnect.apple.com/teams/<TeamID>/apps/<APP_ID>/ci/builds/<UUID>https://appstoreconnect.apple.com/teams/<TeamID>/apps/<APP_ID>/ci/builds/<UUID>https://appstoreconnect.apple.com/teams/<TeamID>/apps/<APP_ID>/ci/builds/<UUID>https://appstoreconnect.apple.com/teams/<TeamID>/apps/<APP_ID>/ci/builds/<UUID>
CI_BUNDLE_ID<BundleID><BundleID><BundleID><BundleID>
CI_COMMIT<commit-sha><commit-sha><commit-sha><commit-sha>
CI_DERIVED_DATA_PATH/Volumes/workspace/DerivedData/Volumes/workspace/DerivedData/Volumes/workspace/DerivedData/Volumes/workspace/DerivedData
CI_PRIMARY_REPOSITORY_PATH/Volumes/workspace/repository/Volumes/workspace/repository/Volumes/workspace/repository(test-without-building フェーズでは未設定)/Volumes/workspace/repository
CI_PRODUCT<ProductName><ProductName><ProductName><ProductName>
CI_PRODUCT_ID<UUID><UUID><UUID><UUID>
CI_PRODUCT_PLATFORMiOSiOSiOSiOS
CI_PROJECT_FILE_PATH/Volumes/workspace/repository/<ProjectName>.xcodeproj/Volumes/workspace/repository/<ProjectName>.xcodeproj/Volumes/workspace/repository/<ProjectName>.xcodeproj/Volumes/workspace/repository/<ProjectName>.xcodeproj
CI_START_CONDITIONpr_updatepr_update--
CI_TEAM_ID<TeamID><TeamID><TeamID><TeamID>
CI_WORKFLOW<WorkflowName><WorkflowName><WorkflowName><WorkflowName>
CI_WORKFLOW_ID<UUID><UUID><UUID><UUID>
CI_WORKSPACE_PATH/Volumes/workspace/Volumes/workspace/Volumes/workspace/Volumes/workspace
CI_XCODE_PROJECT<ProjectName>.xcodeproj<ProjectName>.xcodeproj<ProjectName>.xcodeproj<ProjectName>.xcodeproj
CI_XCODE_SCHEME<SchemeName><SchemeName><SchemeName><SchemeName>
CI_XCODEBUILD_ACTIONbuildarchivebuild-for-testing → test-without-buildinganalyze
CI_XCODEBUILD_EXIT_CODE未設定(ci_post_xcodebuild.sh でのみ 0)未設定(ci_post_xcodebuild.sh でのみ 0)未設定(ci_post_xcodebuild.sh でのみ 0)未設定(ci_post_xcodebuild.sh でのみ 0)
HTTP_PROXY未設定未設定未設定未設定
HTTPS_PROXY未設定未設定未設定未設定
CI_BRANCH<ブランチ名><ブランチ名><ブランチ名><ブランチ名>
CI_TAG未設定(タグトリガー時のみ設定)未設定(タグトリガー時のみ設定)未設定(タグトリガー時のみ設定)未設定(タグトリガー時のみ設定)
CI_GIT_REFrefs/heads/<ブランチ名>(タグトリガー時は refs/tags/<タグ名>refs/heads/<ブランチ名>(タグトリガー時は refs/tags/<タグ名>refs/heads/<ブランチ名>(タグトリガー時は refs/tags/<タグ名>refs/heads/<ブランチ名>(タグトリガー時は refs/tags/<タグ名>
CI_PULL_REQUEST_HTML_URLhttps://github.com/<owner>/<repo>/pull/<number>https://github.com/<owner>/<repo>/pull/<number>--
CI_PULL_REQUEST_NUMBER<number><number>--
CI_PULL_REQUEST_SOURCE_BRANCH<ブランチ名><ブランチ名>--
CI_PULL_REQUEST_SOURCE_COMMIT<commit-sha><commit-sha>--
CI_PULL_REQUEST_SOURCE_REPO<owner>/<repo><owner>/<repo>--
CI_PULL_REQUEST_TARGET_BRANCH<ブランチ名><ブランチ名>--
CI_PULL_REQUEST_TARGET_COMMIT<commit-sha><commit-sha>--
CI_PULL_REQUEST_TARGET_REPO<owner>/<repo><owner>/<repo>--
CI_RESULT_BUNDLE_PATH/Volumes/workspace/resultbundle.xcresult/Volumes/workspace/resultbundle.xcresult/Volumes/workspace/resultbundle.xcresult/Volumes/workspace/resultbundle.xcresult
CI_TEST_DESTINATION_DEVICE_TYPE未設定未設定iPhone 17 Pro(test-without-building フェーズでのみ)未設定
CI_TEST_DESTINATION_RUNTIME未設定未設定iOS 26.5(test-without-building フェーズでのみ)未設定
CI_TEST_DESTINATION_UDID未設定未設定<UUID>test-without-building フェーズでのみ)未設定
CI_TEST_PLAN未設定未設定<TestPlanName>test-without-building フェーズでのみ)未設定
CI_TEST_PRODUCTS_PATH未設定未設定/Volumes/workspace/TestProducts.xctestproducts(build-for-testing 以降)未設定
CI_AD_HOC_SIGNED_APP_PATH未設定/Volumes/workspace/adhocexport未設定未設定
CI_APP_STORE_SIGNED_APP_PATH未設定/Volumes/workspace/appstoreexport未設定未設定
CI_ARCHIVE_PATH未設定/Volumes/workspace/build.xcarchive未設定未設定
CI_DEVELOPMENT_SIGNED_APP_PATH未設定/Volumes/workspace/developmentexport未設定未設定
CI_DEVELOPER_ID_SIGNED_APP_PATH未設定(macOS 専用のため iOS では常に未設定)未設定未設定未設定

CI_XCODEBUILD_EXIT_CODE は xcodebuild コマンドの終了コードで、コマンド完了後に呼ばれる ci_post_xcodebuild.sh の時点で確定するのかなと思います。それを除き、ci_post_clone.sh ci_pre_xcodebuild.sh Run Script Build Phase ci_post_xcodebuild.sh のどのステップでも同じ値が取得できたため、ステップの違いは表から省いています。- は Pull Request トリガーでのみ値が入るため、手動実行で検証したテスト・分析では対象外としたことを示します。

まとめ

Xcode Cloud の環境変数がどのアクション・どのタイミングで見えるか迷ったら、参考にしてみてください。

参考リンク

この記事をシェア