#はじめに
Unity & Xcode でビルドを作成する際に毎回忘れてしまう署名関連の備忘録として残しておこうと思います。
#Manual or Auto
『Certificates, Identifiers & Profiles』の署名関係のファイルなどを Xcode だけで出来るようになっています。
以前までは自前でポータルサイトにログインしてそれぞれのファイルを作成していましたが、今はそれが不要になっています。
エンタープライズ版の場合は * アスタリスクでどのアプリでも利用することができたのですが、今はそれを行う必要がなく Unity を利用する場合は Preferences と PlayerSettings に設定するだけです。
#Unity 側の設定
Unity 側には二箇所設定する項目があります。
##Preferences の設定
まずは Preferences ですが『Xcode Default Settings』という設定がありますが、それぞれ以下のような値を設定します。
- Automatically Sign にチェック
- Signing Team Id にポータルの Team ID を指定
- iOS/tvOS の Manual は利用しないのでそのまま
Team ID はポータルのアカウントで『Membership』に記載されています。
##PlayerSettings の設定
次はプロジェクトごとの PlayerSettings です。
『PlayerSettings > Other Settings > Identification』で以下のような値を設定します。
- Bundle Identifier に Bundle ID
- Signing Team ID に Team ID を指定
- Automatically Sign にチェック
Xcode Default Settings の値と同じにします。
まぁ、設定しなくてもデフォルト設定が利用されると思うのですが…。
#ビルド
Unity の設定を行いビルドを行います。
生成された Xcode プロジェクトを開いて『Signing & Capabilities』の設定を見るとちゃんと設定がされています。
ポータル側も以下のように証明書、プロファイルがそれぞれ登録されています。
『Certificates,Identifiers & Profiles > Certificates』にはビルドを実行した端末が登録されています。
『Certificates,Identifiers & Profiles > Identifiers』には『XC <Bundle ID>』という ID が登録されます。
例えば『com.aaa.BBB』とした場合『XC com aaa BBB』という感じの ID です。
##注意
Automatically manage signing を行う場合にポータルで同じ Bundle ID のプロビジョニングプロファイルなどの作成はしないようにしてください。もし、同じ Bundle ID が存在すると競合してしまいエラーになります。
上記ですが Xcode で Revoke することで Manual で作成したものを取り消して Auto に切り替えることが可能です。
#Auto が絶対にオススメ
出来る限り Auto を選択することをオススメします。
理由はプロビジョニングプロファイルを管理する必要がなくなるからです。
手動の場合、プロビジョニングプロファイルをダウンロードしそれをローカルに保存する、また、有効期限も自分で覚えておかないといけないのですが、Auto の場合はその辺りは全て自動で行ってくれます。
#おわりに
とりあえず毎回忘れてしまう署名関連の処理。
Unity を使えば Unity の設定だけで済みますのでかなり楽になります。
一度 Manual ではなく Auto でビルドすることを検討してみてください。