Macなしでゲームを App Store に公開:クラウドビルドの手順
Windows PC から Capacitor、Codemagic、TestFlight を使って HTML5 ゲームを App Store の審査まで進めた方法と、ビルドを無駄にしたミスの記録。

Mac がなくても、ゲームを App Store に公開できます。Mac は必要ですが、借りればよいのです。HTML5 ゲームを PC 上で Capacitor でアプリ化し、Codemagic のようなクラウドサービスが自社の Mac マシンでコンパイルと署名を行い、ビルドは App Store Connect と TestFlight に届きます。ストアの掲載情報、プライバシー情報、審査への提出はブラウザで済みます。省けないのは iPhone だけです。Apple が審査する前に、誰かがそのビルドを実際にプレイする必要があるからです。
私たちは Windows から、自社のアクションゲーム Little Ninja Dash でこの手順を実行しました。最初に成功したクラウドビルドは約 6 分。アプリは 2026 年 10 月 19 日に App Review へ提出し、記録上のステータスは Waiting for Review(審査待ち)です。この記事では審査結果は報告しません。Apple と Codemagic に関する情報は 2026 年 10 月 30 日に確認した公式ページによるものです。それ以外は、うまくいかなかった部分も含めて、私たちのメモに残っている実際の経過です。
MacなしでApp Storeに公開するために必要なもの
- Apple Developer Program のメンバーシップ:メンバーシップ 1 年につき 99 米ドル。個人でも組織でも登録できます。組織の場合は D-U-N-S Number と公開ウェブサイトが必要です。
- Codemagic のアカウント。無料の個人プランでは macOS M2 のビルド時間が月 500 分、同時に実行できるビルドは 1 つです。超過分は Mac mini M2 が 1 分あたり 0.095 米ドル。無料枠は個人ユーザー向けで、チームでは使えません。
- プロジェクトを置く非公開の Git リポジトリ。Codemagic は接続したリポジトリからビルドします。私たちのテンプレートでは非公開リポジトリが必須です。公開リポジトリはソースコードの再配布にあたり、ライセンスで禁止されています。
- TestFlight アプリを入れた iPhone。実際のビルドのテストに使います。
- 自身のフォルダからオフラインで動作し、Capacitor でアプリ化したゲーム。
2026 年 4 月 28 日以降、App Store Connect にアップロードするアプリは Xcode 26 以降と iOS 26 SDK でビルドすることが Apple により義務付けられています。Capacitor の iOS ページも Xcode 26.0 以降を要件としており、対応は iOS 15 以上です。Xcode は macOS でしか動かないため、ビルドは手元の PC ではなく Codemagic のマシンで行います。
私たちのテンプレートのエディションはブラウザゲームです。どのエディションのページにも、ネイティブアプリのビルドは含まれないと明記しています。1 ライセンスで 1 つの最終製品をカバーし、そのゲームは App Store や Google Play を含め、どこで公開してもかまいません。テンプレート自体の再販売はできません。有料アプリやアプリ内課金でプレイヤーに課金する予定がある場合は、先にご相談ください。
ステップ 1:Windows で iOS プロジェクトを追加する
Android 用の Capacitor プロジェクトがすでにあれば、@capacitor/ios をインストールして npx cap add ios を実行します。Windows 上でも ios/ フォルダが作成されます。ローカルで Xcode を開くことはできないので、ネイティブプロジェクトへの変更はすべてファイルを直接編集し、次のクラウドビルドで確認することになります。
- アイコン:透明部分のない 1024×1024 の PNG を 1 枚。
- デバイスと向き:私たちのゲームは iPhone 専用、横向き専用です。iPad に対応すると、iPad 用スクリーンショットとテストするレイアウトが増えます。
- 暗号化:Apple の輸出コンプライアンスのヘルプでは、提出のたびに暗号化の質問に答えなくて済むよう、アプリの Info.plist を更新するよう案内しています。私たちのゲームはシステム標準の HTTPS しか使わないため、ITSAppUsesNonExemptEncryption を false にしました。
- 同梱ファイルのみ:ゲームはアプリ内に収まっていて、私たちのウェブサイトは一切読み込みません。Apple のガイドライン 4.2 は、ウェブサイトを再パッケージしただけではないアプリを求めています。
テンプレートから始めますか?Velvet Pool は私たちが Capacitor でアプリ化して Google Play に出したテンプレートで、ゲームフォルダはすでに Android でこのステップを経ています。App Store の審査を通ったテンプレートはまだありません。
Capacitor でアプリ化済みのテンプレート Velvet Pool を見る
ステップ 2:Mac もキーチェーンも使わずに署名する
署名は、かつて Mac がないとできなかった部分です。App Store Connect API キーがあれば、Codemagic がクラウドで処理できます。
- Apple Developer サイトで、ゲーム用の App ID(バンドル ID)を作成します。ゲーム内で何かを販売するなら In-App Purchase を有効にします。
- App Store Connect で、そのバンドル ID、SKU、主言語を指定してアプリのレコードを作成します。
- App Store Connect API キーを発行します。Codemagic のドキュメントでは Codemagic 専用のキーを推奨しています。Codemagic の連携設定に追加し、キーファイルは絶対にリポジトリに入れないでください。
- そのキーを使って、Codemagic に配布用証明書の生成とプロビジョニングプロファイルの取得を任せます。Codemagic は以前に生成した証明書を取得でき、プロファイルは Apple Developer ポータルから取得できます。
私たちがつまずいた点
- 最初の 2 回のビルドは、そのバンドル ID のプロビジョニングプロファイルがまだ用意されていなかったため失敗しました。証明書とプロファイルは最初のビルドの前に準備してください。
- Codemagic で参照名を入れずにインポートしたプロファイルは機能せず、ボタンもエラーを出さずに失敗しました。名前は必ず入力してください。
- 最初の API キー設定は Issuer ID の入力ミスで失敗しました。Apple のキーのページからコピー&ペーストしてください。
- ビルド番号は常に増やす必要があります。前のアップロードが処理中のあいだは Apple に最新番号を問い合わせても失敗したため、時刻から生成する番号に切り替えました。
ステップ 3:Codemagic でビルドし、TestFlight でテストする
ビルドの手順はリポジトリ内の codemagic.yaml ファイルに書きます。私たちの手順では、依存関係をインストールし、ゲームファイルを準備し、npx cap sync ios で iOS プロジェクトに同期し、プロファイルを適用して、Mac mini M2 マシンで IPA をビルドします。その後 Codemagic がビルドを App Store Connect に公開します。最初に成功したビルドは約 6 分、その後の本番ビルドは 4 分以内でした。
予想外だったこと:submit_to_testflight を false にしても、Codemagic はビルドを App Store Connect にアップロードしました。Codemagic のドキュメントでは、このオプションはベータグループへの配布に必要なものと説明されています。
TestFlight の制限
- 内部テスター:チーム内の App Store Connect ユーザー最大 100 人。
- 外部テスター:最大 10,000 人。外部テスト用の最初のビルドが App Review で承認された後に利用できます。
- 1 つのビルドをテスターが使えるのは最長 90 日です。
内部テスターへの招待は、TestFlight のメールから承認されるまで保留のままで、それまでアプリは TestFlight に表示されません。迷惑メールフォルダも確認してください。
Windows では見つからず、iPhone で見つかった問題
- 録音した音声ファイルが読み込まれませんでした。アプリ内では fetch がステータス 0 と正しいバイト列を返し、私たちのコードはそれをエラーとして扱っていました。ローカルファイルではステータス 0 を受け入れるようにして解決しました。
- 横向きでノッチ付近のボタンが切れていました。結果画面のレイアウトを作り直し、四隅すべてを確認しました。
- Android と共通の購入画面に Google Play と表示されたままでした。iOS では App Store と表示するようにしました。
- TestFlight でのテスト購入はリセットできなかったため、テストビルドには未購入の状態を再現するボタンを付けました。ストア版にはこのボタンはありません。
ステップ 4:App Store Connect の掲載情報、プライバシー、年齢制限
残りはブラウザで進めます。私たちがうまくいった順番は次のとおりです。
- App 情報:サブタイトル、カテゴリ、年齢制限の質問票。ゲームが実際に表示する内容に沿って正直に答えます。
- 価格および配信状況:価格と国・地域。Mac と Apple Vision Pro での配信は初期設定でオンになっていました。私たちのゲームはタッチ操作向けなのでオフにしました。
- App のプライバシー:Apple は新規アプリにもアップデートにもこの情報を求めており、広告ネットワークや SDK など、アプリにコードが含まれるサードパーティのデータの取り扱いも対象です。公開されたプライバシーポリシーの URL が必須です。
- アプリ内課金がある場合:名前、説明、審査用スクリーンショット、審査担当者へのメモ。
- バージョンのページ:説明、キーワード、サポート URL とマーケティング URL、著作権、ビルド、審査メモ、リリース方法。私たちは手動リリースを選びました。
- スクリーンショット、それから追加する各言語のテキストと画面キャプチャ。
- スクリーンショット:ガイドライン 2.3.3 では、タイトル画像やスプラッシュ画面だけでなく、アプリを使っている様子を見せるよう求めています。私たちのものはすべて実際のゲーム画面です。
- アプリ名:使いたかった名前のひとつは、すでに App Store で使われていました。予備の名前か、短い説明を添えた名前を用意しておきましょう。
- 審査メモ:ゲームはアプリ内で完結していること、オフラインで動くこと、ログイン不要であること、購入ボタンと復元ボタンの場所を書きました。
ステップ 5:提出と、Apple が確認すること
提出時には、App のプライバシーの回答を公開して内容が正しいことを確認し、提出の下書きを送信します。私たちは 2026 年 10 月 19 日に、アプリのバージョンと買い切りのアプリ内課金をあわせて提出し、ステータスは Waiting for Review(審査待ち)になりました。リジェクトされた場合は、やみくもに再提出するのではなく、Resolution Center で事実に基づいて回答します。
テンプレートから作ったゲームで特に重要なガイドラインは 3 つです。4.2 はウェブサイトの再パッケージ以上のものを求めているので、ゲームはアプリ内に収めます。4.3(a) は同じアプリで複数のバンドル ID を作らないよう求めています。4.3(b) は、すでに広く出回っているものと見分けのつかないアプリは望まないとしています。リスキン(reskin)では、アートだけでなくルール、コンテンツ、インターフェースを変える必要があります。
ゲームテンプレートに含まれるものと、私たちが代行できること
どのゲームテンプレートにも、そのまま設置できるゲームフォルダ、読みやすいソースコード、マニュアル、6 か月間のサポート(延長購入で 12 か月)が付きます。サポートの対象は、提供ファイルのインストールと使い方、および再現可能な不具合の修正です。iOS 用のラッパー、ネイティブ広告、アプリ内課金、クラウドビルドの設定、App Store の掲載情報は別サービスです。
署名や Codemagic の設定を自分でやりたくない場合は、テンプレート、Apple アカウントの種類、納期をお送りください。作業を始める前に、範囲、料金、スケジュールをお返事します。カスタム作業の料金表は公開していません。
ゲームを App Store に出すための見積もりを依頼する
よくある質問
Mac を持っていなくても iPhone ゲームを公開できますか?
できます。ビルドには macOS と Xcode が必要ですが、Codemagic のようなクラウドサービスが提供してくれます。App Store Connect から TestFlight まで、それ以外はすべてブラウザと iPhone で完結します。
App Store での公開にはいくらかかりますか?
Apple Developer Program はメンバーシップ 1 年につき 99 米ドルです。Codemagic の無料個人プランには月 500 分の macOS M2 時間が含まれ、超過分は分単位で課金されます。これにゲームのライセンス料とストア用の画像素材が加わります。
iPhone は必要ですか?
実機テストをするなら必要です。私たちの iPhone では、音声の欠落、切れたボタン、間違ったストア名が見つかりました。Windows でのビルドやブラウザでのテストでは出てこなかった問題です。
アプリ化した HTML5 ゲームを Apple は受け入れますか?
結果はお約束できません。ガイドライン 4.2 はウェブサイトの再パッケージ以上のものを求めているので、私たちはゲーム全体をアプリに同梱し、オフラインで動くようにし、ネイティブ機能を加えています。リスキンにはガイドライン 4.3 も適用されます。
ゲームテンプレートに iOS ビルドは含まれますか?
含まれません。私たちのエディションはブラウザゲームで、商品ページにもネイティブアプリのビルドは含まれないと記載しています。この手順を自分で進めることも、見積もりのうえ私たちに依頼することもできます。
