命令行獲取mobileprovision文件的UUID

有時候咱們須要獲取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)答案下面的評論,找到了另一種方法,是使用了蘋果的securityPlistBuddy工具,腳本以下:

#!/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

0xc010d/mobileprovision-read

dwelch2344/mpParse

verb-ios/install-provisioning-profile.sh at master · JonathanPorta/verb-ios

命令行導入p12證書文件 | 大白良

ios - Can an Xcode .mobileprovision file be 'installed' from the command line? - Stack Overflow

相關文章
相關標籤/搜索