美文网首页
应用签名

应用签名

作者: 喵喵粉 | 来源:发表于2019-08-04 18:41 被阅读0次

    这里记录3种签名方式
    1.手动签名
    2.手动+Xcode签名
    3.sh脚本签名

    1. 准备工作,下好IPA包

    IPA文件
    • 查看IPA包的可执行文件(MachO文件)
    codesign -d WeChat.app
    
    查看IPA包的可执行文件
    • 查看MachO、app的签名
    codesign -d -vv WeChat.app/WeChat
    codesign -d -vv WeChat.app
    
    查看MachO的签名
    查看app的签名
    • 查看MachO文件是否砸壳, 重签名是在砸壳的基础上进行的,这里用的都是cryptid=0的IPA包
    otool -l WeChat.app/WeChat | grep crypt
    
    MachO文件是否砸壳
    • 查看MAC上安装的证书,签名要用到
    security find-identity -v -p codesigning
    
    查看MAC上安装的证书

    2. 手动签名

    手动重签名步骤

    进入WeChat.app,删除插件和带有插件的.app包(比如Watch和PlugIns文件夹)
    对Frameworks里面的库进行重签名
    给MachO文件 +x(可执行)权限
    添加描述文件(新建工程,真机编译得到)
    替换BundleID
    通过授权文件(Entilements)重签.app包
    Zip命令打包IPA包,安装Done
    
    • 对Frameworks里面的库进行重签名
    //强制替换签名
    codesign –fs “证书串” 文件名   
    
    Frameworks
    对Frameworks重签名
    • 添加描述文件
      xcode新建oc工程, BundleID为com.zz.huxiu,然后在手机上运行一遍 !

      工程目录
      Xcode
    • 替换wechat.app里面 Info.plist 的BundleID为com.zz.huxiu

      WeChat的Info.plist
      替换BundleID
    • 通过授权文件(entitlements.plist)重签.app包

    编译工程拿到mobileprovision文件

    编译工程拿到mobileprovision文件

    通过下面命令获取到embedded.mobileprovision中的Entitlements字段

    security cms -D -I embedded.mobileprovision
    
    获取到Entitlements

    Xcode中新建entitlements.plist文件,将上面的Entitlements字段复制进来


    entitlements.plist
    entitlements.plist

    将entitlements.plist copy到wechat.app同级


    copy entitlements.plist

    对wechat.app签名

    codesign -fs "iPhone Developer: dkdsj123@163.com (QRZLAJMA52)" --no-strict --entitlements=entitlements.plist Wechat.app
    
    对wechat.app签名

    查看签名后wechat.app的签名

    codesign -d -vv WeChat.app
    
    查看wechat.app的签名
    • 打IPA包
    zip -ry wechat.ipa Payload
    
    打IPA包
    wechat.ipa

    安装IPA包到手机 需要信任下证书 Done


    image.png

    3.手动+Xcode签名

    步骤(与手动签名对比 少了几个步骤:对MachO签名+打包IPA)

    进入WeChat.app,删除插件和带有插件的.app包(比如Watch和PlugIns文件夹)
    对Frameworks里面的库进行重签名
    替换BundleID (com.zz.huxiu)
    将WeChat.app替换xcode生成的app
    用xcode直接运行到手机 
    

    xcode新建WeChat同名工程 bundleID为com.zz.huxiu 先在手机上跑一遍,信任下证书!
    解压准备的IPA包=>WeChat.app

    未动的WeChat.app
    • 对Frameworks里面的库进行重签名
    //强制替换签名
    codesign –fs “证书串” 文件名   
    
    framework重签名
    • 将处理好的WeChat.app替换Xcode编译的app


      image.png
    • Xcode运行 done

    4.sh脚本签名

    步骤

    xcode新建工程 BundleID为com.zz.huxiu,然后在手机上运行一遍 
    Xcode添加脚本
    工程目录新增sh、APP/ipa文件
    Xcode 运行 done
    
    xcode添加脚本
    工程目录

    相关文章

      网友评论

          本文标题:应用签名

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