仕事でEnterprise用のiOSアプリを開発していて、アプリに含まれているProvisioning Profileを確認したい場面に遭遇しました。
手動で.ipaファイルから引っこ抜くこともできるのですが、毎回行うのは地味に手間です。
そこで、.ipaファイルのパスを渡すとそれに含まれているProvisioning Profileの内容を出力するシェルスクリプトを実装しました。
環境
- OS:macOS High Sierra 10.13.3
シェルスクリプト
output_pp.sh
#!/bin/bash
# ----------------------------------------
# iOSアプリに含まれているProvisioning Profileの内容を出力する
# 引数:$1 .ipaファイルのパス
# 戻値:なし
# 動作条件:パスに改行や日本語が含まれていない
# :.app名が.ipa名と同様
# ----------------------------------------
readonly IPA_DIR_PATH=$(dirname $1)
readonly APP_NAME=$(basename $1 .ipa)
# output Provisioning Profile
cp ${IPA_DIR_PATH}/${APP_NAME}.ipa ${APP_NAME}.zip
unzip ${APP_NAME}.zip
security cms -D -i Payload/${APP_NAME}.app/embedded.mobileprovision
# teardown
rm -r Payload
rm ${APP_NAME}.zip
exit
使い方
デスクトップに output_pp.sh
と ○○.ipa
が存在する場合の例です。
ターミナルで以下を実行するのみです。
$ cd ~/Desktop/
$ sh output.sh ○○.ipa
注意点
- 理由はわかりませんが、拡張子を
.ipa
のままunzip
するとembedded.mobileprovision
が解凍されませんでした。