I am tying building a php/bash/mysql system for automating adhoc distribution for iPhone apps. But I want to read the application-identifier key in mobileprovision file of projects and change it info.plist file according to that.
I can currently build ipa files from php IF the cfbundleidentifer key is same as its provision file.
I found a code like this https://gist.github.com/711794 but I want bash script to integrate it to my system.
Thanks
I created a bash function based on jlawrie's answer to list all .mobileprovision's bundle IDs from the
~/Library/MobileDevice/Provisioning Profiles
folder.Save this into your
.bash_profile
and just call it withlist_xcode_provisioning_profiles
from a terminal.If your running this on a machine with mac os x, you can use the following:
It is mildly tedious, since a .mobileprovision is "PKCS #7 signed data" or so.
Fortunately, you can probably get away with using grep :)
If you want to extract the plist from the mobileprovision in a proper way and not rely on grepping/sedding/etc., you can use OpenSSL as follow:
A complete example in your case could be:
The OpenSSL part should work on any platform, although I've only done that on a Mac so far. PlistBuddy is only on Mac, but other utilities can be found to read/write property list files.
One solution among many...
Use egrep with the -a option, which treats binary files like text files and '-A 2' which will display the two lines after the string you want to match: ApplicationIdentifierPrefix.
After that, trim the line of brackets and whitespace using sed.
Using a series of pipes:
I used the code from mobileprovision-read repository to be able to pull information from the mobileprovision file. This uses macOS APIs to read the file.
Here is the usage from running the generated program: