アプリのInfo.plistから、バンドルIDやバージョン番号などの情報を読み取ることができるスクリプトを書きたいのですが。 Xcodeは環境変数にその情報を提供していないようです。それらをsh/bashで取得する他の方法はありますか?
defaults
コマンドは、任意のplistファイルの読み取り/書き込みができます。.plist
拡張子を除いたパスを指定するだけです。
$ defaults read /Applications/Preview.app/Contents/Info CFBundleIdentifier
com.Apple.Preview
これにより、アプリケーションバンドルのInfo.plist
ファイルから直接CFBundleIdentifier
値が取得されます。
デフォルトは、追加の手順なしでバイナリplistでも機能します。
PlistBuddyを使用して、Appleによるアプリは、次のように文字列をvarに割り当てることができます。
#!/bin/sh
BUNDLE_ID=$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "${BUILD_ROOT}/${INFOPLIST_PATH}")
ここで、BUILD_ROOTおよびINFOPLIST_PATHは、「スクリプトの実行」ビルドフェーズでこのスクリプトを実行する場合にXcodeによって設定される変数です。
ビルドされた製品から直接ファイルを読み取ることができます。ただし、エディターでinfo.plistファイル自体を見ると、シェル変数自体が表示されます。例えば。バンドルIDには次のシェルコマンドがあります。
com.yourcompany.${PRODUCT_NAME:rfc1034identifier}
Xcodeが実行する任意のシェルスクリプトで${PRODUCT_NAME:rfc1034identifier}
を呼び出すことができます。
MacにインストールされているPlistBuddyというコマンドラインプログラムがあり、plistの値を読み書きできます。ターミナルで「man PlistBuddy」と入力すると、詳細情報が表示されます。
このコマンドは私のために働きました:
/usr/libexec/PlistBuddy -c 'print ":CFBundleIdentifier"' Info.plist