iOS 重签名

作者: reboot_q | 来源:发表于2018-05-08 15:17 被阅读242次
      1. 准备
      • 1.1 获取一个破壳的 ipa 包
        可以通过 pp 助手下载现成的破壳 app, 我下载的 QQ 音乐.

        pp.png
        将 ipa 包中的 .app 文件 Copy 出来备用, 查看 .app 包是否被破壳:
         $ codesign -vv -d QQMusic.app
        
        codesign.png

    查看 .app文件的加密状态, crypt==0可用! crypt==1, 未解密, 不可用!

       $ otool -l QQMusic | grep crypt
    
    crypt.png
    • 1.2 Appledeveloper 开发者证书
      通过本地 CSR 从Appledeveloper 网站申请开发者证书, 安装到钥匙串.


      cer.png

      查看本地证书列表, 复制名称, 备用

      $ security find-identity -v -p codesigning
      
      cerlist.png
    • 1.2 描述文件(.provision profile)
      新建一个 xcode 工程, 编译后会在 app 包里生成一个.mobileprovision文件, 直接 copy 到跟.ipa 同级目录下.

      prov.png
      1. 配置
      • 2.1 删除插件
        .app中的插件全部删除

        plugin.png watch.png
      • 2.2 对 .framework 进行重签名
        如果 .app中有 Framework 文件夹, 需要对其中库进行重签名(QQ音乐没有)

        $ codesign -fs "iPhone Developer: xxx (J5HYSJ3F78)"  xxx.framework
        
      • 2.3 修改可执行文件为可执行

        $ chmod +x qqMusic
        
      exec.png
      • 2.4 配置描述文件
        查看本地描述文件信息:

        $ security cms -D -i embedded.mobileprovision
        
    provision.png

    将签名信息 copy, 生成一个 .plist 文件, 让后将.plist文件 Copy 到 .app 同级目录下.

    plist.png
    描述.png
    • 2.5 修改 bundleID
      .appInfo.plist文件中的 bundleid 与新建的 xcode 项目Info.plist文件中对应的bundleid设置成相同值.

    • 2.6 开始签名

    $  codesign -fs "iPhone Developer: xxx (J5HYSJ3F78)" --no-strict --entitlements=em.plist QQMusic.app
    
    sign.png
    • 2.7 生成 .ipa 包, 安装测试

    亲测, 手动重签名成功, 🍺🍺🍺!!!

    相关文章

      网友评论

      • 午马丶:你好,我在安装重新签名之后的ipa的时候,总是提示我App installation failed There was an internal API error.这个错误,这个是哪里出了问题呢? 能否帮解答一下谢谢。
      • 夜空星尘:👍👍👍
      • WinJayQ:老铁,666:+1:
        reboot_q:😓不敢当, 路漫漫啊

      本文标题:iOS 重签名

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