9.代码签名

[TOC]

签名原理

如图:

注释:

签名使用

手动签名

查看描述文件信息:$security cms -D -i 描述文件路径

查看所有证书:$security find-identity -v -p codesigning

查看签名信息:$codesign -vv -d xxx.app

查看可执行文件的加密信息:$otool -l WeChat | grep crypt

签名:$codesign -fs "证书" 需要签名的文件

查看描述文件:$

APP打包成IPA文件:

签名步骤(WeChat):

  1. 删除plugins文件夹(免费账号对.app文件中的plugins是不能进行签名。)
  2. 删除watchAPP,其中含plugins
  3. 对frameworks进行逐一签名;
  4. 给可执行文件执行权限! chmod +x WeChat;变成黑色exec文件;
  5. 拷贝描述文件;
  6. 修改info.plist 的Bundle ID!(保证team前缀一致)
  7. 生成权限plist文件;(保持.app和plist同目录)
  8. 签名整个APP!$codesign -fs "证书" --no-strict --entitlements=en.plist xxx.app
  9. 打包其实就是一个zip:$zip -ry WeChat.ipa Payload

Xcode签名

准备步骤手动完成,xcode只是对签名进行操作;

自动化签名

让xcode使用脚本进行签名,主要是对准备步骤使用脚本完成;

自动化签名主要是使用脚本对准备步骤脚本化,然后结合xcode对app的签名流程的了解的特性进行签名;

apple可能会对APP签名的具体流程进行更新,所以手动签名在不知道该流程时,不一定签名成功。而xcode作为Apple自家工具所以一定清楚其中的流程。

疑问:

otool:后面紧跟| grep crypt表示筛选?,otool本身是查看macho文件信息的!

你可能感兴趣的:(9.代码签名)