UE で開発時に macOS から iPhone への実機転送する設定メモ

Unreal Engine のプロジェクト向けの iOS、tvOS、および iPadOS のプロビジョニング プロファイルおよび署名証明書をセットアップします | Unreal Engine 5.1 ドキュメント

署名周りです。私自身はこの当たり全く詳しくないので雰囲気でやっているのですが、新規プロジェクトを作るたびに忘れてしまうのでメモです。

状態

  • Apple Developer 登録はしている
    • しなくてもよかったのかもしれないが、しない状態での実機転送が上手くできなかったのでお布施を払った。。

環境

前提

  • 最初に貼ったドキュメントを一度でもやっていて、ドキュメントの 4 、「4B. 署名証明を手動で生成する」は終わっているものとします
    • 「4A.Xcode からコード署名証明書を生成する」に関してはここでは扱いません
  • macOS で Mobile 用のプロジェクトを新規作成
    • 記事を書くにあたって ThirdPerson と Puzzle のテンプレートで試してみました

1. Profile を作成して登録した上で転送

これはドキュメントの通りです。

「3. 識別子 (App ID) を作成する」を実行

ここは、UE のプロジェクト名と合わせる ことさえ間違わなければ大丈夫です。

「6. プロビジョニング プロファイルを作成する」を実行

ここも前述の App ID を使って作るだけなので迷うことは無いと思います。

ステップ 5の

プロビジョニング プロファイルをダウンロードし、任意の場所に配置します。そのプロファイルをクリックして Dock の Xcode アプリ アイコンにドラッグし、インストールします。

が個人的に忘れやすいです 😅

「7. プロビジョニング プロファイルと署名証明書を Unreal Editor に追加し、チームで共有する」を実行

ステップ 1 はスキップしていいと思います。

Project Settings は以下のような感じです。緑にならない場合は一度 Project Settings を開き直します。

ビルドして動作確認

これで実機で動作確認ができるはずです。

2. Automatic Signing で転送

先日 Unity を触っていて気づいたのですが、UE にもこの設定がありました。

が、なんか微妙に上手く動くのか動かないのか自信がないです。

前提

1 と同じです。もしかするとこのケースだと 「4A.Xcode からコード署名証明書を生成する」の方でいいのかもしれません。

まずは有効な Provision が無い状態を作る

プロジェクトを作ったばかりなら以下のように全部 Invalid か、そもそも無い状態だと思います。

もし、すでに一度作ってしまった状態であれば、削除します。
iOSゲーム開発 - ローカルPC上の開発証明書やプロビジョニング プロファイルを削除したい - そらまめゲームブログ

Automatic Signing の設定を行う

以下のように設定を行います。iOS Team IDApple Developer から確認できます。

iPhone に転送する

この状態で転送を行うと、問題なく成功します。

2度目が成功しない

上記の設定のままだと 2 度目が成功しません。

Profile を確認すると、以下のように iOS Team Provisioning Profile: * が登録されています。この状態だと、Automatic Signing を外しても、この Profile を選択してもエラーになります。エラーメッセージとしては、Provisioning ファイルがコンフリクトしているということです。どうやら、Xcode の設定を触る必要がありそうです。

C++ プロジェクト化する

Finder のコンテクストメニューからサクッと xcproject を作成できればいいのですが、私の環境だと上手くいきません。

上手くいかないのか、バックグラウンドで走っているビルドがめちゃ長いのかどちらかだと思いますが、今回は普通に C++ ファイルを追加しました。(ここで 30 分ぐらいビルドに待たされる。。)

Xcode で Automatic Signing の設定をする

Automatically manage signing のチェックが入っていない状態なので、ここにチェックをいれ、Team も選択します。

この状態で Unreal Editor から iPhone に転送する

これで上手く転送できるようになります。

こちらの方法に関してはもうちょっとマシな方法があるような気がします。

参考にさせてもらったサイト