簽名相關的命令:
?$security find-identity -v -p codesigning -- 列出鑰匙串裏可簽名的證書
?$security cms -D -i embedded.mobileprovision -- 查看描述文件
?$codesign–fs “證書串” 文件名 -- 強制替換簽名
重簽步驟:
1.刪除插件和帶有插件的.app包(比如Watch)
2.對Frameworks裏面的庫進行重簽名
3.給可執行文件 +x(可執行)權限
4.替換描述文件
5.替換BundleID
6.通過授權文件(Entilements)重簽.app包
實際操作:
獲取破殼的ipa包
獲取第三方ipa包
查看ipa包是否已經破殼 》 非上架的都沒加殼,無需關註
解壓ipa包,進入playload文件夾,找到MachO文件
在終端使用命令otool -l DingTalk | grep crypt,0是已脫殼,大於0是未脫殼(壹
般為1)
終端查看本地有效證書
$security find-identity -v -p codesigning
刪除無法簽名的插件文件
刪除Plugins文件夾和Watch文件夾
對.app文件夾內的Frameworks文件夾中的每壹個framework強制重簽名
命令:$ codesign -fs "iPhone Developer: xxx " xxx.framework
找到framework文件夾下所有.framework,分別使用上面的命令對其簽名。
建議通過腳本命令執行:
將要簽名的描述文件該成 embedded.mobileprovision 替換 來的 embedded.mobileprovision
創建entitlements.plist文件
查看描述文件內容,使用命令security cms -D -I embedded.mobileprovision,找到Entitlements節點,接著創建entitlements.plist文件,內容拷貝過去,最後把entitlements.plist文件拷貝到playload文件夾內(與xx.app同級)。
!]( blogs.com/guohai-stronger/p/11781249.html
iOS APP簽名機制詳解