iOS 重签名

    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 包, 安装测试

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容