SSH接続
ビルドコマンドの実行、ファイル転送、ログ確認に適しています。SSHのデフォルトポートは 22です。インスタンスに別のポートが表示されている場合は、その値を使用してください。
インスタンス詳細でホストアドレスとユーザー名を確認します。初回接続時はホストフィンガープリントを確認してから、自分の公開鍵を設定してください。秘密鍵はローカルに保管し、チケットには添付しないでください。
初回ビルドの例を見るまずコンソールでインスタンスの準備状況を確認し、専有Mac miniに接続します。コマンドラインでビルドし、GUIで環境を確認。CIで繰り返し作業を自動化しましょう。
利用中のインスタンスは接続情報を確認してください。まだレンタルしていない場合は、注文手続きに進めます。接続情報は公開ページには表示されません。
コンソールのインスタンス詳細で、インスタンスID、ノード、準備状況を確認します。パブリックアドレス、ユーザー名、ポート、初期認証情報は、対象インスタンスに表示される値を使用してください。他のマシンの情報を流用しないでください。
ビルドコマンドの実行、ファイル転送、ログ確認に適しています。SSHのデフォルトポートは 22です。インスタンスに別のポートが表示されている場合は、その値を使用してください。
インスタンス詳細でホストアドレスとユーザー名を確認します。初回接続時はホストフィンガープリントを確認してから、自分の公開鍵を設定してください。秘密鍵はローカルに保管し、チケットには添付しないでください。
初回ビルドの例を見るXcodeの起動、Simulatorの確認、GUIの設定に適しています。VNCのデフォルトポートは 5900です。接続先、パスワード、実際のポートはインスタンス詳細で確認してください。
接続後、まずデスクトップを操作できることを確認してください。VNCのパスワードをコードリポジトリに使用しないでください。ネットワーク環境が許す場合は、管理された接続またはSSHトンネル経由でアクセスしてください。
GUIのトラブルシューティングまずコンソールにログインし、インスタンス詳細に表示された接続方法を確認してください。ブラウザーターミナルが利用できる場合は、ブラウザーからHTTPSで接続します。通常は 443番ポートを使用するため、ターミナル用のポートを別途入力する必要はありません。
認証情報はログイン済みアカウントのセッションに紐づいており、誰でも使える公開リンクではありません。この接続方法がインスタンスに表示されない場合は、SSHまたはVNCを使用してください。ターミナルのアドレスを推測して入力しないでください。
インスタンスの接続方法を確認まずログインできることを確認し、次にXcodeのパスとバージョンを確認します。以下は出力形式の例であり、インスタンスのリアルタイムログではありません。セッション名、ビルド番号、所要時間は表示箇所を示すためのものです。
$ ssh -p <SSH_PORT> <USER>@<HOST>
Welcome to MergeMac
$ xcode-select -p
/Applications/Xcode.app/Contents/Developer
$ xcodebuild -version
$ cd <PROJECT_DIRECTORY>
$ xcodebuild -scheme App archive
** ARCHIVE SUCCEEDED **
$ fastlane pilot upload
Successfully uploaded Build 214
山括弧内の値をインスタンス詳細に表示された値に置き換えてください。App はschemeの例です。workspace形式のプロジェクトでは、独自の -workspaceも指定し、schemeが共有されていることを確認してください。
アップロードには有効な署名、エクスポート設定、アップロード認証情報も必要です。この例ではプロジェクトでfastlaneが設定済みであることを前提としています。Build 214は納品完了の証明ではありません。アップロードツールの実際の出力を確認してください。
MergeMacは専有物理ノードを提供します。CIのリポジトリ権限、ジョブ設定、認証情報はお客様が管理します。まず同じ実行ユーザーでターミナルからアーカイブまで成功させてからランナーを登録し、環境の問題をジョブの割り当ての問題と混同しないようにしましょう。
mergemac、macos、m4。workflowの runs-on でこれらのラベルを指定します。信頼できない外部からのマージリクエストで、署名素材を保持するランナーを直接使わせないでください。リリース用ジョブと通常の検証ジョブは、別々に権限を設定してください。
macos、xcode などを設定し、ジョブで明示的に指定します。リリース用ランナーを使えるのは、保護されたブランチまたはタグに限ってください。tokenの更新時またはレンタル期間の終了前に、CIプラットフォームでランナーの認可を取り消してください。ノード上のファイルを削除しても、プラットフォーム側の認可は自動で取り消されません。
ここで説明する用語はリソースや接続方法を示します。追加のソフトウェアライセンスを意味するものではなく、複数台のマシンが自動的に1台の高性能なMacに統合されるわけでもありません。
失敗した時刻とタイムゾーン、インスタンスID、エラー全文、直近の変更を記録します。一度に変更する項目は1つにして、同じ方法で再検証してください。再インストールは最初の手段ではありません。
まずコンソールでインスタンスの準備状況を確認し、次にSSH接続を試します。SSHで接続できるのにGUIに問題がある場合は、ログイン・ログアウト中、またはGUIセッションの切り替え中でないか確認し、クライアントを終了してから再接続してください。
画面が真っ暗なままの場合は、クライアントのバージョンとスクリーンショットを保存してチケットを送信してください。動作確認のためにファイアウォールを無効にしたり、何度も強制再起動したりしないでください。実行中のビルドが中断されるおそれがあります。
次のコマンドをそれぞれ実行します。 xcode-select -p と xcodebuild -versionです。対話セッションとrunnerの両方で確認してください。複数のバージョンをインストールしただけでは、コマンドラインで使うバージョンは切り替わりません。
個別のジョブでは DEVELOPER_DIR を使って対象XcodeのDeveloperディレクトリを指定できます。マシン全体のデフォルトを変更して他のジョブに影響を与えずに済みます。ディレクトリが存在しない場合は、まずインストール先を確認し、例の名前をそのまま使わないでください。
次のコマンドで df -h 空き容量を確認し、DerivedData、archive、デバイスデータ、Simulator runtimeを調べます。残しておくビルド成果物を先にエクスポートし、Simulatorを使用中のジョブを停止してください。
xcrun simctl delete unavailable を実行すると、利用できないSimulatorデバイスの記録を削除できます。すべてのruntimeが削除されるわけではありません。削除前に対象を確認し、プロジェクトのディレクトリやキーチェーンに対して再帰削除を実行しないでください。
証明書の期限切れ、プロビジョニングプロファイルの無効化、秘密鍵の不足、キーチェーンのロック状態を切り分けます。証明書の有効期限を確認し、チームとbundle identifierが一致することを確かめてから、CIの実行ユーザーが該当する秘密鍵を読み取れるか確認してください。
証明書を更新したら、プロビジョニングプロファイルと保護された変数も更新し、同じschemeで再検証してください。チケットにはエラーコードと機密情報を伏せたログだけを添付し、秘密鍵、証明書のエクスポート用パスワード、署名素材一式は送信しないでください。
OSの再インストールと、レンタル期間終了後のデータ消去は別の処理です。レンタルしたノードを、ソースコード、署名素材、ビルド成果物の唯一の保存先にしないでください。
コンソールのインスタンス詳細を開き、OS再インストールを実行する前にCIのジョブ割り当てを停止してください。プロジェクト、成果物、必要な設定をエクスポートし、別の場所でバックアップを開けることを確認します。
初期化には通常数分かかります。実際の所要時間と完了状況はコンソールの表示を確認してください。処理中に何度も実行しないでください。完了後は接続情報を再確認し、ホストフィンガープリントを確認してから開発環境を再構築します。
再インストール後はSSH、Xcode、依存関係、runnerを再検証してください。以前のサービス設定がそのまま残っているとは限りません。
レンタル期間が終了すると、ノードはデータ消去とシステム初期化の工程に進んだ後、次の利用者向けに準備されます。必要なデータは期限前にエクスポートしてください。期限後も接続できることをバックアップ代わりにしないでください。
コードリポジトリのデプロイキー、CI runner token、アップロード用認証情報も忘れずに失効させてください。ディスクの消去でノード内のデータは処理されますが、外部システムのアクセス権限は取り消されません。
データの取り扱いやセキュリティ上の境界について質問がある場合は、まずセキュリティ情報を確認し、コンソールのチケットから対象インスタンスについてお問い合わせください。
レンタル中のインスタンスに関する問題は、注文とノードを紐づけて確認できるコンソールのチケットからお問い合わせください。ログインできない場合、レンタル前のご相談、セキュリティ報告はサポートメールにお送りください。同じ問題を複数の窓口から重複して送信しないでください。
ログイン後、チケットページでインスタンスID、影響範囲、再現手順を入力してください。既存の問題をエスカレーションする場合は、同じチケットに情報を追加し、調査記録を一つにまとめてください。
推奨形式:発生時刻とタイムゾーン → 期待する結果 → 実際のエラー → 試した操作。機密情報を伏せた最小限のログを添付し、ソースコード一式はアップロードしないでください。
ログインしてチケットを送信アカウントにログインできない場合は、メールの件名に問題の種類を記載し、登録メールアドレスと照合に使える注文番号をお知らせください。アカウントのパスワードやカード番号は送信しないでください。
サポートはアジア太平洋地域と米国東部のタイムゾーンを考慮して対応します。最初の返信までの時間は問題の重要度と受付状況によって異なります。進捗はチケットまたはメールの返信をご確認ください。公表されていない平均対応時間はお約束していません。
support@mergemac.com利用中のマシンがある場合は、まずコンソールで状態を確認してください。ビルド用ノードを追加する場合は、レンタル構成を選択できます。いずれも専有の物理Mac miniで、仮想マシンではありません。