asc-release-workflow について
App Store 向けアプリのリリースを支援するワークフロースキルです。`asc` を使ったバージョンとビルド番号の更新、アーカイブのアップロード、ローカライズ、準備状況の確認、提出を案内します。
主な機能
- 01設定に基づくプラットフォームとバージョン処理
- 02バージョン番号とビルド番号の更新
- 03アーカイブ、エクスポート、アップロードの案内
- 04各言語の What's New 更新
- 05準備状況の確認と提出手順
活用シーン
- 01iOS または macOS アプリのリリース
- 02バージョンを変えずにビルド番号を更新
- 03ローカライズされたリリースノートの準備
- 04提出準備状況の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tddworks/ asc-cli-skills --skill asc-release-workflowインストール後、Claude Code で/asc-release-workflowを入力して読み込まれたか確認します。
同梱ファイルrelease.yml
詳細
アプリのリリースワークフロー
仕組み
プロジェクトには、.asc/release.yml にリリース設定があります。最初にこれを読み、プラットフォームのスキーム、バージョンファイルのパス、ロケールの一覧を確認してください。
ワークフローの手順
ステップ 1:リリース対象を決める
不明な場合は、ユーザーに確認してください。
- どのプラットフォームですか?(ios / macos / both)
- 新しいバージョン番号は?(または、同じバージョンのままビルド番号のみを上げますか?)
- What's New のテキストは?(プライマリロケールで入力してください。他のロケール向けには翻訳します)
ステップ 2:バージョンを上げる
リリース設定を読み、対象プラットフォームの version_file と version_pattern を確認してください。また、build_number_file も更新してください。
- バージョンファイルを読み、正規表現パターンを使って現在のバージョンを確認します
- 新しいバージョン文字列に置き換えます
- ビルド番号ファイルを読み、ビルド番号をインクリメントします
- 複数のプラットフォームで同じビルド番号ファイルを共有している場合は、両方のビルド番号を上げます
重要: CFBundleVersion と CURRENT_PROJECT_VERSION がビルド番号のパターンと別に設定されている場合は、これらも更新してください。Shared.swift と TargetExtensions.swift を確認します。
ステップ 3:プロジェクトを再生成する(必要な場合)
pre_archive に記載されたコマンド(例:tuist generate)を実行します。
ステップ 4:アーカイブ、エクスポート、アップロード
# Get the next build number automatically
BUILD_NUMBER=$(asc builds next-number --app-id <APP_ID> --version <VERSION> --platform <PLATFORM>)
asc builds archive \
--scheme <SCHEME> \
--platform <PLATFORM> \
--signing-style automatic \
--team-id <TEAM_ID> \
--upload \
--app-id <APP_ID> \
--version <VERSION> \
--build-number "$BUILD_NUMBER"
ステップ 5:ビルド処理を待つ
完了するまでポーリングします。
asc builds uploads get --upload-id <UPLOAD_ID>
state フィールドを確認します。FAILED の場合は、errors 配列を読み、ユーザーに報告してください。よくある失敗:
- アイコンがない → アセットカタログを修正する
- エンタイトルメントがない → macOS 用のサンドボックスエンタイトルメントを追加する
- CFBundleVersion が一致しない → ビルド番号が一致していることを確認する
ステップ 6:ビルドをバージョンに紐付ける
# Find the version in PREPARE_FOR_SUBMISSION state for the platform
asc versions list --app-id <APP_ID>
# Filter for the target platform + PREPARE_FOR_SUBMISSION state
# Find the build
asc builds list --app-id <APP_ID>
# Match by build number
# Link them
asc versions set-build --version-id <VERSION_ID> --build-id <BUILD_ID>
ステップ 7:What's New を更新する(初回バージョン v1.0.0 の場合はスキップ)
設定内の各ロケールについて、次を実行します。
asc version-localizations list --version-id <VERSION_ID>
# Get localization IDs for each locale
asc version-localizations update \
--localization-id <LOC_ID> \
--whats-new "<TRANSLATED_TEXT>"
What's New のテキストを作成します。
- ユーザーが提供したテキストを en-US 版として使用します
- 同じトーンと書式を保ちながら、各ロケールに翻訳します
- 簡潔にまとめます(最大 2~4 文)
ステップ 8:準備状況を確認する
asc versions check-readiness --version-id <VERSION_ID>
結果をユーザーに報告します。isReadyToSubmit が true の場合は、提出するかどうかを尋ねてください。そうでない場合は、不足しているもの(スクリーンショット、説明など)を一覧にします。
ステップ 9:提出する(ユーザーが確認した場合)
アプリ内課金またはサブスクリプションがあり、まだ一度も承認されていない場合は、このバージョンと一緒に審査に提出する必要があります。含まれる内容をユーザーに提示してから、ユーザーと一緒に提出します。
asc versions submit --version-id <VERSION_ID> --with-products --dry-run --output table
asc versions submit --version-id <VERSION_ID> --with-products
それ以外の場合:
asc versions submit --version-id <VERSION_ID>
Apple に拒否された場合、エラーに修正すべき内容が記載されています。submit-with-products.md を参照してください。
初回のプラットフォーム設定(初回のみ)
あるプラットフォームで初めてリリースする場合(例:既存の iOS アプリに macOS を追加する場合)は、通常のワークフローを始める前に追加の設定が必要です。
-
プロビジョニングプロファイル — 存在するか確認し、なければ作成します。
asc bundle-ids list --identifier <BUNDLE_ID> asc certificates list --type MAC_APP_DISTRIBUTION # or IOS_DISTRIBUTION asc profiles list --bundle-id-id <BID_ID> asc profiles create --name "Mac App Store: <BUNDLE_ID>" --type MAC_APP_STORE --bundle-id-id <BID_ID> --certificate-ids <CERT_ID> -
エンタイトルメント — macOS では App Sandbox が必要です。
.entitlementsファイルを確認します。 -
アプリアイコン — プラットフォームのアセットカタログにアイコンが割り当てられていることを確認します。
-
説明 — 既存のプラットフォームの説明があればコピーし、新しいプラットフォーム向けに調整します。
-
バージョンを作成する — PREPARE_FOR_SUBMISSION のバージョンが存在しない場合:
asc versions create --app-id <APP_ID> --platform MAC_OS --version-string 1.0.0