リモート Mac ビルド

Windows マシンからリモート Mac でコンパイルの一部を実行する方法について説明します。

前提トピック

このページは以下のトピックへの知識があることを前提にしています。まず以下のトピックの内容についてご確認をお願いします。

iOS 用に署名つきビルドを作成するには Mac と Apple Developer アカウントが必要です。ただし、Windows マシンを主に使用するチームの場合、Unreal Engine 4 は Windows PC と最大 2 台の Mac PC の間に SSH 接続 を確立して iOS ビルドをリモートで作成することが可能です。そのためには、SSH 接続を Mac 上で受信可能にし、SSH キーと資格情報を Windows 端末で設定する必要があります。本ガイドでは、接続を設定し、リモート ビルドを実行するプロセスについて手順を追って概説します。

プライマリ リモート Mac とセカンダリ リモート Mac

リモート Mac の設定は、[Remote Build (リモート ビルド)] セクションの [Project Settings (プロジェクト設定)] > [Platforms (プラットフォーム)] > [iOS] にあります。

iOS 向けリモート ビルド設定

このセクションは、[Remote Build Options (リモート ビルド オプション)] (プライマリ リモート ビルド Mac 向け) と [Secondary Remote Build Options (セカンダリ リモート ビルド オプション)] (セカンダリ リモート ビルド Mac 向け) の両方を表示します。

プライマリ Mac は、チームの共有リソースとして機能できる、Mac Pro など処理能力が高いモデルにする必要があります。この Mac を使用して、Xcode を備えた Mac を必要とする主要なビルド プロセスを処理します。

セカンダリ Mac は、テスト デバイスでデバッグ ビルドを起動するための個人用デバイスにする必要があります。セカンダリ Mac では何もビルドしません。代わりに、プライマリ Mac でビルドしたキャッシュ データをダウンロードしたり、デバッグ用に Xcode コード プロジェクトを設定したりします。つまり、プロジェクトに対して完全なビルドまたはクックを実行する必要がなく、特定の iOS、tvOS、または iPadOS デバイスで起動するだけであるため、プライマリ Mac より簡素な仕様が可能ということです。このプロセスの処理方法の詳細については、後述の「セカンダリ リモート Mac を使用する」を参照してください。

デバッグを準備する

Prepare for Debugging コマンドを使用すると、以前にクックされたデータが Xcode からビルドに挿入され、Xcode からターゲット デバイスで起動するために使用できる .ipa ファイルが生成されます。これにより、プロジェクトのデバッグ パイプラインが次の 2 つの方法で合理化されます。

  • Prepare for Debugging により、Xcode プロジェクトを再設定する必要なく、自動的にデバッグ ビルドの作成が処理されます。

  • Mac の台数が少ないプロジェクトでは、他のマシンからクックされたデータをインポートできます。これにより、Unreal Editor のビルドや使用をスキップして、ビルドを Xcode から起動することが可能になります。

Prepare for Debugging は、リモート ビルドの効率化、特にセカンダリ Mac の使用のために設計されています。このコマンドの使用方法の詳細については、「[Xcode を使用して iOS プロジェクトをデバッグする]()」を参照してください。

1.必要な設定

IOS リモート ビルドを使用するには、iOS プロジェクトをビルドできる Mac と Windows PC がそれぞれ最低 1 台ずつ必要です。両方のマシンでインターネット接続またはローカル エリア ネットワーク接続がなければなりません。署名およびコンパイルのみに Xcode が必要であるため、Mac にはプロジェクトまたは動作するインストール済みの Unreal Engine のコピーは不要です。

iOS プロジェクトに必要なバイナリがあることを確認するために Windows マシンに iTunes をインストールする必要があります。iTune のダウンロードおよびインストールは Windows Store からではなく Apple のウェブサイト から行うことを推奨します。Windows 版にはリモート ビルド プロセスの障害となることがある余計なバイナリが含まれているためです。iTune を Apple から直接取得するには、下にスクロールして「ほかのバージョンをお探しですか?」というセクションで Windows をクリックします。

Mac の システム キーチェーン に iOS デベロッパー証明書をインストールし、「iOS プロビジョニング」に従ってプロジェクト用にプロビジョニング プロファイルを設定しなければなりません。

Mac にプロジェクトにビルドを作成するための設定を行ったら、次のセクションへ進む前に動作の確認のため、最低 1 回はそのマシンで直接ビルドを実行してください。

2.Mac へのリモート ログインを有効にする

プロジェクトの設定が完了したら、SSH 接続ができるように Mac を設定する必要があります。

  1. Mac の [System Preferences (システム環境設定)] を開いて [Sharing (共有)] をクリックします。

  2. [Remote Login (リモートログイン)] のボックスにチェックを入れます。

  3. [System Preferences (システム環境設定)] を開いて > [Network (ネットワーク)] をクリックします。

  4. コンピュータの [IP Address] に注目してください。Windows PC 上でリモート接続を設定するためにこれが必要となります。

これらの手順を完了すると、Mac はご使用の PC から送信される SSH 接続を受信できるようになります。

3.Windows の設定と SSH キーの生成

Windows マシンで以下の手順を行ってリモート iOS ビルドの設定をします。

  1. Unreal Editor でプロジェクトを開いて [Project Settings (プロジェクト設定)] を開きます。

    Locating the project settings in the Edit menu

  2. [Platforms (プラットフォーム)] > [iOS] > [Build] の順に選択します。

    The Platforms/iOS section

  3. [Remote Server Name (リモートサーバー名)] 入力フィールドに、プロジェクトのビルドに使う Mac 名または IP アドレスを入力します。

  4. [Remote Server Name] 入力フィールドに、リモートの Mac へのログインに通常使用するユーザー名を入力します。

  5. [Generate SSH Key (SSH Key を生成)] をクリックします。SSH キーを生成する一連のプロンプトの付いたコマンド プロンプト ウィンドウが開きます。

  6. ホストの認証ができないというメッセージを受信した場合は、プロンプトに「yes」と入力して続けます。

  7. 前の手順で [Remote User Name (リモート ユーザー名)] 入力フィールドに指定したユーザーに属する パスワード を入力します。

  8. プロンプトが パスフレーズ の入力を要求します。パスフレーズを入力しない場合は、ユーザー インタラクションを必要とせずにリモート接続を使用することができます。

  9. プロンプトが表示されたら、Mac の パスワードユーザー名 を再度入力してプロセスを完了します。

SSH キーを生成すると、Windows マシンで Mac へのリモート接続を開始して iOS ビルドを作成することができるようになります。

Unprotected Private Key エラーの対応方法

以下のようなエラーが出る場合があります。

    ERROR: Unable to determine home directory for remote user. SSH output:...WARNING: UNPROTECTED PRIVATE KEY FILE!...0660

このエラーが出ない場合は、次の手順 (オプションのチーム設定) へ進むことができます。このエラーが出た場合は、以下の手順で解決します。

  1. RemoteToolChainPrivate.key」に移動します。

  2. ファイルを右クリックして [Properties (プロパティ)] を選びます。

  3. [Security (セキュリティ)] タブをクリックします。

  4. [Edit] をクリックします。

  5. すべてのグループ名またはユーザー名を除去します。

  6. [Add (追加)] をクリックします。

  7. [Object Types] をクリックします。すべてのボックスにチェックが入っていることを確認して、[OK] をクリックします。

  8. テキストボックスに ユーザー を入力して [Enter] を押します。

  9. ユーザー権限が [Read][Read & Execute] に設定されていることを確認してください。

こうすることで、グループ権限の確認時に SSH が問題としていた、ファイルのプライマリ グループが自分のユーザー名とは異なるものに変更されます。この後プロセスは正常になります。

これまでは SubInACL をこの目的に使用することができましたが、Microsoft から使用できなくなりました。

4.オプションのチーム設定

今後他のプロジェクトにこのデータを共有するには、コンピュータの「*Engine.ini」ファイルの 1 つに [Remote Server Name (リモート サーバー名)] と [Remote User Name (リモート ユーザー名)] を指定します。

  1. Remote Server Name プロパティの横にあるボタンを選択して コンフィギュレーション エディタ を開きます。

    The config editor button next to the Remote Server Name property

  2. SSH データを共有するそれぞれの .ini ファイルにプロパティを設定します。

    Editing the .ini files with the config editor

  3. これらの手順を Remote User Name に対しても行います。

これらの .ini ファイルを共有することにより、複数のプロジェクトまたはユーザーが SSH 情報を利用できるようになります。SSH キーは「Engine/Build/SSHKeys」フォルダに格納されます。このディレクトリをソース コントロール システムにチェックインすれば、自分のチームと共有することができます。

5.最終結果

上記の手順を完了すると、使用している Windows マシンの Unreal Editor で [Platforms] > [iOS] > [Package Project (プロジェクトをパッケージ化)] または [Platforms] > [iOS] > [Prepare for Debugging (デバッグの準備)] をクリックすることでリモート ビルドを開始することができます。SSH 接続を開始し、Mac にコマンドを送信してビルドの作成を開始します。ビルドがディレクトリに表示されます

6.セカンダリ リモート Mac を使用する

プライマリ Mac の既存のビルド データを使用してビルド プロセスをスキップしているため、セカンダリ Mac を使用するために必要な手順がいくつかあります。

Windows マシンでデバッグを準備する

  1. Windows マシンで、[Project Settings] > [Platforms] > [iOS] を開き、[Remote Build] セクションで [Enable Secondary Remote Mac (セカンダリ リモート Mac の有効化)][disabled (無効)] であることを確認します。

  2. プライマリ リモート Mac を使用してプロジェクトをビルドします。プライマリ Mac で作成されたファイルに依存しているため、少なくとも 1 回はこれを行ってセカンダリ Mac を使用する必要があります。

  3. プライマリ Mac で少なくとも 1 回はビルドを完了したら、[Enable Secondary Remote Mac] 設定を有効にします。

  4. [Platforms] > [iOS] > [Prepare for Debugging] をクリックします。今度は、プライマリ Mac でリモート ビルドを完了した後に、Windows マシンでビルド データをダウンロードし、セカンダリ Mac に送信します。

これで、セカンダリ Mac に他のマシンのキャッシュ データを含む Xcode プロジェクトが配置されました。これは、プライマリ Mac で作成されたプロジェクト ディレクトリと同じディレクトリです。セカンダリ リモート Mac プロセスを最初に使用すると、3 つのマシンでデータを同期するのに 10 分から 15 分かかりますが、その後の各ビルドの所要時間は約 30 秒です。

セカンダリ リモート Mac でデバッグする

セカンダリ リモート Mac でデバッグするには、次を実行します。

  1. 生成した Xcode プロジェクト ファイルを含むディレクトリに移動して、Xcode ソリューションを開きます。

  2. Xcode を通常の [Xcode デバッグ ワークフロー]() と同様に設定します。

  3. キャッシュ ビルド データがあるため、完全なビルドを実行する必要はありません。代わりに、[Product (製品)] > [Perform Action (アクションを実行)] > [Run Without Building (ビルドしないで実行)] をクリックして、iOS、iPadOS、または tvOS テスト デバイスで起動します。

    Run Without Building

プロジェクトが iOS デバイスで起動します。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル