メインコンテンツへスキップ
チュートリアル

CapacitorとCapgo BuildでWindowsからiOSアプリをビルドする

Windowsの開発マシンから実際のiOSバイナリをリリース:CapacitorでWebアプリをラップし、Capgo Buildでコンパイル・署名してTestFlightに提出できます。Macは不要です。

CapacitorとCapgo BuildでWindowsからiOSアプリをビルドする

従来、iOSアプリの開発にはXcodeが必須で、XcodeといえばmacOSです。チーム全員がWindowsやLinuxを使っている場合や、Macのビルドマシンを維持したくない場合、この制約は厄介です。

の組み合わせ Capacitor (ネイティブiOSプロジェクトを生成する)と Capgo のビルド (クラウド上でコンパイルと署名を行うことで)WindowsマシンからiOSビルドとTestFlightへの提出ができます。

このガイドでは、チームでうまく機能する実践的なワークフローを紹介します:

  • 通常のWebプロジェクトと同じようにWindowsで開発します。
  • 保持 ios/ リポジトリに保存します(ネイティブ状態を再現可能にするため)。
  • 実行 cap sync ローカルで実行します(WebビルドをiOSプロジェクトにコピーするため)。
  • Capgo BuildでiOSクラウドビルドをトリガーします。

実際に何をどこでビルドするか

Capacitor アプリには、2つの別々の「ビルド」があります:

  • Webビルド (JS/HTML/CSS): これらはWindows上でローカルに作成します。
  • Native Build (Xcodeアーカイブ、署名、アップロード): Capgo Buildがクラウド上のMac環境でこれらを実行します。

この分離が鍵となります。Capgo Buildはネイティブプロジェクトをコンパイルしますが、Webアセットが既に同期されていることを前提としています。 ios/.

前提条件

  • 動作するCapacitorアプリ(フレームワークは問いません)。
  • Apple Developerアカウント。
  • アップロードするアプリのApp Store Connectへのアクセス権(TestFlightやApp Storeへの提出用)。
  • CapgoアカウントとAPIトークン(CAPGO_TOKEN).

1) Capacitorアプリの作成・準備 (Windows)

既にWebアプリをお持ちの場合は、Capacitorの手順へスキップしてください。

Viteを使用した例:

bun create vite@latest my-app
cd my-app
bun install

ビルドは静的アセットを生成する必要があります(Vite では dist/ デフォルトで次のとおりです):

bun run build

2) Capacitor と iOS プラットフォームを追加

Capacitor をインストール:

bun add @capacitor/core @capacitor/ios
bun add -d @capacitor/cli

初期化して iOS プラットフォームのフォルダを作成:

bunx cap init
bunx cap add ios

この時点で、 ios/ ディレクトリが作成されます。これを git にコミットしてください。Capgo Build はその中身をコンパイルするため、 ios/バージョン管理して再現可能にしておく必要があります。

3) ビルド前に必ず Web アセットを iOS に Sync する

Web アプリを変更するたびに、Windows 上で次の手順を実行してください:

bun run build
bunx cap sync ios

cap sync は、ビルド済みの Web アセットをネイティブ iOS プロジェクトにコピーします(Capgo Build が実際にコンパイルするファイルです)。

4) Capgo CLI のインストールと認証

Capgo BuildはCapgo CLI経由で実行されます.bunを使用する場合、 bunx:

bunx @capgo/cli@latest login

または、シェルやCIの環境変数でトークンを設定します:

export CAPGO_TOKEN="your_api_key_here"

5) クラウドビルド用のiOS Signing設定

iOSをビルドするには、以下のSigning用リソースが必要です:

  • Apple Distribution証明書 (".p12) とそのパスワード
  • プロビジョニングプロファイル (.mobileprovision)
  • App Store Connect の API キー (AuthKey_XXXXXX.p8) とメタデータ (Key ID, Issuer ID, Team ID)

これらのファイルをまだ作成していない場合は、Capgoのドキュメントに従ってください:

最も簡単なのは、これらを一度(使えるMacやチームメイト、一時レンタルなどを使って)作成・エクスポートし、以降のビルドではWindowsから再利用することです。

ファイルをローカルに取得したら、Capgo Build用に保存してください:

bunx @capgo/cli@latest build credentials save \
  --platform ios \
  --certificate ./cert.p12 \
  --p12-password "password" \
  --provisioning-profile ./profile.mobileprovision \
  --apple-key ./AuthKey.p8 \
  --apple-key-id "KEY123" \
  --apple-issuer-id "issuer-uuid" \
  --apple-team-id "team-id"

ヒント:CIでは、認証情報ファイルをbase64エンコードしてシークレットとして保存し、実行時にデコードしてから同じ build credentials save コマンドを実行してください。

6) WindowsからiOSビルドを実行する

アプリフォルダから:

bun run build
bunx cap sync ios
bunx @capgo/cli@latest build com.example.app --platform ios --build-mode release

ターミナルにリアルタイムでログが表示されます。App Store Connectのキーが設定されていれば、Capgo Buildは生成されたビルドをTestFlightへ自動でアップロードできます。

7) 高速イテレーション:Webのみの変更にはLive Updates

Capgo Buildはネイティブの変更向けです:

  • Capacitorプラグインの追加・削除
  • ネイティブ権限の変更
  • アイコンやスプラッシュの変更
  • Capacitor の更新
  • Swift/Objective-C の変更

日常的な UI の微調整や JavaScript の修正には、通常以下が適しています。 Live Update (OTA) を利用することで、毎回ネイティブバイナリを再ビルドする必要がなくなります。

推奨されるチームのワークフローは以下の通りです:

  • 頻繁な Web の変更には Live Updates を使用する。
  • ネイティブの変更が必要な場合は、たまに Capgo Build を使用する。

Windows でよくある落とし穴(とその解決策)

  • 忘れてしまいがちなこと: cap sync: if your UI changes are missing in the iOS build, you likely built the web app but did not sync it into ios/.
  • コミットしていない ios/: Capgo Build はネイティブプロジェクトをコンパイルします。フォルダが git に含まれていない(またはビルドコンテキストに含まれていない)場合、ビルドでアプリを再現できません。
  • ネイティブ再ビルドなしのプラグイン変更: プラグインの追加はネイティブ変更です。その後 Capgo Build の実行(およびストア申請)を計画してください。

まとめ

Windows では Xcode を実行できませんが、 できるかどうかが Windows から iOS アプリをリリースできます:

  1. Capacitor で Web アプリをラップします(ios/ リポジトリ内)。
  2. ローカルで Web アセットをビルドしてから、 cap sync.
  3. Capgo Build を使って、CLI から iOS バイナリをコンパイル、署名、申請します。

Capacitor と Capgo Build を使った Windows からの iOS アプリビルドの続きはこちら

使用している場合 CapacitorとCapgo BuildでWindowsからiOSアプリをビルドする CI/CD自動化を計画するには、次と連携してください Capgo での CI/CD 設定 Capgo CI/CDでのプロダクトワークフローについては、 Capgo Native Build Capgo Native Buildsでのプロダクトワークフローについては、 Capgo インテグレーション Capgo インテグレーションでのプロダクトワークフロー向けに、 CI/CD 連携 CI/CD Integrationの実装詳細については、 GitHub Actions 連携 GitHub Actions Integrationの実装詳細については。

Capacitor アプリ向けの Live Updates

Web レイヤーのバグが本番で発生したら、App Store の審査を何日も待たずに Capgo で修正を配信しましょう。ネイティブの変更は通常の審査フローに残したまま、ユーザーはバックグラウンドでアップデートを受け取れます。

最新のブログ記事

Capgoは、真にプロフェッショナルなモバイルアプリを作るために必要な最高のインサイトを提供します。