iOSゲーム開発 – プロビジョニングを用意する

はじめに

iOSゲーム開発で必須の対応となる証明書作成とプロビジョニング プロファイルの作成方法を記載します。

WindowsとMacの両方での対応方法を記載していますが、両方の開発環境がある場合は、Macで作成することをお勧めします。理由は私が、Macで作成した証明書をWindowsに登録する方法はわかっているのですが、Windowsで作成した証明書をMacで登録する方法がわかっていないためです。(ご存知の方は是非ご教示ください!)

追記
一応WindowsでもOpenSSLを使用して個人情報交換ファイル(.p12)を作り、Macに登録できるようなのですが、試していないのでご自身でお願いいたします…。(参照

UE4プロジェクトを作成する(Windowsのみ)

Windowsでは公式ドキュメントの「iOS プロビジョング」というページの手順に沿って対応します。

Windowsでプロビジョニングを作成するにはUE4プロジェクトが必要となるため、ひとまずプロジェクトを作成します。

  1. [プロジェクト選択または新規作成]にて[新規プロジェクトのカテゴリ]の[ゲーム]を選択して[次へ]をクリックする。
  2. [テンプレート選択]にて[サードパーソン]を選択して[次へ]をクリックする。
  3. [プロジェクト設定]にて以下のように設定します。
    1. ターゲットプラットフォームを[モバイル/タブレット]に設定する。
    2. [プロジェクトのパフォーマンス特性を[スケーラブルな3D/2D]に設定する。
    3. スターターコンテンツを[スターターコンテンツ無し]に設定する。
    4. プロジェクトの保存場所とプロジェクト名を指定する。(ここではiOSQuickStartします)
  4. プロジェクトが作成されたことを確認したら、エディタは閉じてしまって問題ありません。

Signing Certificateの下準備

Signing Certificateとは、開発用署名証明書という意味で、ざっくり言うとiOSアプリを開発するために必要な証明書です。

Windowsの場合

Windowsの場合、UE4が証明書の生成のために Unreal iOS 構成ウィザード (iPhonePackager) アプリケーションを提供していますので、そちらを使って手順をすすめます。

  1. 下記のフォルダに移動します。
    C:\Program Files\Epic Games\UE_4.xx\Engine\Binaries\DotNET\IOS

    ※「UE_4.xx」はインストールしているUE4のバージョン名

  2. iPhonePackager.exe を実行します。

    iPhonePackagerは頻繁に使用しますので、ショートカットなど直ぐにアクセスできるようにしておくことをお勧めします
  3. iPhonePackagerを実行するとUE4プロジェクトを指定するように求められるので、先ほど作成した「.uproject」を指定します。
    コマンドプロンプトに「ファイル ’ ... UE4Game-Info.plist’ が見つかりませんでした」と表示される
    この表示は気にしなくて大丈夫です。

  4. [New User (新しいユーザー)] タブを選択して [Create certificate request and a key pair…(証明書要求キーペアを作成…)] ボタンをクリックします。

    [Create certificate request and a key pair…]ボタンをクリックする

  5. [Generate Certificate Request (証明書要求を生成)] ダイアログが開くので、メール アドレス、氏名 (または会社名)を入力します。

    メール アドレス、氏名 (または会社名)を入力する

  6. [Generate a key pair (キー ペアを生成)] をクリックして .key ファイルを保存する場所を選択します。

    [Generate a key pair] をクリックする

  7. [Generate Certificate Request (証明書要求を生成)] をクリックして .csr ファイルを保存します。

    [Generate Certificate Request] をクリックする

Macの場合

Macの場合、以前まではXcode上で[iOS Development]の開発証明書を生成することができたのですが、2020年5月現在のXcode11.4.1では[Apple Development]という全てのデバイスを含む開発証明書に統合されました。

[iOS Development]が無くなり、[Apple Development]に統合された

UE4は Apple Development をiOSビルドに使用することができないため、Xcodeからの開発証明書の生成は利用できなくなりました。(楽だったのに!)

仕方がないのでキーチェーン から生成します。

  1. キーチェーンアクセスを起動します。
  2. メニューから、[キーチェーンアクセス]>[証明書アシスタント]>[認証局に証明書を要求]を選択します。
  3. 証明書アシスタントに以下を入力します。

    1. ユーザーのメールアドレス:
      開発者のメールアドレス
    2. 通称[Common Name]:
      適当な名前を付けられるが、他のキーチェーンの項目と見分けられるようにすること
    3. CAのメールアドレス
      無記入でよい (要求の処理をディスクにするので必須ではない)
    4. 要求の処理 :
      ディスクに保存 と 鍵ペア情報を指定にチェック
  4. [CertificateSigningRequest.certSigningRequest]を保存する場所を求められるので、任意の場所を指定します。
  5. [鍵ペア情報]はデフォルトの[鍵のサイズ : 2084ビット]、[アルゴリズム : RSA] であることを確認します。
  6. ファイルが保存されました。
  7. キーチェーンアクセスの[鍵]の分類を確認します。([キーチェーン]は[ログイン]を選択)
    先ほど[通称]で入力した名称の公開鍵と秘密鍵が登録されています。この内の秘密鍵は、認証のために常に必要となりますので消さないようにしてください。

    もし削除してしまった場合は証明書アシスタントから全てやり直して証明書を作成する必要があります。(個人情報交換ファイル(.p12)を使用すれば復帰可能

Signing Certificateを生成する

  1. Apple Developer Program の Certificates ページにアクセスします。
  2. [Create a certificate]を選択します。(2つ目以降は [+] をクリックします)

    [Create a certificate]を選択する

  3. [iOS App Development] を選択して [Continue (続ける)] をクリックします。

    [iOS App Development] を選択する

  4. [Choose File (ファイルを選択)] では、WindowsとMacで指定するファイルが異なります。
    • Windowsの場合は、証明書署名要求 (.csr) ファイルを選択します。
    • Macの場合は、CertificateSigningRequest.certSigningRequest を選択します。
  5. [Generate (生成)] をクリックします。
  6. 証明書 (.cer) ファイルをコンピュータにダウンロードします。ios_development.cerというファイルが取得できれば完了です。
証明書ファイルはダブルクリックでインストールすることができますが、後述するUE4のプロジェクト設定からインポートすることをお勧めします。

デバイスの追加

開発機の登録をします。一度登録すればその機種は以後変更する必要はありません。
今後開発端末が増える度に追加していきます。

  1. Apple Developer Program の Devices ページにアクセスします。
  2. [Register a Device]を選択します。(2台目以降は [+] をクリックします)

    [Register a Device]を選択する

  3. [Register a Device]のPlatform、Device Name、Device ID (UDID) を入力して[Continue]を選択します。

    Platform、Device Name、Device ID (UDID) を入力して[Continue]を選択する

    UDIDの確認方法
    登録したい端末をWindowsにUSBで接続し、iTunesを起動します。端末の概要画面を表示し、[シリアル番号]の表示部分をクリックすると、[UDID]の表示に切り替わります。
    [シリアル番号]の表示部分をクリックすると[UDID]の表示に切り替わる
    [Register Multiple Devices] は一度に複数の端末を登録する際に使用します。
  4. 表示される内容を確認して問題なければ[Register]を選択します。
  5. 登録完了画面が表示されたら[Done]を選択します。

アプリID の作成

開発するアプリのIDを作成します。アプリ ID は 1 つの開発チームによる 1 つ以上のアプリを識別するために使用する 2 つの部分からなる文字列です。

チュートリアルで使用している *(ワイルドカード)は、開発の時に使えるジョーカーのようなもので、その部分のBundle IDを自由に記入できるようになります。

  1. Apple Developer Program の Identifiers ページにアクセスします。
  2. [Register an App ID] を選択します。(2つ目以降は [+] をクリックします)

    [Register an App ID] を選択する

  3. IDの種類 [App IDs] を選択して [Continue] を選択します。

    [App IDs] を選択する

  4. [Register an App ID] の [Description] にアプリ名を、 [Bundle ID] はここでは [Wildcard] を選択し、適当な文字列と最後に *(アスタリスク) を記入します。

    [Description] にアプリ名を、 [Bundle ID] は適当な文字列と最後に *を入力する

    アスタリスクのみの [Bundle ID] は登録できないようになりました。
    画像内のdomainnameという部分は例ですので別の文字列に変更することをお勧めします。
  5. 表示される内容を確認して問題なければ[Register]を選択します。

プロビジョニングの作成とインポート

これまでに登録した情報を用いてプロビジョニング プロファイルを作成します。プロビジョニング プロファイルはこれまでに作成した署名証明書、デバイス、アプリ ID を含みます。

プロビジョニング プロファイルには 2 つのタイプがあります。最初のタイプは Development Provisioning Profile (開発プロビジョニング プロファイル) です。これは開発サイクル中にゲームをビルドおよびインストールするために使用します。2 つ目のタイプは Distribution Provisioning Profile (配布プロビジョニング プロファイル) です。これはゲームを App Store に送信するために使用します。

  1. Apple Developer Program の Profiles ページにアクセスします。
  2. [Generate a profile] を選択します。(2つ目以降は [+] をクリックします)

    [Generate a profile] を選択する

  3. [Development] から [iOS App Development] を選択して [Continue] を選択します。

    [iOS App Development] を選択する

  4. [Select an App ID] の [App ID] に先ほど作成した アプリID を選択して [Continue] を選択します。

    先ほど作成した アプリID を選択する

  5. [Select Certificates] にて最初の手順で作成した開発用署名証明書を選択して [Continue] を選択します。

    最初の手順で作成した開発用署名証明書を選択する

  6. [Select Devices] にてアプリを動かす開発端末を選択して [Continue] を選択します。

    アプリを動かす開発端末を選択する

  7. [Review, Name and Generate] にてプロビジョニング名を入力して [Generate] を選択します。

    プロビジョニング名を入力する

  8. プロビジョニング プロファイル (.mobileprovision) の生成が完了したら、ファイルをダウンロードします。

用意したファイルの確認

Windowsの場合

最終的にUE4で使用するのは、キーペア(.key)ファイルと開発証明書 (.cer) ファイルとプロビジョニング プロファイル (.mobileprovision) です。

Macの場合

最終的にUE4で使用するのは、開発証明書 (.cer) ファイルとプロビジョニング プロファイル (.mobileprovision) ですが、キーチェーンアクセスに証明書アシスタントで作成した秘密鍵が登録されている必要があります。もしくは秘密鍵情報を含んだ個人情報交換ファイル(.p12)が必要です。

プロジェクト設定でプロビジョニングをインポートする

こちらの手順に従ってプロジェクトにプロビジョニング プロファイルを設定します。

iOSゲーム開発 – プロジェクト設定でプロビジョニングを設定する

2020年5月12日

Macで作成した証明書をWindowsで使用する

Macにて証明書のインポートが完了しているものとします。

正しくインポートができていれば、キーチェーンアクセスの[証明書]を確認すると、下図のように証明書と秘密鍵が階層構造で表示されます。

[すべての項目]を選択した場合は階層構造ではなく横並びで表示されます。この状態で秘密鍵を書き出しても、UE4インポート時にエラーになるのでご注意ください。

この状態で、証明書を [右クリック]>[ …を書き出す] を選択すると、パスワードを設定した後、個人情報交換ファイル(.p12)という秘密鍵を含んだファイルを出力することができます。

個人情報交換ファイル(.p12)は秘密鍵情報を含むファイルのため、取り扱いは特に慎重に行う必要があります。

このファイルをWindowsに持っていき、UE4の[プロジェクト設定] の [証明書をインポート]から個人情報交換ファイル(.p12)を選択すると、Windowsでもプロビジョニング プロファイルを有効化することができます。(インポート時には設定したパスワードを入力する必要があります)