有時候咱們須要獲取Provisioning Profile的UUID,通常狀況下咱們是雙擊mobileprovision文件安裝,在老版本Xcode裏能夠從Organizer窗口裏找到對應的UUID,新版本Xcode裏不知道爲何這個路徑下就找不到uuid了,幸運地我找到了另一個軟件:iPhone配置實用工具,這個軟件裏也能查看。ios
只是每次都要藉助於GUI工具來查看仍是太麻煩了,更好的方法是用命令行,我找到了這個:0xc010d/mobileprovision-readgit
使用方法:github
在Terminal下輸入下面的命令並回車:objective-c
curl https://raw.githubusercontent.com/0xc010d/mobileprovision-read/master/main.m | clang -framework Foundation -framework Security -o /usr/local/bin/mobileprovision-read -x objective-c -
這條命令的做用是下載mobileprovision-read的源碼,而後編譯,最後把生成的二進制文件mobileprovision-read
放入到/usr/local/bin/
路徑下。shell
如今你就能夠執行mobileprovision-read
命令來查看幫助了。xcode
mobileprovision-read -- mobileprovision files querying tool. USAGE mobileprovision-read -f fileName [-o option] OPTIONS type – prints mobileprovision profile type (debug, ad-hoc, enterprise, appstore) appid – prints application identifier Will print raw provision's plist if option is not specified. You can also use key path as an option. EXAMPLES mobileprovision-read -f test.mobileprovision -o type Prints profile type mobileprovision-read -f test.mobileprovision -o UUID Prints profile UUID mobileprovision-read -f test.mobileprovision -o ProvisionedDevices Prints provisioned devices UDIDs mobileprovision-read -f test.mobileprovision -o Entitlements.get-task-allow Prints 0 if profile doesn't allow debugging 1 otherwise
查看UUID的命令是:bash
mobileprovision-read -f the-file-path -o UUID
測試可用。app
以前也找了一些其它的方法來獲取UUID,並寫了下面的shell腳本:curl
#!/bin/bash if [ $# -ne 1 ] then echo "Usage: getmobileuuid the-mobileprovision-file-path" exit 1 fi mobileprovision_uuid=`grep UUID -A1 -a $1 | grep -o "[-A-Z0-9]\{36\}"` echo "UUID:"${mobileprovision_uuid}
可是不知道結果爲何爲空ide
更新:
根據這個(http://stackoverflow.com/a/10775025)答案下面的評論,找到了另一種方法,是使用了蘋果的security
和PlistBuddy
工具,腳本以下:
#!/bin/bash if [ $# -ne 1 ] then echo "Usage: getmobileuuid the-mobileprovision-file-path" exit 1 fi # mobileprovision_uuid=`grep UUID -A1 -a $1 | grep -o "[-A-Z0-9]\{36\}"` mobileprovision_uuid=`/usr/libexec/PlistBuddy -c "Print UUID" /dev/stdin <<< $(/usr/bin/security cms -D -i $1)` echo "UUID is:" echo ${mobileprovision_uuid}
測試可行。
參考:
.mobileprovision files structure and reading - iDev blog
A command line tool to parse .mobileprovision file
verb-ios/install-provisioning-profile.sh at master · JonathanPorta/verb-ios
ios - Can an Xcode .mobileprovision file be 'installed' from the command line? - Stack Overflow