Xcode重签名第三方app

2018-05-09  本文已影响0人  Fendouzhe

熟悉几个命令

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

查看APP的签名信息
$codesign -vv -d APP路径

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

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

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

重签名(以微信WeChat为例子)

  1. 通过zip方式打开微信ipa(ipa其实就是一个zip包),进入Payload,找到WeChat app


  2. 创建XcodeSign 工程,运行项目,将XcodeSign app替换成Wechat app 然后重命名为XcodeSign


    打开app位置
拷贝修改 最终结果
  1. 将XcodeSign app显示包内容将里面info.plist 的Bundle identifier修改为XcodeSign 工程里面的Bundle identifier


    image.png
  1. 如果有Frameworks文件的话要对对 Frameworks 中的所有framework进行签名:$codesign -fs "证书" 需要签名的文件
codesign -fs "iPhone Developer: LuRong Lei (4Y7DZEPUB8)" WCDB.framework
成功返回:WCDB.framework: replacing existing signature
查找iPhone Developer LuRong Lei (4Y7DZEPUB8).png
  1. 给可执行文件执行权限! chmod +x WeChat 执行命令后文件由白变黑色
执行命令后文件由白变黑色
  1. 干掉XcodeSign app中插件Plugins文件夹(免费账号不能签名插件)! 和Watch文件夹 直接干掉! 运行Xcode,微信就安装到手机上了.


    Plugins文件夹
Watch文件夹

遇见的问题

进行第4步对framework进行签名的时候报错:

执行:codesign -fs "iPhone Developer: LuRong Lei (4Y7DZEPUB8)" MMCommon.framework
报错:iPhone Developer: LuRong Lei (4Y7DZEPUB8): ambiguous (matches "iPhone Developer: LuRong Lei (4Y7DZEPUB8)" and "iPhone Developer: LuRong Lei (4Y7DZEPUB8)" in /Users/416862549qq.com/Library/Keychains/login.keychain-db)

原因是钥匙串中有多个iPhone Developer: LuRong Lei (4Y7DZEPUB8)证书,删除掉多余的,剩下一个就可以。


image.png
上一篇下一篇

猜你喜欢

热点阅读