初めての方向けガイド

契約から
初回
アーカイブまで

専有のApple Silicon物理ノードをレンタルし、接続、ツールチェーン、ビルドを順番に確認しましょう。まず1つのプロジェクトで動作を確かめてから、チームのCIに接続します。

2つのモデル、5つのノード、1日$21.2から。物理マシンをまるごと専有できます。提供状況と実際の利用可否は、コンソールの最新情報をご確認ください。

ステップ1 / コンピューティングリソースを選ぶ

ワークロードに合わせてノードを選ぶ

通常のコンパイルや初回検証にはArm Line M4がおすすめです。モデル推論や大容量のユニファイドメモリが必要な場合はArm Grid M4 Proをお選びください。メモリの必要量はプロジェクトのフォルダサイズだけでなく、並列タスクやツールチェーンの使用量も考慮して判断しましょう。

Arm Line M4

M4 / 16GB / 256GB

初回のXcodeビルド、単一のCIビルドジョブ、一時的なiOSアプリのビルドに適しています。実際のプロジェクトで依存関係のインストール、キャッシュ容量、ビルド手順を確認してください。

1日$21.2

Arm Line M4をレンタル

Arm Grid M4 Pro

M4 Pro / 64GB / 2TB

モデル推論、大容量のビルドキャッシュ、メモリを多く使うワークフローに適しています。特定のモデルが動作するかどうかは、量子化方式、コンテキスト長、実行パラメーターを含めてご確認ください。

1日$59.8

Arm Grid M4 Proをレンタル

どちらのモデルも5つのノードで提供

シンガポール、日本(東京)、韓国(ソウル)、香港、米国東部。画面を操作する場合は、チームの所在地からノードまでのネットワーク経路を考慮しましょう。無人ビルドでは、コードの取得、依存関係のダウンロード、成果物の転送も確認が必要です。地理的な距離は目安であり、実測レイテンシーを示すものではありません。

初めてのレンタルでは、まず日単位で契約し、同じプロジェクトで一連の手順を実行してから、長期契約を検討しましょう。4種類の契約期間と追加オプションの料金は、プランページをご覧ください。

ステップ2 / 支払いと提供状況

支払い後、まず注文状況を確認

お支払いはUSDT-TRC20、Visa / Mastercard / Amex(Stripe経由)のみ対応しています。すべて米ドル(USD)で決済されます。実際に利用できる決済ゲートウェイは、バックエンドからの応答をご確認ください。

  1. 01

    注文内容を確認

    モデル、契約期間、ノード、追加オプションを確認してください。USDTで支払う場合はTRC20ネットワークを選択し、決済画面に表示された送金先情報と金額を一つずつ確認します。以前の注文の支払い情報は使用しないでください。

  2. 02

    決済確認を待つ

    オンチェーン決済には確認時間が必要で、着金速度はネットワークの状況によって異なります。カード決済は決済結果と注文状況をご確認ください。画面がすぐに更新されなくても再度支払わないでください。また、決済完了はノードの提供完了を意味するものではありません。

  3. 03

    接続情報を確認

    コンソールで提供状況を確認します。ノードが利用可能になったら、IPアドレス、ログインユーザー名、初期パスワード、接続ポートを確認してください。支払い証明と注文状況が一致しない場合は、注文番号と取引ハッシュまたは支払い証明を添えてサポートチケットを送信してください。

ステップ3 / 初回接続

まずSSH接続を確認し、次にGUIデスクトップを開く

以下のコマンドはお使いのローカルターミナルで実行します。コンソールに表示されたアドレス、ポート、ユーザー名を入力してください。ドキュメント内の例を接続情報として使わないでください。

SSHセッションを開始

read -r -p "Node IP: " NODE_IP
read -r -p "SSH port: " SSH_PORT
read -r -p "Login user: " NODE_USER
ssh -p "$SSH_PORT" "$NODE_USER@$NODE_IP"

初回接続時にホストフィンガープリントが表示されます。信頼できる方法で照合してから接続を承認してください。保存済みのフィンガープリントが変わった場合は、ノードの再インストールや交換が行われたか確認し、検証を省略しないでください。

リモートで現在のユーザーのパスワードを変更

whoami
hostname
passwd

passwd クラウドMacのSSHセッションで実行します。画面の指示に従って現在のパスワードと新しいパスワードを入力してください。入力中の文字は表示されません。他のサービスと同じパスワードを使ったり、ビルドログに記録したりしないでください。

VNCクライアントの設定方法

項目入力する内容確認方法
サーバーアドレスコンソールに表示されたノードのIPアドレス現在の注文に対応するものを入力してください。ローカルPCのアドレスではありません。
ポートコンソールに表示されたVNCポートクライアントにポート専用の入力欄がある場合は、別々に入力してください。ポート番号を推測しないでください。
認証情報コンソールに表示されたGUI接続用の認証情報VNCパスワードとSSHパスワードが常に同じとは限りません。
初期画面設定低めの解像度から始めるまず画面表示と入力が正常に動作することを確認し、ネットワーク帯域に応じて画質を上げてください。

macOSでは、システム標準の画面共有も利用できます。ログインパスワードを変更した後、提供時の案内に従ってGUI接続の認証情報も更新が必要か確認してください。VNCサービスを信頼できないネットワークに直接公開しないでください。

ステップ4 / ビルド環境を準備

初回ビルドの前にツールチェーンを確認

以下のコマンドはクラウドMac上で実行します。まずシステムとインストール済みツールを確認し、不足しているコンポーネントをインストールしてください。例をそのまま実行するために、チームでバージョンを固定しているXcode、Ruby、依存関係を変更しないでください。

1. システムとXcodeを確認

sw_vers
uname -m
df -h /
ls /Applications
xcode-select -p
xcodebuild -version

xcode-select 単体のコマンドラインツールを指している場合、Xcode本体が利用可能とは判断できません。Xcode本体が未インストールの場合は、チームのライセンス範囲内のインストーラーを用意して解凍し、 /Applicationsに配置してください。ディスク容量には、解凍、依存関係、アーカイブ成果物の分も必要です。

2. Xcode本体を指定して初期設定

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -license
sudo xcodebuild -runFirstLaunch
xcodebuild -version
xcodebuild -showsdks

上記の例では、アプリ名を Xcode.appとしています。複数のバージョンをインストールしている場合は、実際のパスに変更してください。ライセンスに同意する前に規約を確認しましょう。他のタスクのツールチェーンを変更したくない場合は、単一のビルドに限り DEVELOPER_DIR を設定して、使用するバージョンを指定できます。

3. Homebrew、Ruby、Fastlaneを確認

command -v brew
brew --version
ruby --version
bundle --version

Homebrewが未インストールの場合は、チームで承認された手順を使ってください。出所が不明なリモートインストールスクリプトを貼り付けて実行しないでください。Apple Siliconで一般的なインストール先は /opt/homebrewですが、実際の出力を確認してください。インストール済みなのに現在のセッションから見つからない場合は、環境を読み込みます。

eval "$(/opt/homebrew/bin/brew shellenv)"
brew install ruby
export PATH="$(brew --prefix ruby)/bin:$PATH"
gem install bundler
bundle install
bundle exec fastlane --version

後半の4つのコマンドはプロジェクトのディレクトリで実行します。リポジトリにFastlaneの依存バージョンを固定する Gemfile とロックファイルがあることを前提としています。これらのファイルがない場合は、先にチームで依存バージョンを決め、ロックファイルをコミットしてからインストールしてください。管理者権限でシステムのRubyにビルド依存関係をまとめてインストールしないでください。

4. まず署名なしのアーカイブを検証

read -r -p "Workspace path: " WORKSPACE
read -r -p "Shared scheme: " SCHEME
xcodebuild -list -workspace "$WORKSPACE"
xcodebuild \
  -workspace "$WORKSPACE" \
  -scheme "$SCHEME" \
  -destination 'generic/platform=iOS' \
  -archivePath "$HOME/BuildArtifacts/FirstBuild.xcarchive" \
  CODE_SIGNING_ALLOWED=NO \
  archive

まずプロジェクトのディレクトリに移動して、プロジェクトで指定された依存関係をインストールし、schemeが共有されていることを確認します。 .xcodeproj のみを使用するプロジェクトでは、 -project に置き換えて -workspaceを指定してください。このコマンドはコンパイルとアーカイブの流れを検証するためのものです。配布可能な署名済みパッケージは生成されず、署名を必要とするすべてのビルドスクリプトの実行を保証するものでもありません。

ステップ5 / 自動化を導入

ローカルコマンドが動いてからランナーを登録

GitHub ActionsとGitLab Runnerから、利用するコードプラットフォームに合ったものを選びます。まず信頼できるブランチでジョブを実行し、サービスユーザー、環境変数、キーチェーンへのアクセスを確認してから、本番のパイプラインに切り替えてください。

GitHub Actions:ランナーの登録とユーザーサービスのインストール

リポジトリまたは組織のランナー設定でmacOSとARM64を選択し、プラットフォームの最新の手順に従ってパッケージをダウンロード、検証し、専用ディレクトリに解凍します。以下のコマンドは解凍先で実行してください。登録URLと有効期間の短いトークンは、現在の設定ページから取得します。

read -r -p "Repository or organization URL: " RUNNER_URL
read -r -s -p "Registration token: " RUNNER_TOKEN
printf '\n'
./config.sh \
  --url "$RUNNER_URL" \
  --token "$RUNNER_TOKEN" \
  --labels armvnc,macos,arm64
unset RUNNER_TOKEN
./svc.sh install
./svc.sh start
./svc.sh status

ワークフローでは runs-on: [self-hosted, macOS, ARM64, armvnc]を指定し、プラットフォームに表示された実際のラベルを確認してください。ユーザーサービスの起動はログインセッションに関係します。インストール後、再ログインや再起動後に復旧することを確認し、登録に成功したからといって、どの状態でもジョブが実行されるとは考えないでください。

GitLab Runner:shell executorを登録

まずプロジェクトまたはグループの設定でランナーを作成し、認証トークンを取得します。Homebrewを設定済みの場合は、ランナーをインストールして対話形式の指示に従って登録できます。サービスは現在のユーザーで実行し、ビルドファイルと認証情報もそのユーザーが管理するようにしてください。

brew install gitlab-runner
read -r -p "CI server URL: " CI_SERVER_URL
read -r -s -p "Runner authentication token: " RUNNER_TOKEN
printf '\n'
gitlab-runner register \
  --url "$CI_SERVER_URL" \
  --token "$RUNNER_TOKEN" \
  --executor shell \
  --description "ArmVNC macOS ARM64"
unset RUNNER_TOKEN
gitlab-runner install
gitlab-runner start
gitlab-runner status
gitlab-runner verify

プラットフォームの設定でラベルと保護ブランチのルールを設定し、パイプラインのtagsをランナーのラベルと一致させてください。ユーザーサービスは通常ログインセッションに依存します。現在のRunnerのバージョンに対応する説明に従ってLaunchAgentと起動動作を確認し、別のサービス管理方法で同じインスタンスを重複起動しないでください。

この4項目をCIの最初のジョブに追加

  1. 次のコマンドの出力 whoami、xcode-select -p 、 xcodebuild -versionを確認し、ジョブが別の環境で実行されていないことを確かめます。
  2. ツールチェーンのPATHを明示的に読み込みます。バックグラウンドサービスは、対話型ターミナルのシェル設定を読み込まない場合があります。
  3. まず署名なしのビルドを実行し、その後、管理されたキーチェーンと署名の手順を設定します。ログに秘密情報、パスワード、トークンを出力しないでください。
  4. 成果物の転送とクリーンアップのルールを設定します。公開されている未審査のコードを、署名情報を保持するランナーで直接実行しないでください。

ノードは年間365日稼働しますが、CIプロセスの管理はお客様自身で行います。ログアウト、システム更新、再起動の後は、ランナーサービス、ネットワーク、署名環境が復旧していることを確認してください。契約終了前にプラットフォームからランナー登録を解除し、認証情報を失効させ、成果物を転送してください。

用語を操作内容に置き換える

8つの用語で、提供と接続を理解する

用語の重要性を判断するときは、リソースの所有、接続方法、タスクの実行、複数台での連携のどの操作に影響するかを確認しましょう。

物理ノード
データセンターにある実際のMacです。コンソールにはそのマシンへの接続情報が表示されます。ローカルPCの開発環境ではありません。
専有物理マシン
1件の注文でMac 1台の計算リソースとストレージを専有します。タスクの並列実行、依存関係、キャッシュはお客様自身で管理してください。
仮想マシンではない
実際の物理デバイスが提供され、macOSをネイティブに利用できます。ワークフローではGUIとコマンドラインの両方を使用できます。
VNC
リモートでGUIに接続するためのプロトコルです。異なるOSからMacのデスクトップを表示・操作できます。使用感はネットワークと画質設定によって異なります。
画面共有
macOSに標準搭載されたGUIのリモート接続機能です。Macのクライアントを使う場合は、提供された接続情報でノードのデスクトップに接続できます。
セルフホストランナー
お客様が登録・管理するCI実行ノードです。コードプラットフォームからタスクが割り当てられ、クラウドMac上のランナープロセスがビルドを実行します。
ユニファイドメモリ
Apple SiliconでCPUとGPUが共有するメモリです。モデル、ビルドタスク、システムプロセスが同じメモリを使用します。
Thunderbolt 5による接続
Thunderbolt 5で複数のデバイスを接続する追加オプションです。料金はデバイスごとに発生します。複数のMacのメモリが自動的に1つのアドレス空間に統合されるわけではなく、タスクはお客様自身で編成する必要があります。
次のステップ / 確認結果に応じて進める

ビルドが通ったら、手順を標準化

検証済みのXcodeバージョン、依存関係のロックファイル、ビルドコマンドをリポジトリに記録してください。問題が発生したら、接続、ツールチェーン、プロジェクトのどの層で起きているかを切り分け、再現に必要な最小限の情報を添えて相談しましょう。

GUI接続を調整

VNC、画面共有、SSHの用途を確認し、解像度、トンネル接続、切断後の再接続を検証します。ここでは接続方法を説明しており、リモート操作の窓口ではありません。

リモート接続ガイドを読む

長期利用の構成を決める

実際のプロジェクトでメモリとディスクの使用量を確認し、4種類の契約期間とストレージの追加オプションを比較して、常時稼働CIに適した契約方法を選びましょう。

レンタルプランを確認

未完了の手順を特定

利用開始、接続、支払い、稼働率に関する問題をご確認ください。サポートチケットには注文番号、ノードID、発生日時、機密情報を除いたログを添付してください。パスワードは記載しないでください。

ヘルプセンターを開く

実際のプロジェクトで初回チェックを完了

まずは日単位で契約し、接続、依存関係、アーカイブを確認しましょう。お支払いはUSDT-TRC20、Visa / Mastercard / Amex(Stripe経由)のみ対応。USDで決済されます。