1台のMacがリリースのボトルネックになる
小さなリリースは、チームがXcode、有効なmacOS環境、および1台のマシンに保存されている正しい証明書が必要になるハードウェアと署名問題になる
任意のマシンからiOSビルド
Swiftをコンパイルすることの難しさはXcode、証明書、プロビジョニングプロファイル、App Store Connectキー、そして1台のノートパソコンがリリースゲートになることです。 Capgo ビルダーは Capacitor チームに CLI の先行で、任意の場所から署名済みiOSビルドを提供します。
npx @capgo/cli@latest build init --platform ios
npx @capgo/cli@latest build request --platform ios
# signed build runs on an ephemeral Mac runner
# logs stream back to your terminal
マネージドマック容量
iOSビルドをAppleが要求する場所で実行する。既存のマシンからトリガーする。
同じCapgoリリースループ
ネイティブバイナリの変更にはネイティブバイナリを使用し、ストアビルドがインストールされた後はウェブの変更にOTAを使用する。
問題
小さなリリースは、チームがXcode、有効なmacOS環境、および1台のマシンに保存されている正しい証明書が必要になるハードウェアと署名問題になる
作業用プロファイルを持つ人がオフラインの場合、リリースは待機します。プロファイルが期限切れの場合、みんながApple署名を圧力下で再学習することになります。
自社でmacOS CIを運営する場合、秘密情報、Fastlaneのレーン、Xcodeイメージの更新、ログの保持ルール、Appleの行動の変更によるデバッグが必要です。
隠された作業
Macを購入することはハードウェアの要件を解決するだけです。Apple署名、資格情報の漂流、ランナーのメンテナンス、またはチームメイトのボトルネックを排除することはできません。
最初のビルドが成功するには、正しいApple Developerチーム、バンドルID、機能、App Store Connectアプリレコード、およびアップロード許可が必要です。
リリースビルドには配布用証明書、P12エクスポート、プロビジョニングプロファイル、プロファイルからバンドルへのマッピング、および期限切れの場合の更新プロセスが必要です。
Xcodeバージョン、macOSランナー、CocoaPods、Fastlane、シークレットストア、そしてアップロードログはすべて、製品チームが維持する必要があるインフラストラクチャになります。
CLIの例
通常のiOSパスでは、Appleの署名を理解する必要があります。Capgoは、そのようなものをインタラクティブなセットアップと1つのビルド要求に変換します。
# First-time iOS setup
npx @capgo/cli@latest build init --platform ios
# Then any teammate or CI runner can request the build
npx @capgo/cli@latest build request --platform ios
The Solution
Capgoは、稀なバイナリ問題と日常の製品問題を分離します。ネイティブビルドはクラウドで署名され、Webの変更はライブアップデートを通じて動作します。
Capgo Builderは、管理されたAppleハードウェア上でiOSビルドを実行します。Windows、Linux、またはスペックが低いノートパソコンでも、ターミナルから署名済みのiOSビルドをトリガーできます。
The CLIは、Appleの難しい部分をガイド付きのフローで導きます: バンドルID、App Store Connectキー、配布証明書、P12、プロビジョニングプロファイル、多目標プロファイルマッピング。
ローカル、CI、またはエージェントワークフローから同じコマンドを実行します。リリースをダッシュボードに移動する必要はなく、Xcodeを教える必要もありません。
Builderを使用するには、ネイティブcode、プラグイン、アイコン、パーミッション、またはSDKバージョンが変更された場合にのみ使用してください。JavaScript、CSS、資産の変更は、ストアの提出間でライブアップデートを使用してください。
トラストモデル
クラウドビルドは、ソース、キー、ログが永遠に生き続ける新しい場所を作成することなく、運用リスクを削減する必要があります。
ネイティブビルドに必要なファイルのみをランナーに送信します。Capgoは、ビルドを生成するためにフルGitリポをクローンする必要がありません。
ビルドログは、ターミナルに流れます。敏感な出力が、チームが監査する必要がある長期間生き続けるデータベースになるのを防ぎます。
クレデンシャルは、ビルド環境に渡され、ビルド後に削除されます。ビルダーは、永久的なクレデンシャルボックスではなく、臨時ランナーです。
Workflow
ローカルターミナル、CI、またはエージェントワークフローからCLIプロジェクトのBuilder initフローを実行します。CLIはCapacitorアプリを読み取り、プラットフォームのセットアップをガイドします。
署名資格情報を作成またはインポートし、バンドルIDにプロビジョニングプロファイルをマップし、CI用に環境ファイルをエクスポートして、必要に応じて。
ローカルターミナル、CI、またはエージェントワークフローから署名iOSビルドをリクエストし、ビルドが実行中のログをストリーミングしてください。
TestFlightにアップロードまたはIPAを収集し、Capgoのライブアップデートを使用してJSとアセットの修正を継続して配信してください。
User signal
ユーザーが言及する主な救済は、Macがなくなることだけではありません。リリースプロセスが繰り返し実行可能になることです: init 1回、ビルドをリクエスト、ログをストリーミング、署名ファイルをチーム間で渡さなくて済みます。
一般的な Capgo ビルダーからのフィードバック
Capacitor で作られたアプリ
学校、交通、サポートアプリは、チームがほとんどウェブ、サポート、またはオペレーションである場合でも、署名されたモバイルリリースが必要です。ホストされたビルドワークフローは、シングルマシン障壁を排除しながら、署名ステップを繰り返し実行できるようにします。
教育
学校間の信頼できる署名リリースが必要な非ネイティブチーム向けの学校コミュニケーションアプリ
旅行とローカル
リリースハンドオフが1台の開発者マシンに依存しない乗車券予約アプリ
ツール
サポートツールは、繰り返し可能なモバイルビルドレコードが必要なオペレーションテーム向けです。