build-dmg について
付属スクリプトでXcodeプロジェクトまたはワークスペースをDMGにするスキルです。開発者がビルドと署名の入力を明確にしたうえで実行し、成果物または具体的な阻害要因を報告します。
主な機能
- 01プロジェクト、ワークスペース、スキームの検出
- 02署名とエクスポート設定の確認
- 03付属ビルドスクリプトの実行
- 04DMGのパスとビルド状況の報告
活用シーン
- 01macOSアプリのDMGパッケージ化
- 02曖昧なXcodeスキームのビルド前確認
- 03署名やエクスポートの問題特定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ulpi-io/ skills --skill build-dmgインストール後、Claude Code で/build-dmgを入力して読み込まれたか確認します。
同梱ファイルhelpers/build-dmg.sh
詳細
このスキルは `xcodebuild archive` と `exportArchive` を実行し、結果を DMG にパッケージ化します。コード署名、プロビジョニング、書き出しオプションを扱います。
譲れないルール:
- ビルド前にプロジェクト/ワークスペース、スキーム、チーム ID を特定してください。署名 ID を推測してはいけません。
- スキームが複数ある場合は、どれをビルドするかユーザーに確認してください。
- 明示的な承認なしに
ExportOptions.plistを自動作成または上書きしてはいけません。書き出しオプションが誤っていると、署名なしのビルドや配布形式が異なるビルドになります。 - プロジェクトのルートからヘルパースクリプト(
helpers/build-dmg.sh)を使用してください。xcodebuildコマンドを直接記述してはいけません。 xcodegenが検出された場合(project.ymlが存在する場合)は、ビルド前にxcodegen generateを実行してください。- 生成された DMG のパス、アプリのバージョン、署名状況を明確に報告してください。
build-dmg
入力
$request:プロジェクト、ワークスペース、スキーム、または署名に関するヒント(省略可能)
目標
次の手順で DMG ビルドを生成します。
- 適切な Xcode ターゲットの入力を特定する
- 同梱のヘルパースクリプトをプロジェクトのルートから実行する
- 生成された DMG のパスと、パッケージ化を妨げている要因を報告する
ステップ 0:パッケージ化の入力を特定する
リポジトリを確認し、次の項目を特定してください。
- アプリ名
- スキーム
- プロジェクトまたはワークスペースのパス
- 存在する場合は
ExportOptions.plistの場所 - 存在する場合は
VERSIONファイル project.ymlがxcodegenを示しているかどうか- すでに設定されている場合はチーム ID または署名に関するヒント
必須の入力項目が曖昧な場合は、ビルド前に確認してください。
成功基準:ヘルパーを実行する前に、ビルド設定が明確になっていること。
ステップ 1:ヘルパーと作業ディレクトリを確認する
ヘルパースクリプトは、このスキルと同じ場所にあります。
helpers/build-dmg.sh
現在のリポジトリをビルドコンテキストとして使用できるよう、プロジェクトのルートから実行してください。
成功基準:正しいヘルパーのパスとプロジェクトのルートが特定されていること。
ステップ 2:環境を明示してビルドする
次のような必須の環境変数を指定してください。
APP_NAMESCHEME
プロジェクトで実際に必要な場合に限り、次のオプション変数を追加してください。
PROJECTWORKSPACEINFO_PLISTEXPORT_OPTIONSTEAM_IDVERSION_FILEUSE_XCODEGENDMG_BACKGROUND
成功基準:ヘルパーに必要な入力がすべて揃っており、オプションの入力は必要なものだけが指定されていること。
ステップ 3:成功または失敗に適切に対処する
成功した場合は、次の内容を報告してください。
- DMG の出力パス
- 確認できる場合はアプリのバージョンとビルド番号
VERSIONファイルが変更されたかどうか
失敗した場合は、次の対応をしてください。
- 実際のエラーを要約する
- 関連する
xcodebuildまたは書き出しの失敗を示す行を提示する - 問題の原因が署名、スキームの選択、書き出しオプション、ビルド失敗のいずれかを特定する
成功基準:ユーザーが使用可能な成果物のパス、または問題を明確にまとめた説明を得られること。
ガードレール
- このスキルを先回りして実行しないでください。
.claude内のローカルなヘルパーのパスを想定せず、このスキルのディレクトリ内にあるヘルパーを使用してください。- 承認なしに書き出しオプションを自動作成または上書きしないでください。
- 署名の失敗を一般的な「ビルド失敗」という要約で隠さないでください。
出力要件
次の内容を報告してください。
- 特定したアプリ/プロジェクト/ワークスペース/スキームの入力
- ヘルパーの実行が成功したかどうか
- 成功した場合は DMG のパス
- 確認できる場合はバージョン/ビルド情報
- 失敗した場合は、問題の正確な分類
コメント
Markdown 対応