unityアプリの自動iosビルド化に頭をかかえる日々。 そういった頭痛の種の中でも先週一番大きかったのがerror: exportArchive: "XXXX.app" requires a provisioning profile.
...つまり「お前が指定したplistにはProvisioning Profileに関する項目がないぞ!」というやつ。
このエラーはすでにほとんどの開発ケースではぶつからないはず。
というのも今は認証周りはAutomatic manage signing
させておけば大抵のケースでうまくいく。
(今回は古いビルドマシンを使って作業をして、SigningをAutoではなくManualで設定する羽目になった。)
Provisioning Profileに関してはUnityで書いたビルドスクリプトでIDを正しく指定しているし、なんならそこから吐き出されたxcodeファイルを開いてSigningの項目を見てもちゃんとできているんだけれどいざコマンドラインから実行しようとすると上のようなエラーが出てしまう、、、しょぼーん。
どうしたものかと頭を抱えていると、とても参考になるQiitaの記事を発見。
UnityのiOSビルドを自動化させたい人はひとまずこれを見るのが2020年1月時点では一番良さそう。
そこでProvisioning ProfileのUUIDというのがあってそれをアーカイブ化、ipa化させるときにそれぞれコマンドラインから指定できることがわかった。
さて、本題はその調べ方。基本的には.mobileprovision
形式のファイルは中身を見ることができない。
Xcodeから調べる方法もあるみたいだけど、もっと簡単な方法がある。
① 作ったProvisioning Profileをダウンロード
② mobileprovisionファイルに対して以下のコマンドを叩く
security cms -D -i sampleapp.mobileprovision | grep UUID -A 1
③ xcodebuildのオプションにPROVISIONING_PROFILE=XXX-XXXX-XXXX-XXXXXXX
のような形式で追加
これでうまく行ってそんな馬鹿なってなった。
-exportProvisioningProfile
ってオプションはもう使えないよ、って情報を早々に見つけてしまったのが敗因。