オフィスにMac miniを設置
ビルド頻度が低く、余っているMacがあればコストを抑えられます
向いているケース
- ビルドはたまにしか行わず、使っていないMacがある。
- 電源・ネットワーク・OSアップデートを管理できる人がいる。
- コードや依存関係を社内ネットワーク内に保管する必要がある。
向いていないケース
- 1日に何度もマージし、夜間ビルドをオフィスの電源に頼れない。
- ネットワークが不安定で、再起動のたびに現地対応が必要。
- リリースエンジニアの業務からハードウェア管理を切り離したい。
専用物理Mac miniを仮想マシンではなく、1チームで1台まるごと利用できます。シンガポール、東京、ソウル、香港、米国西部の5拠点にiOSビルドサーバーを設置しています。
tokyo-node-07 · Apple Silicon M4 Pro · ユニファイドメモリ 64GB · SSD 2TB
nightlyのタスク例:UIテスト 2時間5分。異なるブランチ間で、このチーム専用のCPU・メモリ・ディスクを共有します。同時実行数は実際のプロジェクトで確認してください。
オフィスの勤務時間に左右されず、通年稼働します。以下は平年365日分のサービス予定イメージで、過去の稼働率を示すものではありません。
ハードウェアの不具合が発生する可能性はあります。別途バックアップを保管し、コンソールにログインしてチケットを作成のうえ、原因調査やマシン交換をご依頼ください。
スケジュール、所要時間、稼働状況は製品イメージであり、実測値ではありません。実際の稼働状況はコンソールに表示される最新情報をご確認ください。
各ツールは通常どおりノードにインストールでき、自分のMacと同じように使えます。記載は動作方式の例であり、提携や推奨を示すものではありません。ツールのバージョン、依存関係、ランナーの更新はチームで管理してください。
どの方法も実際に利用されています。それぞれの向き不向きを比べて、自分たちに合う方法を確認してから、iOSビルドサーバーを借りるか検討しましょう。
電源・ネットワーク・冷却はデータセンターが管理します。夜間のnightlyビルドが、オフィスの停電でスキップされることもありません。
オフィスの勤務時間に合わせてノードを停止する必要はありません。
サービス提供側の定期停止に合わせてビルド日程を組む必要はありません。
シンガポール、東京、ソウル、香港、米国西部。
同じマシンを他のお客様と共有することはありません。
ご利用にあたって:通年稼働でも、ハードウェアの故障が起きないわけではありません。異常が発生した場合は、まずチケットでノード名とエラー情報をお知らせください。原因調査、ノード交換、環境の復旧をサポートします。コード、署名用データ、ビルド成果物、必要なキャッシュは別途バックアップしてください。マシン交換後のランナー再登録や環境復旧には、チームのご協力が必要です。
交換時の流れを見る仮想マシンではなく、他のお客様と分割もしません。専用物理マシンと共有プランの違いを4つ紹介します。
ノードはお客様のアカウントに登録され、契約期間中に他のチームへ割り当てられることはありません。チーム内で複数の開発者やパイプラインを接続できます。
ビルドはApple Silicon搭載の物理マシン上で直接実行されます。macOSのGUIとコマンドラインを利用でき、プロジェクトに合わせてツールや依存関係を管理できます。
DerivedData、CocoaPods、SPMのキャッシュが他のお客様のタスクによって削除されることはありません。アーカイブやキャッシュでSSDがいっぱいにならないよう、削除ルールはご自身で設定してください。
mainとreleaseを同時にビルドしても、リソースを共有するのはチーム内のタスクだけです。専用でも同時実行数に上限がないわけではなく、シミュレーターやコンパイルもマシン全体のリソースを使用します。
2種類のチップで3モデルを用意しています。単一アプリのプロジェクトならM4から、大規模な複数targetのプロジェクト、より多くの並列テスト、モデル推論にはM4 Pro 64GBをご検討ください。
Port M4 Base / Port M4 Plusに搭載
Port M4 Proに搭載
全モデルで専用物理Mac miniを1台まるごと利用でき、5つのエリアから選べます。日払いはパイプラインのお試しに、月払い・四半期払いはnightlyの常時実行におすすめです。実際の稼働状況はコンソールの最新情報をご確認ください。
Apple Silicon M4 · ユニファイドメモリ 16GB · SSD 256GB
$19.7/日
単一アプリや少量のビルドにおすすめ。フルアーカイブ時のディスク容量とメモリ使用量を事前に確認してください。
Port M4 Baseを借りるApple Silicon M4 · ユニファイドメモリ 24GB · SSD 512GB
$40.3/日
日々の開発、複数ブランチのビルド、シミュレーターテストにおすすめ。並列数は実測に基づいて調整してください。
Port M4 Plusを借りるApple Silicon M4 Pro · ユニファイドメモリ 64GB · SSD 2TB
$61.4/日
大規模な複数targetのプロジェクト、多数のテストタスク、ローカルモデルの推論におすすめです。
Port M4 Proを借りるUSD決済 · USDT-TRC20、Visa / Mastercard / Amex(Stripe経由)に対応。利用可能な決済ゲートウェイはバックエンドの表示をご確認ください。
選び方を比較開発者の所在地だけでなく、コードリポジトリ、依存関係のダウンロード元、成果物の受け取り先も考慮しましょう。同じモデルなら拠点間の料金は同じです。以下は拠点ごとの参考レイテンシで、お客様の回線での実測値や接続を保証するものではありません。
東南アジアのチームや、コード・依存関係・リリース経路が主に東南アジアにあるプロジェクトにおすすめです。
シンガポールのノードを利用 → JP日本のチームや、リポジトリと依存関係の配信元が東アジアにあり、近くでビルドしたいプロジェクトにおすすめです。
東京のノードを利用 → KR韓国のチームや、コードと成果物の転送が主に韓国内で行われるワークフローにおすすめです。
ソウルのノードを利用 → HK華南のチームにおすすめです。利用前にリポジトリの取得、依存関係のダウンロード、成果物の転送を一緒にテストしてください。
香港のノードを利用 → US-W北米西海岸のチームや、リポジトリ・依存関係・成果物の受け取り先が主に米国西部にあるプロジェクトにおすすめです。
米国西部のノードを利用 →Windowsでこれまでどおり開発し、変更をコミットしてプッシュ。ビルドは専用ノードのランナーに任せます。コードを取得し、xcodebuildまたはfastlane gymでipaを生成して、成果物をパイプラインに返します。開発端末をMacに変える必要はありません。
macOSのビルド環境は必要ですが、オフィスにMacを設置する必要はありません。ノードにFlutter、Xcode、プロジェクトの依存関係を用意し、リモートでflutter build ipaを実行。インポートした証明書とプロビジョニングプロファイルを使って署名します。
署名に必要なもの:有効なApple Developer Programの資格が必要です。また、署名証明書、プロビジョニングプロファイル、App Store Connect API Keyはご自身でご用意ください。レンタルノードが提供するのはビルド環境であり、これらの配信要件に代わるものではありません。
今の開発環境を維持したまま、変更をチームのリポジトリにプッシュします。
git push origin main
セルフホストランナーを登録し、ラベルを使ってmacOSタスクを対象のノードに送ります。チーム内のタスクも適切な同時実行数に設定してください。
runs-on: [self-hosted, macOS, osxport]
証明書とプロビジョニングプロファイルをインポートし、署名を設定します。シークレットはCIの安全な変数に保存し、コードリポジトリには書き込まないでください。
flutter build ipa --release
App Store Connect API Keyを使って自動アップロードを設定し、エラーログと成果物の保存先をパイプラインに返します。
fastlane pilot upload
以下は選定の参考となる典型例です。実名の顧客レビューでも、性能テストの結果でもありません。
レンタルするか迷っていますか?チームの人数、1日のビルド回数、1回のアーカイブ時間、主な配信先をお知らせください。使っていないマシンがありビルド頻度も低い場合は、自社運用の継続を率直におすすめします。
ノードはデータセンターで365日稼働しています。ハードウェアの異常でタスクに影響が出る可能性はあります。コンソールにログインしてチケットを作成し、ノード名、症状、直近の操作をお知らせください。原因調査やマシン交換にご協力をお願いします。稼働予定は、過去に故障がなかったことを示すものではありません。
パイプラインに合わせてHomebrew、Xcode、プロジェクトの依存関係を管理できます。Xcodeを切り替える前にSDKとプロジェクトの要件を確認し、ツールのバージョンをビルド記録に残してください。複数のタスクから同じグローバル環境を同時に変更しないようにしましょう。
月額料金を日額料金で割ると比較できます。Port M4 Baseは日払い$19.7、月払い$98.5です。料金表の計算では、日払いを5日間利用した料金と月払い1か月分が同額です。継続利用の見込みがある場合は月払いがおすすめです。利用期間と更新条件は注文時にご確認ください。
すべてUSDで決済され、USDT-TRC20、Visa / Mastercard / Amex(Stripe経由)のみ利用できます。決済時にバックエンドに表示される利用可能な決済方法をご確認ください。お支払い前に注文内容、金額、決済ネットワークをお確かめください。
複数の開発者やパイプラインで、チーム内共有が可能です。他のお客様に割り当てられることはありません。ビルドディレクトリ、署名用データ、ランナーの権限を分け、コンパイルやシミュレーターの同時実行数を制限してください。
コストの比較からビルド環境まで、事前に何度も確認するポイントを記事にまとめています。接続前にチームで共有できます。
SwiftでUnion-Findを実装し、独立したグラフ探索で連結関係と成分数を照合。重複併合や境界条件を検証します。
CI/CD実行可能なSwift例で処理順を固定し、未知の依存先や循環を検出。残ったノードをすべて循環と誤認しない検証方法を解説します。
CI/CDSwiftの実行例で偽陰性を防ぐ契約を確認し、偽陽性と永続化の互換性を切り分けます。
記事を準備中です。まずはブログ一覧をご覧ください。
日払いはPort M4 Baseが$19.7/日。既存のランナーを接続し、クリーンビルド、増分ビルド、署名付きフルアーカイブをそれぞれ実行してから、月払いや四半期払いへの切り替えをご検討ください。
月払いの合計例 = $201.6 + $12.9。ほかの追加購入は含みません。
支払い:USDT-TRC20またはVisa / Mastercard / Amex(Stripe経由)。