IMG_5816.JPG

  • 签名 , 原始数据 -> hash -> 加密
  • 重签名,原始数据 -> 重新hash -> 加密

    查看.ipa包签名信息

  • codesign -vv -d WeChat.app查看签名信息

    • 资源签名
    • Mach-o签名

image.png

  • 通过security find-identity -v -p codesigning列出当前可签名的账户信息

image.png

  • cryptid = 0 代表已经加密,非0代表未加密
  • mach-o中最重要的两段,代码段、数据段,加密即对代码段进行加密

    codesign重签名流程

  1. 删除插件和带有插件的.app包(比如watch)
  2. 对Framework里面的库进行重签名 codesign -fs “…” —no-strict —…
  3. 给可执行文件+x(可执行)权限
  4. 添加描述文件(新建工程,真机编译得到,而且要运行,将描述文件安装到手机)
  5. 替换BundleID (info.plist文件。BundleId要和描述文件中的ID保持一致)
  6. 通过授权文件(Entilements)重签.app包
    1. 查看描述文件$secrity cms -D -d embedded.mobileprovision
    2. 将描述文件中Entilements拷贝出来,生成plist文件。(文件名称entitlements.plist)
    3. 用权限文件签名APP包$codesign -fs “Apple Development:XX(XX)” —no-strict —entitlements=entitlements.plist WeChat.app
  7. 最后通过Xcode安装

    Xcode重签名流程

  8. 删除插件和带有插件的.app包(比如watch)

  9. 对Framework里面的库进行重签名 codesign -fs “…” —no-strict —…
  10. 给可执行文件+x(可执行)权限
  11. 将APP包拷贝进入Xcode工程中(剩下的交给Xcode)