1
XcodeプロジェクトのInfo.plistのバンドルIDは、さまざまな形式をとります。シェルスクリプトを使用してXcodeプロジェクトでバンドルIDを見つける
- com.company $(PRODUCT_NAME:rfc1034identifier)。
- $(PRODUCT_BUNDLE_IDENTIFIER)
- 誰かが、デバッグのために独自の製品バンドル識別子を設計、構築するなどの種類を解放し、バンドル識別子に対して変数を書くことができ例えば$(PRODUCT_NAME:rfc1034identifier)$(someRandomVariable)
バンドル識別子を正しく読み取るシェルスクリプトを作成したいと思います。
しかし、あなたが知っているのは、シェルスクリプトしか知りません - $()の変数の値を調べる方法はわかりますが、シェルスクリプトを使って文字列にそのような変数を与えてから、それらの値を計算し、変数を変数に置き換えてストリングバックを作成します。
function getBundleIdentifier
{
cfBundleIdentifier=${PRODUCT_BUNDLE_IDENTIFIER}
if [ ${#cfBundleIdentifier} -lt 1 ]; then
SOURCE="rfc1034identifier"
cfBundleIdentifier=$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "${PROJECT_DIR}/${INFOPLIST_FILE}")
if echo "$cfBundleIdentifier" | grep -q "$SOURCE"; then
echo `eval echo $cfBundleIdentifier``eval echo ${PRODUCT_NAME:rfc1034identifier}`
else
echo `eval echo $cfBundleIdentifier`
fi
else
echo $cfBundleIdentifier
fi
}
これは私が書いたものですが、すべてのケースをカバーしているわけではありません。