美文网首页iOS相关
iOS重签名(手动签名)

iOS重签名(手动签名)

作者: 不忘初心_R | 来源:发表于2018-05-09 03:25 被阅读494次

    1、准备工作

    • 1.1获取破壳的ipa包

    借助PP助手下载越狱的IPA包,一般的APP在上面都是有的。点击下载可以找到对应的ipa包。(小坑:本来连着手机,没有下载两个字,只有安装。纠结半天。。后来把手机退了就OK了)


    PP助手截图
    • 1.2右键解压出app文件,这里以微信为例
    WeChat.app

    利用命令查看是否破壳 (codesign -vv -d 文件名)

    $ codesign -vv -d WeChat.app
    
    已破壳

    附加一张正版的执行结果图


    正版
    • 1.3 查看可执行文件的加密信息

    cd到app文件里面

    $ cd WeChat.app/
    

    执行命令

    $ otool -l WeChat | grep crypt
    
    执行结果

    cryptid==0越狱应用 cryptid==1未越狱应用 不可用!

    • 1.4 开发者证书&描述文件
      通过本地CSR证书获取开发者证书,并安装到钥匙串(具体步骤就不演示了,自行百度)
      执行命令查看本机证书列表
    $ security find-identity -v -p codesigning
    

    随便创建一个工程,选择好证书之后,连接真机编译。


    工程

    找到生成的app目录,show in finder -->显示包内容(内含描述文件)

    2、进入正题

    • 2.1 删除插件(在网上那些所谓的多开软件都是将此删除掉的)

    右键显示包内容
    将所有插件和watch.app删除


    插件
    watch.app
    • 2.2 对FrameWorks进行签名


      image.png

    对 .app文件中 Framework 文件夹中库进行重签名,(没有的跳过)

    重签名命令(codesign -fs "证书" 需要签名的文件)

    $ codesign -fs "iPhone Developer: xxx (4N7XH2PX6N)"  xxx.framework
    

    注:有几个文件就要执行几遍,即对framework依次进行重签名!
    下面是获取证书名字的地方


    证书名字
    • 2.3 给可执行文件执行权限
    $ chmod +x WeChat
    
    执行后变成可执行文件
    • 2.4 拷贝描述文件
      将上面备用的描述文件拷贝到WeChat.app文件中。

    • 2.5修改info.plist中的Bundle ID
      将info.plist 文件中的Bundle ID拷贝,将WeChat中的info.plist中的Bundle ID替换

    • 2.6 生成plist权限文件
      查看拷贝进来的描述文件(security cms -D -i 描述文件名)

    $ security cms -D -i embedded.mobileprovision
    
    权限文件

    将权限文件复制,然后在xcode中生成一个plist文件,并复制到WeChat的同目录下。如图


    效果图
    • 2.7 签名整个APP!
    $  codesign -fs "iPhone Developer: xxx (4N7XH2PX6N)" --no-strict --entitlements=lc.plist WeChat.app
    
    签名成功
    • 2.8 生成ipa包(或者右击直接改后缀为zip)
      记得cd到上一级路径(payload的上一级) 执行命令(zip -ry 自定义名字.ipa Payload)
    $ zip -ry WeChat.ipa Payload
    

    最后通过Xcode或者其他方式将ipa包装到自己手机就OK了。亲测可用,手动签名成功

    注:很多地方需注意cd的路径位置,没有表明很清楚

    第一次认真的写文章,想尽可能的写详细点。

    相关文章

      网友评论

        本文标题:iOS重签名(手动签名)

        本文链接:https://www.haomeiwen.com/subject/gbbgrftx.html