アプリのInfo.plistからBundle Identifierやバージョン番号などの情報を読み取れるスクリプトを作成したいと思います。 Xcodeはその情報を環境変数に与えていないようです。それらをsh/bashで入手する他の方法はありますか?シェルスクリプトからplist情報(バンドルID)を読み取る方法
答えて
defaults
コマンドはちょうどそれをパスマイナス.plist
拡張子を付け、任意のplistファイルへの読み取り/書き込みができます。
$ defaults read /Applications/Preview.app/Contents/Info CFBundleIdentifier
com.apple.Preview
をこれは、アプリケーションバンドルのInfo.plist
ファイルから直接CFBundleIdentifier
値を引きます。
デフォルトはバイナリplistでも動作します。
ビルド済みの製品から直接ファイルを読むことができます。しかし、エディタでinfo.plistファイル自体を見ると、シェル変数自体が表示されます。例えば。
com.yourcompany.${PRODUCT_NAME:rfc1034identifier}
あなたはXcodeのは、実行されるすべてのシェルスクリプトで${PRODUCT_NAME:rfc1034identifier}
を呼び出すことができ、それが移入する必要がありますバンドルIDは、次のシェルコマンドを持っています。
私はそれをテストしていないが、それは良い音だ。欠点はバンドルIDを返さないことですが、最後の部分だけを取得するので、 "com.mycompanyname"部分をどこかでハードコードする必要があります。 – Dimitris
MacにはPlistBuddyというコマンドラインプログラムがインストールされており、plistの値を読み書きできます。ターミナルに 'man plistBuddy'と入力すると詳しい情報が得られます。 PlistBuddy、このようVARために文字列を代入することが可能であるアップル社によってアプリを使用
PlistBuddyを試してみました。 PlistBuddyはバンドルIDを出力できますが、返すことはできません(0または1のみを返す)。だから、シェルのnoobである私は変数に割り当てられて取得するいくつかの問題があった。しかし、どうやってそれを稼働させることができたのか。私は今私の答えを掲示します。 – Dimitris
:
#!/bin/sh
BUNDLE_ID=$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "${BUILD_ROOT}/${INFOPLIST_PATH}")
あなたが「スクリプトの実行」で、このスクリプトを実行する場合BUILD_ROOTとINFOPLIST_PATHは、変数のXcodeで設定されている
構築段階。
PlistBuddyは常にシステムに存在するとは限りません。スクリプトを配布する場合、他の答えが指摘しているように、デフォルトの使用を検討することができます。 –
- 1. テキストドキュメントから情報を読み取る
- 2. plistから読み取る
- 3. 情報からplist in UITableViewController
- 4. pListからNSUserDefaultsを読み取る
- 5. ID番号からオブジェクトインスタンスの情報を取得する方法
- 6. Twitterのリスト情報を取得する方法(購読情報)
- 7. 入力ファイルから構造体情報を読み取る方法
- 8. Microsoft Project Standard 2013から情報を読み取る方法プログラムによって
- 9. jmsキューの統計情報をプログラムで読み取る方法
- 10. IOSでアプリケーションの証明書情報を読み取る方法
- 11. クレームIDからグループ情報を取得
- 12. Passport-SAML:ユーザー情報を読み取る
- 13. 追加情報をデータフレームとして読み込み、情報から新しい列を追加する方法
- 14. ノンブロッキングSocketChanelから情報を読み取る
- 15. .txtからログイン資格情報を読み取る
- 16. Cocoaの画像からEXIF/IPTC情報を読み取る
- 17. 出力ファイルから情報を読み取る
- 18. シェルスクリプトでcsvファイルから読み取る
- 19. シェルスクリプトからリモートでRed Hatのサブスクリプション情報を取得する
- 20. バンドルからiOS上のドキュメントフォルダにplistを移動する方法
- 21. スプライトのユーザーデータからの情報の保存と読み取り
- 22. Xquery:REF/IDから情報を抽出する方法
- 23. ブルーレイディスクからタイトルとIDを読み取る方法は?
- 24. インストールplistから情報を取得することは可能ですか?
- 25. Swiftのplistの書き込み/読み取り方法3
- 26. Javaを使用してtxtファイルから特定の情報を読み込み/取得する方法
- 27. 資格情報や認証情報からメールアドレスを取得する方法は?
- 28. OS Xボード-ID情報を取得する方法をプログラム
- 29. .plistファイルから文字列を読み取るエラー
- 30. plist文字列からURLイメージを読み取る
これはPlistBuddyがデフォルトではインストールされていないため、より良い答えです(特に。それを選択する必要があります。 – Olie
また、既定値は相対パスではなくフルパスを必要としていることに注意してください。現在読んでいるplistファイルのディレクトリにいてもそうではありません。 – Olie
だから、あなたはいくつかのディレクトリの中でそれをするとき、あなたは使用することができます:defaults write $ PWD/SomeMyDirectory/Info.plist CFBundleIdentifier "com.apple.Preview" – iVader