Continue(s)

Twitter:@dn0t_ GitHub:@ogrew

【Unity】"XXXX.app" requires a provisioning profile. に頭を抱える.

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ってオプションはもう使えないよ、って情報を早々に見つけてしまったのが敗因。

それからmacのsecurityコマンドってのがよくわからん。このへんが公式のドキュメント?