iOSアプリをビルドすることは、通常、1つのことを意味します: Xcodeが必要であり、XcodeはmacOSを意味します。 その制約は、チーム全体がWindowsまたはLinuxで構成されている場合、またはMacビルドマシンを維持したくない場合に面倒です。
の組み合わせ Capacitor (ネイティブiOSプロジェクトを生成する) Capgo Build (クラウドでコンパイルおよび署名する)
WindowsからiOSアプリをビルドするには、以下の手順を実行します。
- Windowsで通常のWebプロジェクトのように開発します。
- Capacitor
ios/リポジトリに保存してください (ネイティブ状態を再現可能にするため)。 - Run
cap syncローカルで実行 (Web ビルドが iOS プロジェクトにコピーされるため) - Capgo ビルドをトリガーして iOS クラウド ビルドを実行
実際にビルドされる場所
There are two separate “builds” in a Capacitor app:
- Web ビルド (JS/HTML/CSS): Windows でローカルで実行
- ネイティブ ビルド (Xcode アーカイブ、署名、アップロード): Capgo ビルドは Mac ハードウェアでクラウドで実行
この分離は鍵です: Capgo ビルドはネイティブ プロジェクトをコンパイルしますが、Web アセットがすでに Synced されていることを期待します。 ios/.
前提条件
- A working Capacitor app (any framework is fine).
- 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/ 2) __CAPGO_KEEP_0__とiOSプラットフォームを追加する
bun run build
Capacitorをインストールする:
Install Capacitor:
bun add @capacitor/core @capacitor/ios
bun add -d @capacitor/cli
この時点で、
bunx cap init
bunx cap add ios
__CAPGO_KEEP_0__アプリのiOSプラットフォームフォルダが作成されます。 ios/ ディレクトリ。Gitにコミットしてください。 Capgo ビルドは内部にあるものをコンパイルします。 ios/したがって、バージョン管理されたもので再現可能なものになります。
3) iOSビルド前に常にWebアセットをSyncする
WindowsでWebアプリを変更した度に、以下のシーケンスを実行してください。
bun run build
bunx cap sync ios
cap sync これは、実際にコンパイルする Capgo ビルドのファイルに、ビルドしたWebアセットをコピーするものです。
4) Capgo と CLI をインストールして認証する
Capgo ビルドは、Capgo CLI によってトリガーされます。 bun を使用して bunx:
bunx @capgo/cli@latest login
または、シェル/CIで環境変数を設定してトークンを設定してください。
export CAPGO_TOKEN="your_api_key_here"
5) Cloudビルド用にiOSの署名を設定する
iOSビルドには署名マテリアルが必要です。
- Apple Distribution証明書 (
.p12) とそのパスワード - iOSアプリをWindowsからビルドするCapacitorとCapgoのビルド
.mobileprovision) - App Store ConnectのAPIキー(
AuthKey_XXXXXX.p8)とメタデータ(キーアイデンティティ、発行者ID、チームID)
必要な場合は、Capgoドキュメントを参照して、これらのファイルを生成してください:
- クレデンシャル管理 (何を保存するか、どのように保存するか)
- iOS証明書とプロビジョニングプロファイルを取得する方法
最も簡単な方法は、Mac、チームメンバー、または一時レンタルで利用できるMacを使用して一度だけ作成/エクスポートし、Windowsから毎回ビルドすることです。
Once you have the files locally, save them for 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ビルドをトリガーする
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 ビルドは自動的にテストフライトに送信できます。
7) Web-オンリー変更に対しては、即時更新が可能です。
Capgo ビルドは、ネイティブ変更に対して使用されます。
- adding/removing Capacitor plugins
- ネイティブの権限変更
- アイコン/スプラッシュの変更
- updating Capacitor
- Swift/Objective-C の変更
日常の UI の調整や JavaScript の修正には、 Live Updates (OTA) により、ネイティブバイナリを毎回ビルドする必要がなくなります。
A good team workflow is:
- Live Updatesを頻繁に使用してWebの変更を実行してください。
- Use Capgo Build occasionally when native changes are needed.
Windowsの一般的な落とし穴(と修正)
- UIの変更がiOSのビルドに表示されない場合、UIの変更が存在するかどうかを確認してください。
cap sync:Webアプリをビルドしたが、Capgo BuildでSyncすることを忘れていませんか?ios/. - :Capgo Buildはネイティブのプロジェクトをコンパイルします。Gitにフォルダが存在していない場合、またはビルドのコンテキストにフォルダが存在していない場合、ビルドはアプリを再現できません。
ios/: Capgo Build compiles the native project. If the folder is not in git (or not in your build context), the build cannot reproduce your app. - :プラグインの追加はネイティブの変更です。Capgo Buildの実行(およびストアの提出)を計画してください。: adding a plugin is a native change; plan a Capgo Build run (and a store submission) afterward.
WindowsではXcodeを実行することはできませんが、
Capacitor WindowsからiOSアプリをビルドする WindowsからiOSアプリをビルドする:
- Capacitor (
ios/をリポジトリに追加してください。 - ローカルでWebアセットをビルドし、次に
cap sync. - Use Capgo Build to compile, sign, and submit your iOS binary from the CLI.
Capacitor BuildとCapgo Buildを使用してWindowsからiOSアプリをビルドする
WindowsからiOSアプリをビルドする Capacitor BuildとCapgo Buildを使用してWindowsからiOSアプリをビルドする CI/CDの自動化を計画する場合、__CAPGO_KEEP_0__ CI/CD Capgo CI/CD Capgo CI/CD Capgo Native Builds Capgo Native Buildsの製品ワークフロー Capgo Integrations for the product workflow in Capgo Integrations, CI/CD統合 CI/CD統合の実装詳細 GitHub Actions Integration for the implementation detail in GitHub Actions Integration.