Xcodebuild
Overview
xcodebuild についてまとめているセクション。
xcrun と xcodebuild の違い
xcodebuildは Xcode のプロジェクトやワークスペースを使って、ビルド、アーカイブ、テスト、エクスポートなどを行うための CLI ツール。- 例:
xcodebuild -workspace MyApp.xcworkspace -scheme MyApp -archivePath ... archive - 主に **ビルド・アーカイブ・エクスポートなど「Xcodeプロジェクト操作」**に使う。
- 例:
xcrunは Xcode に付属するコマンド群(例:simctl,iTMSTransporter,notarytoolなど)を呼び出すためのランチャー的な CLI ツール。- 例:
xcrun iTMSTransporter -m upload -f build/ios/ipa/client.ipa -u $APPLE_ID -p $APP_SPECIFIC_PASSWORD - App Store Connect へのアップロード、シミュレータ制御、notarization など周辺機能を呼び出す役割がある。
- 例:
TestFlight Internal Only
- WWDC 2023で発表された新機能
- Xcode 15以降限定で利用可能
- アップロードしたビルドを「内部テストーのみに配布」できるようにする設定
メリット
-
App Store 誤配信のリスクを防げる
- App Store 配信候補にならないため、誤って審査や本番申請につながる心配がない。
-
社内・内部テスターのみに限定配布できる
- 意図しない外部テスターやユーザーに配信されることを防げる。
-
審査不要・即時配信
- 外部テストと違い Apple の審査が不要。アップロード後すぐに配布が可能。
-
CI/CDでの安全なビルド運用
- distributionDestination に
internalを指定することで、CIでも明示的に社内向けビルドとして扱える。
- distributionDestination に
-
🧩 ステージングや段階的なビルド管理がしやすい
開発用・検証用・リリース候補とビルドの用途を明確に区分できる。
従来のTestFlightの課題
TestFlight にアップロードしたビルドはすべてに使える汎用的なビルドであり、開発中の社内ビルドを誤って外部公開候補にしてしまうリスクがあった。
そのため「審査通過可能な状態に近くないとアップロードしづらい」という制約が間接的にあった。
- 外部テスト(審査が必要)
- App Store 配信候補
- 内部テスト