三 2手动签名图文说明

nx_001.jpeg

在应用签名原理手动签名中,我们说到了手动签名的步骤以及手动签名需要用到的相关终端命令,这一篇文章中,我们就来图文说明一下手动签名的过程。

准备工作:
1.macOS 10.15.2 
2.Xcode 11.3.1
3.手动签名的微信ipa包(Wechat7.0.2越狱版本)
4.这里我们使用个人的免费的开发者账号进行开发测试

微信ipa包(Wechat7.0.2越狱版本),密码:hyya

1. 拿到微信的越狱资源包
  • 将资源包后缀ipa改成zip格式
  • 解压zip文件
  • 打开资源包->Payload->WeChat显示包内容
  • cd 到 Payload 文件夹内
// 查看当前项目的可执行文件
codesign -d WeChat.app 

// 查看签名信息
codesign -d -v WeChat.app

// 查看更详细的签名信息
codesign -d -v WeChat.app
3.1_签名信息.png
2.查看自己证书
// 查找并列出钥匙串中可用于签名的证书 注意这里找自己的证书
security find-identity -v -p codesigning
3.查看WeChat文件

1.查看 Payload 文件夹内WeChat文件,选择显示包内容。
2.我们可以看到一个和WeChat同名的exec类型的可执行文件,我们重签名签的就是这个文件。
3.我们可以通过 otool -l WeChat 命令来查看WeChat的文件信息。
4.由于信息比较多,我们可以使用管道将内容重定向到文件中 otool -l WeChat > ~/Desktop/123.txt
5.在文件中我们查找cryptid 会发现 cryptid后面是0,说明WeChat文件没有加密,非0的数字代表的app的可执行文件是加密的,表示的是app的可执行文件使用的是某一种加密方式为1的方式进行的加密。
6.我们也可以用管道筛选 otool -l WeChat | grep crypt 此时可能得到2个cryptid,表明这个可执行文件有2种架构。通过file WeChat 查看

4.重签名

1.将Payload文件夹和我们自己的工程项目放到同同一级目录下。

3.2_目录结构.png

2.删除WeChat中插件(Plugin)和带有插件的.app包(比如Watch)

3.对Frameworks里面的文件进行重签名。(每个都要重新签名)
codesign -fs "Apple Development: [email protected] (9FX3697KS2)" ConfSDK.framework

5.注意查看执行文件是否有可可执行权限,如果没有可执行权限也是签不成功的。chmod +x 可执行文件(给可执行文件添加可执行权限)

6.对整个app重新签名。

  • 找刚创建的项目->Products->WeChat.app->show in finder ->显示包内容,将 embedded.mobileprovision 文件拷出,暂时先放在 Payload文件夹同级目录下。
  • 将 embedded.mobileprovision 拷贝一份放在 Payload->WeChat中,替换掉之前的文件。
  • 修改 Payload->WeChat 的build id 改成我们自己的。
  • 查看刚才拷出来的embedded.mobileprovision文件,找到Entitlements, 使用命令security cms -D -i embedded.mobileprovision
  • 在Xcode中新建plist文件entitlements.plist,将刚才看的权限dict放到新的文件中。
  • 将 entitlements 文件放在Payload文件夹中,和WeChat在同一级目录下。
  • 对 Payload 文件夹下的文件进行签名。codesign -fs "Apple Development: [email protected] (9FX3697KS2)" --no-strict --entitlements=entitllements.plist WeChat.app
  • 此时,使用codesign -d -vv WeChat.app命令查看 签名信息会发现签名信息已改变。
  • 删除 Payload 文件夹中的权限文件,退出到 Payload 的上一级文件夹中,将 Payload 打包成ipa包。zip -ry WeChat.ipa Payload
  • 打开Xcode,执行command+shift+2,选择刚才的ipa包,安装。

可能出现的问题:

  • 第一次安装是没有描述文件的,需要先去信任个人开发账号。
  • 打开可能会闪退,原因是描述文件不是Xcode安装的所以会闪退,此时使用Xcode先运行下空工程,再次安装app。

不清楚的地方,欢迎留言评论
应用重签名

你可能感兴趣的:(三 2手动签名图文说明)