mobileprovisioning 的管理
当添加测试机时,mobileprovisioning 就需要更新(下文称为授权文件),久而久之,电脑里面就会存在大量的授权文件,而且,这些授权文件由于具有同样的名字,在 xcode 中,有可能会误选。
举个例子,假设原来的授权文件A,对应测试机a、b,后来在开发者账号里面添加了新的测试机c,于是对授权文件进行更新,生成新的授权文件B,此时,开发者甲拥有授权文件A、B,他把授权文件B发给了新加入的开发者乙,但是甲在项目中选择对应的授权文件的时候,选错了A文件,因为A、B在xcode中看是同名的,并提交到了 Git 上,开发者乙拉到代码之后,就会显示找不到对应的授权文件。
由于测试设备的添加导致授权文件的更新这种情况是非常常见的,久而久之,机子上就会存在大量无用的、多余的授权文件,容易出现各种混乱,最好养成定时清理的习惯。清空授权文件的命令行操作如下:
$ cd ~/Library/MobileDevice/Provisioning\ Profiles/
$ rm *.mobileprovision
以下命令行可以用来获取授权文件的uuid
$ /usr/libexec/PlistBuddy -c "Print UUID" /dev/stdin <<< 'security cms -D -i xxxxx.mobileprovision'
有时执行以上命令会报错 “Error Reading File: /dev/stdin”,于是后来我改用以下命令,读取mobileprovision的详细信息。首先,进入到mobileprovision所在路径,
$ security cms -D -i *.mobileprovision
你会得到一个dict结构的详细信息。
p12 & pem 的转化与查看
切换到p12文件所在路径下,使用以下命令,可把p12文件转化为pem文件。
$ openssl pkcs12 -in xxxx.p12 -out xxxx.pem -nodes
$ Enter Import Password:
$ MAC verified OK
末尾的参数 -nodes 表示不需要对私钥进行加密,如果不带上 -nodes ,你将被要求输入pem文件的密码,且加密之后,使用记事本打开pem文件将只能看到 CERTIFICATE 部分,看不到 PRIVATE KEY 部分。想获取更详细的信息,可使用以下命令,将证书的内容输出到 xxxx.txt 文件中:
$ openssl x509 -in xxxx.pem -noout -text > xxxx.txt
更多内容可参考: [mac下查看.mobileprovision文件及钥匙串中证书.cer文件](https://www.aliyun.com/jiaocheng/364717.html) [openssl查看证书细节](https://blog.youkuaiyun.com/zahuopuboss/article/details/53415811)