起動と納品
支払い後の進捗、接続情報の確認場所、ステータスと接続情報の確認方法。
納品の流れを確認納品は注文情報、接続はポート、ビルドはログを確認。キーワードを検索して、すぐ実行できる手順を見つけましょう。
キーワードを入力して該当項目を表示します。検索後にEnterキーを押すと、最初の回答に移動します。
利用中のマシンで問題が起きた場合は、同じチケットに情報を追加してください。継続して調査できます。
問題を4種類に分けて対応します。まずマシンに接続できるか確認し、その後ツールチェーンと署名を調べれば、ネットワークの問題をビルドエラーと誤認せずに済みます。
支払い、注文処理、マシンの納品はそれぞれ別の段階です。支払い後はまず注文を確認してください。決済画面だけで、マシンに接続できる状態だと判断しないでください。
コンソールで注文番号、モデル、利用期間、支払い状況を確認してください。オンチェーン送金やカード決済を行っただけでは、注文ステータスの更新が完了したとは限りません。
該当する注文またはインスタンスの詳細を開き、現在の処理状況を確認してください。納品までの時間と実際の利用可能状況は、コンソールに表示される最新情報をご確認ください。
納品後、インスタンスの詳細でホストアドレス、ユーザー名、SSHポート、初回ログイン情報を確認できます。そのインスタンスに表示された情報を使い、別の注文の設定値を流用しないでください。
今回の支払いに対応する注文を確認し、コンソールの支払い状況を照合してください。支払いが確認済みでもインスタンスが処理中の場合は、注文番号、支払い方法、決済証明の番号、現在のステータスをチケットに記載してください。納品状況を確認できます。
USDT-TRC20で支払った場合はトランザクションハッシュを、カードで支払った場合は決済記録番号をお手元に保管してください。カード番号全桁、セキュリティコード、コンソールのパスワードは送信しないでください。同じ支払いに対して注文を何度も作成しないでください。
接続がタイムアウトする場合:インスタンスが納品済みで接続可能な状態か確認し、ホストアドレスとポートを一字ずつ照合してください。ローカルネットワーク、プロキシ、アクセスルールも確認します。タイムアウトは認証前に発生するため、公開鍵を何度も変えてもネットワーク経路の問題は通常解決しません。
Permission denied (publickey) が表示される場合:ユーザー名、使用する秘密鍵、コンソールに登録した公開鍵が対応しているか確認してください。アップロードするのは公開鍵ファイルの内容です。秘密鍵は手元に保管し、サポート担当者には送らないでください。以下のHOST、PORT、USERは、インスタンスの詳細に表示されている実際の値に置き換えてください。
ssh -vv -o IdentitiesOnly=yes \
-i ~/.ssh/id_ed25519 \
-p PORT USER@HOST
診断ログを送る前に、ホストアドレスや個人のパスなどの機密情報を削除してください。エラーの種類と認証の段階は残します。ホストフィンガープリントが変わった場合は、直前にOSを再インストールしたか確認し、フィンガープリント検証を安易に無効にしないでください。
まずインスタンスの詳細にあるデスクトップ接続情報を確認し、同じマシンに接続しているか確かめてください。リモートデスクトップとSSHは別々の接続経路です。SSHで接続できても、確認できるのはSSH経路が通じていることだけです。
接続ガイドに従って、デスクトップサービス、アクセス用ポート、トンネルの接続先を確認してください。画面が真っ黒になる場合は、クライアントに表示されたメッセージと発生した手順を記録してから、解像度や画質を下げ、表示の問題か認証の失敗かを切り分けます。再起動する場合は、実行中のアーカイブやテストを先に停止してください。
接続設定と移行の順序については、 SSHとリモート接続ガイドをご覧ください。デスクトップへの接続は、ログイン後にインスタンスの詳細から行えます。
まず失敗時の状態を記録し、Xcode、Scheme、依存関係、対象プラットフォームを確認してください。ログ末尾の失敗概要は結果にすぎません。最初に出たコンパイルまたは署名のエラーから調べます。
現在のコミット、ビルドコマンド、Xcodeのバージョンを記録し、Schemeが存在し、アーカイブ用に設定されていることを確認してください。コマンドラインから実行する場合は、選択されている開発ツールのディレクトリも確認します。GUIで開いたXcodeとCIが別のバージョンを使っている場合があります。
xcode-select -p
xcodebuild -version
xcodebuild -list -workspace App.xcworkspace
App.xcworkspaceとAppは、プロジェクトで実際に使っている名前に置き換えてください。workspaceを使うプロジェクトで誤ってprojectを指定しないようにします。依存関係の復元漏れ、共有Schemeの未コミット、Deployment TargetとSDKの不一致などで、アーカイブ前に失敗することがあります。
set -o pipefail
xcodebuild \
-workspace App.xcworkspace \
-scheme App \
-destination 'generic/platform=iOS' \
-archivePath "$PWD/output/App.xcarchive" \
archive 2>&1 | tee archive.log
この手順で生成されるのは.xcarchiveで、配布可能なIPAではありません。アーカイブには成功して書き出しに失敗した場合は、署名とプロビジョニングプロファイルを確認してください。コンパイルの依存関係を最初から調べ直す必要はありません。
ツールチェーンの切り替え後にモジュールキャッシュの不整合や生成ファイルの不一致が起きた場合、または同じコミットがクリーンな環境では成功し、古いキャッシュがある環境では失敗する場合に、キャッシュの影響を確認します。まずそのプロジェクトのビルドを停止し、ログを保存してください。ユーザーディレクトリ全体を削除対象にしないでください。
より安全に確認するには、今回のビルド専用に新しいプロジェクトディレクトリを指定します。古いディレクトリは調査できるよう残しておきます。新しいディレクトリでも失敗する場合は、キャッシュを繰り返し削除するのではなく、ソースコード、依存関係、設定を確認してください。
xcodebuild \
-workspace App.xcworkspace \
-scheme App \
-derivedDataPath "$PWD/.build/DerivedData-check" \
-destination 'generic/platform=iOS' \
build
ビルドが復旧したら、不要になった古いディレクトリをプロジェクト単位で確認して削除します。ソースコード、署名ファイル、アーカイブ成果物、DerivedDataを分けて保管すると、誤削除のリスクを減らせます。
まず、実行するのがデバイス向けアーカイブかシミュレーターテストかを確認してください。デバイス向けarchiveではiOSデバイスのdestinationを指定し、シミュレーターテストでは使用中のXcodeに対応したランタイムとデバイスが必要です。配布用アーカイブの対象にシミュレーターを指定しないでください。
xcrun simctl list runtimes
xcrun simctl list devices available
xcodebuild -showdestinations \
-workspace App.xcworkspace -scheme App
ランタイムがない場合は、Xcodeの設定から該当するプラットフォームコンポーネントをインストールしてください。対応するXcodeのバージョンでは、以下のコマンドでiOSプラットフォームコンポーネントをダウンロードすることもできます。まず空きディスク容量を確認し、コマンドラインで使用するXcodeが意図したバージョンであることを確かめてください。
xcodebuild -downloadPlatform iOS
インストール後にdestinationを再表示し、実際に利用可能な対象をCIに設定してください。別のマシンのシミュレーターIDを使い続けないでください。
.p12は証明書と秘密鍵を提供し、プロビジョニングプロファイルはアプリと機能を制限し、API Keyは認証が必要なAPIで使います。これらは相互に代用できません。
.p12を安全な経路でマシンに転送し、ビルド用のキーチェーンに読み込んでください。ファイルに対応する秘密鍵が含まれていることも確認します。証明書だけで秘密鍵がない場合、コード署名はできません。読み込みパスワードはCIのシークレット変数から渡し、リポジトリ、コマンドスクリプト、チケットには記載しないでください。
security find-identity -v -p codesigning
実際にrunnerを実行するユーザーの環境で確認してください。デスクトップのユーザーに証明書が見えていても、別のサービスユーザーから見えるとは限りません。キーチェーンがロック解除されているか、そのユーザーの検索リストに登録されているか、署名プロセスにアクセス権があるかも確認してください。
ビルド専用のキーチェーンを使い、タスク終了後は手順に従ってロックしてください。サポートが必要な場合は、情報を伏せたID確認結果とエラーメッセージのみを共有してください。.p12、秘密鍵、読み込みパスワードは送らないでください。
Bundle ID、Team ID、書き出しの用途、entitlementsの4点を一致させてください。拡張機能を含むアプリでは、署名が必要な各Targetに対応する設定が必要です。メインアプリの設定が一致していても、拡張機能も一致するとは限りません。
プロビジョニングプロファイルが有効か、使用中の証明書が含まれているか、書き出し設定の署名方式がプロジェクトと一致するかも確認してください。開発・テスト用とリリース配布用では設定が異なります。ファイル名が似ているだけで選ばないでください。
書き出し段階のログと、機密情報を削除したExportOptions.plistを保存してください。チケットには失敗したのがarchiveかexportArchiveかを明記すると、調査範囲を絞り込めます。
.p8ファイルはアクセス制限のあるディレクトリに保存し、Key ID、Issuer ID、ファイルパスはCIのシークレット変数から渡します。アップロードや自動化に必要な権限だけを付与し、キーの内容をlaneに直接記載したり、リポジトリにコミットしたりしないでください。
API Keyは、対応する認証方式を使ったアップロードや管理に利用できますが、ローカルでのコード署名に必要な証明書と秘密鍵の代わりにはなりません。TestFlightへのアップロードに失敗した場合は、ローカル成果物の署名エラーか、API認証・アプリの権限・バージョン情報の問題かを切り分けてください。
キーをローテーションしたらrunnerの設定も更新し、古い参照を削除してください。サポートを依頼する際は、機密情報を除いたエラーコードと実行段階を共有してください。.p8ファイルは送らないでください。
署名リポジトリへの読み取り権限、復号パスフレーズ、配布種別、アプリ識別子、チーム設定を確認してください。通常のCIでは、準備済みの署名資産を読み取り専用で取得する方法を優先し、実行のたびに証明書を作成・変更しないようにします。
lane :prepare_signing do
match(
type: "appstore",
readonly: true,
app_identifier: ENV.fetch("APP_IDENTIFIER"),
team_id: ENV.fetch("TEAM_ID")
)
end
リポジトリの認証情報と復号パスフレーズは別々に管理してください。取得に失敗する場合はリポジトリ認証、復号に失敗する場合はパスフレーズを確認します。インストールできても署名に失敗する場合は、キーチェーンとプロビジョニングプロファイルを確認してください。これらの問題をまとめて「matchが動かない」と扱わないでください。
日・週・月・四半期ごとに料金が設定されています。日額を他の期間に単純換算することはできません。どちらのモデルも専有物理マシンで、仮想マシンではありません。実際の注文金額は決済明細をご確認ください。
| モデル・構成 | 日 | 週 | 月 | 四半期 |
|---|---|---|---|---|
| OSXBuild Bake M4 M4 / 16GB / 256GB | $20.1 | $54.2 | $100.3 | $272.8 |
| OSXBuild Bake M4 Pro M4 Pro / 64GB / 2TB | $60.3 | $162.9 | $301.6 | $820.4 |
マシンを連続して使う予定の期間に合わせてプランを選び、同じ期間のモデル料金と追加オプションを確認してください。利用期間の開始・終了時刻は注文に表示される情報が基準です。「月」は暦月の残り日数を意味するわけではありません。
追加SSDとThunderbolt 5の並列接続には、それぞれ4種類の期間料金があります。コンフィギュレーターで必要な項目を選んでから、決済明細をご確認ください。基本モデルの料金だけで最終請求額を判断しないでください。料金一覧と選び方については、 プランと追加オプションをご覧ください。
コンソールにログインし、該当するサブスクリプションまたは注文を開いて、期限、利用できる更新操作、請求内容を確認してください。支払い後は、新しい有効期限が反映されていることを再確認します。決済ページを開いたり、支払いを送信したりしただけで更新が完了したとは限りません。
自動更新が有効か、未払いの請求があるかは、該当する注文の設定とステータスで確認してください。マシンを使い続ける場合は、早めに更新して結果を確認します。レンタルを終了する場合は、ソースコード、成果物、必要な設定を事前にエクスポートしてください。
利用期間が終了すると、マシンは回収処理に入り、ディスクが安全に消去されたうえでOSが再インストールされます。ノードを唯一のバックアップ先にしないでください。期限後にローカルファイルを取り出せることを前提にしないでください。
支払い方法はUSDT-TRC20とVisa / Mastercard / Amex(Stripe経由)のみです。すべて米ドル(USD)で決済されます。実際に利用できる決済ゲートウェイは、バックエンドから返される情報をご確認ください。
USDT-TRC20で支払う場合は、決済画面のネットワーク、送金先アドレス、金額を一つずつ確認してください。以前の注文の支払い情報を使い回さないでください。カード払いの場合は、決済ゲートウェイの案内に従って認証を完了し、コンソールに戻ってステータスを確認します。
決済エラーについて問い合わせる際は、注文番号、選択した支払い方法、機密情報を除いたエラーメッセージ、取引番号をお知らせください。クレジットカード決済はStripeが処理するため、チケットやメールにカード番号全桁やセキュリティコードを記載する必要はありません。
再現できる手順は、「ビルドに失敗した」という一言より役立ちます。実行中のタスクがある場合は、再起動や設定変更の前に現在の状態を保存してください。
まずビルドとテストを停止し、ログと未コミットのファイルを保存してからマシンを再起動してください。再起動の前後で何が変わったかを記録します。中断できないタスクがある場合は、まだ再起動していないこととその理由をチケットに記載してください。
現在のインスタンス情報と照合し、ホスト、ユーザー名、ポート、鍵の組み合わせを確認してください。具体的なエラーメッセージを共有し、秘密鍵や初回ログインパスワードは送らないでください。
ログの末尾50行と、最初の関連エラーの前後を添付し、コマンド、Xcodeのバージョン、コミット識別子を記載してください。ログが長い場合は、コンソールのチケットに添付し、トークンや署名用の秘密情報を削除してください。
注文番号、ノード、問題が発生した日時とタイムゾーン、期待した結果、実際の結果を記載してください。最後に正常動作したときの状況も添えると、基本情報を何度も確認する手間を減らせます。
ビルド成果物に影響を与えず、ログの末尾を表示します:
tail -n 50 archive.log
証明書の秘密鍵、.p12のパスワード、.p8ファイル、アクセストークン、コンソールのパスワードをサポート資料に含めないでください。
注文済みのマシンや故障については、コンソールにログインしてチケットを送信してください。購入前の相談、ログインできない場合、連絡先情報の追加が必要な場合は、次のメールアドレスにご連絡ください: support@osxbuild.com。
サポートはアジア太平洋地域と米国西海岸のタイムゾーンで連携して対応します。返信状況はチケットの記録またはメールでご確認ください。お問い合わせの際はタイムゾーンと対応可能な時間帯を記載し、新しい情報は元のチケットに追加してください。
お問い合わせ案内では、相談内容ごとに必要な情報をご案内しています。マシンは365日稼働していますが、チケットへの返信時間とノードの稼働時間は異なります。