ビルド当日のチェックリスト

コードを書き終えたら、
Macで次に何をする?

普段はWindowsやLinuxで開発し、アーカイブを作る日にクラウドMacへプロジェクトを移行。接続と環境を確認して依存関係を復元し、署名用ファイルを取り込んだら、使用するフレームワークに応じてiOSビルドを作成します。

接続、ブラウザーでのリモートデスクトップ、環境構築、料金に関する問題をサポートします。業務コードの作成、Apple開発者アカウントの管理、配信資格や署名の承認代行は行いません。

すでにレンタル済みですか?以下の移行チェックリストから始めましょう。接続情報とインスタンスの状態は、ログイン後のコンソールで確認できます。

移行作業は分けて進める

プロジェクト、ツールチェーン、CIはそれぞれの手順で移行します。

ローカルMacでもWindowsでも、プロジェクトはバージョン管理から復元できます。まず再現可能な設定を移し、次に機密ファイルを移してください。以前のマシンのキャッシュディレクトリ全体をそのままコピーするのは避けましょう。

データの引き継ぎ

プロジェクトと署名用ファイルを取得する

アクセス権のあるGitリポジトリからプロジェクトを取得します。リポジトリのURLは環境変数で指定し、アクセストークンをコマンド履歴やスクリーンショットに残さないでください。

  1. ブランチとサブモジュールを同期し、フレームワークやパッケージマネージャーのロックファイルを保持します。
  2. 署名が必要な場合は、管理された経路で証明書とプロビジョニングプロファイルを転送し、今回の作業に必要なファイルだけを取り込みます。
  3. 大容量ファイルの転送には、利用が有効で接続可能なSSHを優先してください。ブラウザー上のデスクトップでファイルをアップロードできるかは、現在の接続画面で確認します。
git clone "$PROJECT_REPOSITORY" project
cd project
git submodule update --init --recursive
git rev-parse HEAD
git status --short

確認ポイント:両方の環境でコミットIDが一致していること。プライベート依存パッケージへのアクセス権、追加リソース、署名ファイルはコードだけでは復元されません。

環境の引き継ぎ

バージョンを確認してから依存関係を補う

まず、インスタンスで実際に使えるツールを確認します。どのマシンにも同じバージョンがインストールされているとは限りません。Xcodeとプロジェクトの要件が合わない場合は、ビルド前に互換性を解決してください。

  1. Xcodeの開発ディレクトリ、バージョン、利用可能なSDKを確認し、コマンドラインが目的のツールチェーンを参照しているか確かめます。
  2. HomebrewとBrewfileでプロジェクトに必要なツールを復元し、CocoaPods、Flutter SDK、Nodeのバージョンを確認します。
  3. Unityプロジェクトでは、対応するエディターバージョンを使い、Unity HubでiOS Build Supportが利用可能か確認します。
xcode-select -p
xcodebuild -version
xcodebuild -showsdks
brew --version
brew bundle check
pod --version
flutter --version
node --version

確認ポイント:Brewfileがある場合は、そのファイルがあるディレクトリでチェックを実行します。コマンドが見つからない場合は、該当ツールを先にインストールしてください。Unityの利用ライセンスはご自身で確認してください。

自動化の引き継ぎ

デスクトップでビルドできてからCIに接続

まず対話セッションで一度ビルドし、依存関係と署名が使えることを確認してから、一時的なself-hosted runnerを登録します。環境の問題をCIの調査に持ち込まずに済みます。

  1. 利用中のCIプラットフォームから、macOSとチップアーキテクチャに対応したrunnerパッケージと、有効期間の短い登録トークンを取得します。
  2. 展開したディレクトリでプラットフォームの手順に従って登録し、ジョブのラベル、作業ディレクトリ、実行ユーザーを確認します。
  3. プロジェクトにfastlaneの設定がある場合は、まずlaneの一覧を確認してから、チームで定めたビルド手順を実行します。
./config.sh --url "$CI_REPOSITORY_URL" --token "$RUNNER_TOKEN"
./run.sh

bundle check
bundle exec fastlane lanes

確認ポイント:runnerのコマンドはCIプラットフォームによって異なり、共通のインストーラーではありません。上記の登録方法は、対応するスクリプトを提供するプラットフォームでのみ利用できます。期限前にrunnerの登録を解除し、トークンを無効化してください。

ファイル転送は、リモートデスクトップを開けばドラッグ&ドロップできるとは限りません。クリップボードで扱えるデータ形式やサイズ、ファイル転送の方法は、現在の接続方式によって異なります。SSHやVNCクライアントが必要な場合は、コンソールで接続方法、認証情報、接続先を確認してください。ポートが開放済みだと決めつけないでください。機密ファイルを公開ダウンロード先に置いたり、サポートチケットに添付したりしないでください。

開発環境に合った手順へ

3つのビルド手順。ゴールは「ビルド成功」だけではありません。

まずプロジェクトで固定されたバージョンに合わせて環境を復元し、プラットフォームの依存関係と署名を整えます。以下のコマンドは該当プロジェクトのディレクトリで実行してください。成果物を配布できるかどうかは、署名設定、配布権限、対象プラットフォームの要件にも左右されます。

Flutter:プロジェクトからアーカイブとipaを作成

前提:Flutter SDKのバージョンがプロジェクトの要件に合っており、iOSプロジェクト、プラグインの依存関係、Xcodeツールチェーンが利用可能であること。署名用ファイルとアプリの識別子も対応している必要があります。

flutter doctor -v
flutter pub get
flutter build ipa

まず flutter doctor -v で検出されたiOSツールチェーンの問題を解決してください。依存関係の復元に失敗した場合は、ネットワーク、バージョン制約、プライベートパッケージのアクセス権を切り分けます。前提の問題を隠すためにアーカイブコマンドを繰り返し実行しないでください。

生成される成果物:成功したら、 build/ios/archive 内のアーカイブと、 build/ios/ipa 内のエクスポートファイルを確認します。実際のディレクトリとエクスポート動作は、使用するFlutterのバージョンとビルド出力に従ってください。

アーカイブはできてもipaがない場合は、エクスポートと署名のエラーを確認してください。ビルドが完了しても、インストーラーが自動的にTestFlightへ提出されるわけではありません。

React Native:正しいワークスペースからアーカイブ

前提:Node、パッケージマネージャー、プロジェクトのロックファイルの組み合わせが適切であること。CocoaPodsを使うプロジェクトではiOS依存関係をインストールし、正しいschemeを使っていることも確認してください。

node --version
bundle check
cd ios
bundle exec pod install
open .

Gemfileがある場合は、プロジェクトで指定されたBundler環境を使います。Bundlerを使わないプロジェクトでは、チームの手順に沿って依存関係をインストールしてください。Xcodeでは生成された .xcworkspaceを開きます。Podsの依存関係が含まれないプロジェクトファイルを誤って開かないようにしてください。

生成される成果物:対象のschemeと適切なデバイス向けアーカイブ先を選び、「Product」→「Archive」で .xcarchiveを作成します。その後、Organizerで配布方法に応じてエクスポートまたはアップロードします。

シミュレーターで動作しても、デバイス向けアーカイブが使えるとは限りません。ネイティブモジュールでエラーが出たら、最後の失敗要約だけでなく、最初のコンパイルエラーと該当する依存関係のバージョンを記録してください。

Unity:書き出し後はXcodeで仕上げる

前提:Unityエディターのバージョンがプロジェクトに合い、iOSモジュール、サードパーティ製ネイティブプラグイン、リソースが利用可能であること。必要なエディターライセンスもご用意ください。

xcodebuild -version
xcodebuild -list -project "$EXPORTED_XCODE_PROJECT"

UnityでiOSのビルドターゲットに切り替え、Xcodeプロジェクトを書き出します。IL2CPPを使うプロジェクトでは、生成されたコードをネイティブコンパイルする必要があります。書き出しが終わっただけでは、配布可能なインストーラーにはなりません。

生成される成果物:Xcodeで署名、依存関係、ターゲット設定を整えてからArchiveを実行し、アーカイブを作成します。その後、配布手順に沿ってipaをエクスポートするかアップロードしてください。プラグインがワークスペースを生成した場合は、そのワークスペースを開いて続行します。

大規模プロジェクトでは、メモリと中間ファイル用の空き容量を事前に見積もってください。Apple Silicon M4 Pro / 64GB RAM / 2TB SSDは大規模プロジェクト向けの構成例ですが、ビルド時間を保証するものではありません。

初回ビルドが通ったら、再現できる情報も一緒に保存しましょう。

コミットID、Xcodeとフレームワークのバージョン、依存関係のロックファイル、使用したscheme、ビルドコマンド、成果物の保存先を記録します。公開可能な設定はバージョン管理に含め、署名用秘密鍵とアクセストークンは別途保管してください。次にMacを日単位でレンタルするときは、環境を一から推測せず、この記録から復元しましょう。

デスクトップの遅さとビルドの遅さを切り分ける

画面がカクつくなら接続を、アーカイブが止まるならログを確認。

マウス操作の遅れや画面更新の遅さは、まずネットワークと表示設定を確認します。マウスは正常でもコンパイルが長引く場合は、ビルドログとリソース使用量を調べてください。リモート接続方式を変えても、プロジェクトのエラーが自動で解決するわけではありません。

  1. 01

    ノードとネットワークを確認

    注文に設定されたノードが接続場所に近いか確認し、有線または安定したWi-Fiと比べてください。上り帯域を使い切る同期タスクは一時停止します。ノードを変更する場合は次のセクションを確認し、「ノード変更=既存注文をすぐにデータ損失なく移行できる」と考えないでください。

    注意点:地理的な近さは候補を絞る目安にすぎません。通信事業者の経路、地域間の回線、ローカルの混雑も実際の往復遅延に影響します。

  2. 02

    画面表示の負荷を下げる

    現在のリモート接続画面で選べる範囲で画質、解像度、フレームレートを下げ、不要な動きをオフにします。一度に変更する項目は1つにして、変更前後の状態を記録してください。

    注意点:画面のエンコードや転送の負荷は減らせますが、ネットワークの物理的な往復時間は短縮されず、CPUを使うビルド処理も速くなりません。

  3. 03

    VNCクライアントを比較

    コンソールに接続情報が表示されている場合は、VNCクライアントで同じインスタンスに接続し、操作感を比べられます。ブラウザー接続は手軽にデスクトップへアクセスでき、クライアント接続は接続方式の違いを切り分ける選択肢になります。

    注意点:クライアントによって画面表示やクリップボードの設定は異なりますが、ノードの場所は変わりません。ファイル転送の可否は接続する双方の実装によるため、一律の対応は保証できません。

  4. 04

    エラー発生時の情報を残す

    接続に失敗した場合は、画面に表示されたメッセージ、発生時刻、タイムゾーンを記録します。ビルドに失敗した場合は、最初の意味のあるエラー、実行したコマンド、バージョン情報を残してください。スクリーンショットを撮る前に、パスワード、トークン、証明書の詳細、非公開のプロジェクト情報を隠します。

    注意点:スクリーンショットは切り分けに役立ちますが、コピー可能なエラーテキストの代わりにはなりません。再現手順なしに「遅い」「ビルド失敗」とだけ送らないでください。

ノード情報は選択の目安であり、ご利用の回線での実測値ではありません。

全5ノードの情報です。遅延の目安は記載の対象地域に対するもので、任意の都市からの遅延を保証するものではありません。

ノード → 対象地域 → 往復遅延の目安
ノード対象地域往復遅延の目安
シンガポール東南アジア20~50 ms
東京東アジア30~60 ms
ソウル北東アジア30~50 ms
香港華南・東南アジア20~40 ms
米国東部北米東部・西ヨーロッパ25~35 ms

数値は目安です。実際の遅延は接続ネットワークによって異なります。デスクトップを操作する場合は近くのノードを優先し、ビルドの実行や成果物の回収だけなら、依存関係のダウンロードとファイル転送の条件も考慮してください。

変更前に注文内容を確認

ノードを変える前に、プロジェクトとレンタル契約を分けて考えましょう。

ノードは注文内容の一部です。同じ注文のまま別ノードへ切り替えられることを標準機能とはしておらず、ディスク、接続先、残りの利用期間が自動で移行する保証もありません。変更の可否、料金、データの扱いは、コンソールから注文ごとに確認してください。

確認してから、現在のインスタンスを操作する

注文番号、現在のノード、希望するノード、変更理由を伝え、実行中のビルドがあるかも記載します。注文変更の方法、追加料金の可能性、手順を確認してから進めてください。確認前に環境を削除したり、新しいノードに以前のインスタンスの状態が引き継がれると考えたりしないでください。

別のマシンを新たにレンタルする場合は、新しい注文の構成、期間、現在の空き状況を確認してください。旧注文の終了や更新は、該当する注文と利用規約に従ってください。

新しいインスタンスは新しいMacとして扱う

未コミットのコードを先にプッシュし、ビルド成果物を書き出します。必要な設定、証明書、プロビジョニングプロファイルは別途バックアップしてください。新しいインスタンスではツールのバージョン、アクセス権、署名を改めて確認し、以前のディスクの内容が移行済みだと決めつけないでください。

切り替え後はCIの接続設定を更新し、古いrunnerの登録を解除して、使わなくなったトークンを無効化します。期限後のデータの取り扱いは利用規約とコンソールの案内に従ってください。期限後にデータを復元できると考えず、事前にバックアップしてください。

最初の問い合わせで再現できる情報を伝える

どのマシンで、どの手順で起きたかを一度で伝えましょう。

コンソールにログインしてサポートチケットを作成し、確認が必要な注文を紐付けてください。コンソールのチケットは、インスタンス、接続、初期設定、請求に関する問い合わせに適しています。ログインできない場合は、 support@testmini.com までご連絡ください。

送信前に以下の情報を揃える

  • 注文・ノード:注文番号、マシンのモデル、現在のノード、問題が起きたインスタンス。
  • 時刻・環境:発生日時、タイムゾーン、ローカルのOS、ブラウザーまたはVNCクライアントのバージョン。
  • 操作・結果:どの画面やコマンドから始めたか、期待した結果、実際に表示された内容。
  • エラー・証拠:エラーテキスト、機密情報を隠したスクリーンショット、関連するログ、再現するかどうか。
  • 試したこと:ネットワークの変更、画質の調整、再接続など、試した操作とその結果。

支払いに関する問い合わせでは、注文番号、支払い方法、コンソールに表示されたステータスを記載してください。USDT-TRC20の場合はトランザクションハッシュを提示できます。カードの問題では、カード番号全桁、セキュリティコード、認証コードを送らないでください。

チケット本文はこの順でまとめる

以下の項目をコンソールのサポートチケットに記入してください。プロジェクト全体をアップロードする必要はありません。

対象の特定
注文番号、ノード、マシンのモデル
発生時刻
具体的な日時とタイムゾーン
再現手順
操作の順序、コマンド、エラーテキスト
環境情報
ブラウザー、Xcode、フレームワークのバージョン
確認したこと
試した方法と変化

ログインパスワード、秘密鍵、署名証明書の原本、CI登録トークンは添付しないでください。追加の診断情報が必要な場合は、チケットの案内に従って必要最小限の情報を共有してください。

対応状況はチケットで確認。送信しただけで対応済みとは限りません。

サポート対応は主にアジア太平洋地域の営業時間内に行います。何分・何時間以内に対応するという保証はありません。受付後の返信や進捗はコンソールの記録でご確認ください。追加情報は同じチケットに返信し、問題を再現できる環境も保ってください。マシンの期限が近い場合は、重要なファイルを書き出してから更新を確認してください。

請求確認の対象となる支払い方法は、米ドル決済のUSDT-TRC20と、Stripe経由のVisa / Mastercard / Amexです。実際に利用できる決済手段はバックエンドの表示に従います。支払いの確認には、ブロックチェーン上の承認やカード発行会社の処理に時間がかかる場合があります。スクリーンショットだけでは支払い確認になりません。

サービスのルールも確認

技術的な手順に加えて、レンタル期間とノードも確認しましょう。

接続、ビルド、注文はそれぞれ異なる問題です。関連ドキュメントで前提を確認し、トラブルの調査を続けるか、サポートに問い合わせるか、次のマシンをレンタルするか判断してください。

問題を調べる

最低1日からのレンタル、ブラウザー接続とVNCの違い、追加注文の料金、署名用ファイル、レンタル終了後のデータの扱いを確認できます。

よくある質問を見る

ノードを選ぶ

お住まいの地域と作業内容に合わせて、全5ノードから選べます。遅延の目安は選択の参考情報です。実際の接続品質はネットワークによって異なります。

ノードの選び方を確認

利用規約を読む

長時間のコンパイルを始める前に、料金の計算期間、更新、期限後の取り扱い、利用範囲を確認し、代わりのきかないファイルを事前に書き出してください。

利用規約を読む

ビルド前に環境を確認し、行き詰まったら記録を添えて問い合わせましょう。

注文済みの場合はコンソールから手続きを続けてください。まだレンタルしていない場合は、プロジェクトに合った構成とノードを選びましょう。プロジェクトと成果物のバックアップはご自身で行い、マシンや注文の問題はサポートチケットで確認できます。