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