1、签名指令
对.app包进行签名
$ codesign -fs 证书ID —entitlements entitlements.plist xxx.app
对.app包内部的动态库、AppExtension等进行签名
$ codesign -fs 证书ID xxx.dylib
2、重签名步骤
第一步:查看可用的证书
$ security find-identity -v -p codesigning
1) 833AB1A5FC837D8D7ADB6D81A9A0EAC3EE897DB6 "Apple Development: xxx (70SX5888C3)"
2) D646018260551771F161EAE5E5C98F2F8BD3C018 "Apple Development: xxx (60F7LJ3699)"
3) 21F086108036249F734ED29537C51EB1862233D4 "Apple Development: xxx (AB467AU4CN)"
3 valid identities found
第二步:获取.mobileprovision文件
必须是付费证书产生的,appid、device一定要匹配,并放入.app包中。可以通过Xcode自动生成,然后在编译后的.app包中找到:
或者去开发者网站生成下载证书。
embedded.mobileprovision是固定命名规则
第三步:提取entitlements.plist
先生成temp.plist文件
$ security cms -D -i embedded.mobileprovision > temp.plist
再获取entitlements.plist文件
$ /usr/libexec/PlistBuddy -x -c ‘Print :Entitlements’ temp.plist > entitlements.plist
第四步:重签名
$ codesign -fs 21F086108036249F734ED29537C51EB1862233D4 —entitlements entitlements.plist iOSTest.app