I'd like to write a script that can read info like Bundle Identifier or maybe version number from the Info.plist of the app. Xcode doesn't seem to give that information in it's environment variables. Is there any other way to get them in sh/bash?
The defaults
command can read/write to any plist file, just give it a path minus the .plist
extension:
$ defaults read /Applications/Preview.app/Contents/Info CFBundleIdentifier com.apple.Preview
This pulls the CFBundleIdentifier
value directly from the application bundle's Info.plist
file.
Defaults also works with binary plists without any extra steps.
Using PlistBuddy, an app by Apple it is possible to assign the string to var like this:
#!/bin/sh BUNDLE_ID=$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "${BUILD_ROOT}/${INFOPLIST_PATH}")
Where BUILD_ROOT and INFOPLIST_PATH are variables set by Xcode if you run this script in a "Run Script" build phase.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With