美文网首页
iOS手动重新签名ipa包

iOS手动重新签名ipa包

作者: nilzz | 来源:发表于2020-01-12 14:36 被阅读0次
    • 使用Offline砸壳过的ipa示范
    • 简单使用到到命令介绍
    codesign -d Offline.app   #查看可执行文件路径
    codesign -d -v Offline.app   #查看更详细的信息
    codesign -d -vv Offline.app  #查看更详细的信息,包含签名信息
    codesign -fs “证书串” --no-strict --entitlements=权限文件.plist APP包 #签名.app包
    codesign -fs “证书串” 目标文件.framework  #签名Frameworks目录下的可执行文件
    codesign --force --verify --verbose --sign "证书串" 目标文件.dylib  #dylib 签名
    security find-identity -v -p codesigning  #查看本地可用的证书
    security cms -D -i embedded.mobileprovision #查看描述文件
    chmod -R 777 二进制文件  #给二进制可执行文件权限
    Zip -ry 压缩后输出文件名 要压缩的文件 #压缩文件
    
    • 创建一个Xcode iOS项目

    主要是获取embedded.mobileprovision描述文件
    编译 -- 真机调试 -- 才能生成描述文件


    img.png
    img.png

    有效期只有6天,拷贝embedded.mobileprovision描述文件到Offline.app目录下


    img.png
    img.png

    修改需要签名文件夹里面的Info.plist文件,将之前Xcode里面的BundleID替换到Info.plist文件对应的地方


    img.png
    img.png

    修改Info.plist文件后保存


    img.png
    • 创建权限文件
    security cms -D -i embedded.mobileprovision  #查看描述文件
    

    复制红框内代码


    img.png

    com + N 选择创建 XX.plist文件


    img.png
    切换模式编辑plist文件
    img.png

    复制红框内代码粘贴到plist文件


    img.png
    切换回来的模式
    img.png
    img.14.png
    拷贝文件,.plist文件 可以重命名,建议不要有空格
    我把Property List.plist重命名为 re.plist
    img.png
    • 准备签名

    • 签名注意-免费证书不能签名的东西

    第三方库签名不了,注意检查第三方库,没有就过滤掉,有就删除
    例如:Pluglns目录下的文件
    Offline.app/XXX.app下包含有第三方库 把整个XXX.app删除

    • 可签名

    Frameworks目录下有.framework可执行文件必须一个一个签名

    codesign -fs “证书串” 目标文件.framework  #签名Frameworks目录下的可执行文件
    

    dylib 文件签名

    codesign --force --verify --verbose --sign "证书串" 目标文件.dylib  #dylib 签名
    
    • 查看证书串
    img.png
    security find-identity -v -p codesigning  #查看本地可用的证书
    
    • 开始签名.app
    img.png
    codesign -fs “证书串” --no-strict --entitlements=权限文件.plist APP包 #签名.app包
    

    这里算把Offline.app签名完成了
    新创建Payload目录,把Offline.app放进去
    然后Payload目录压缩,压缩后文件后缀名重命名为ipa

    Zip -ry 压缩后输出文件名 要压缩的文件 #压缩文件
    
    • 安装签名好的ipa
    img.png
    img.png

    安装的手机 ID 必须是和证书的一样,否则会提示设备不一,等待安装完成,安装完成后手机桌面会显示安装好的图标

    • 安装报错解决

    The executable was signed with invalid entitlements.

    The entitlements specified in your application’s Code Signing Entitlements file are invalid, not permitted, or do not match those specified in your provisioning profile. (0xE8008016).

    注意BundleID 包名不能有非法数字开头
    重新检查编写的权限文件.plist 是否有错误

    • 制作越狱版ipa

    只需要对砸壳的二进制可执行文件重新签名就可以了

    codesign -fs “证书串” 可执行文件 #签名二进制可执行文件
    
    img.png

    前提需要安装有AppSync Unified插件(第一次安装需要重启才生效)
    不签名可能会安装失败或者打开闪退
    .app 目录下的embedded.mobileprovision描述文件删除
    Payload
    -----xxx.app
    压缩后,后缀名重命名为ipa

    相关文章

      网友评论

          本文标题:iOS手动重新签名ipa包

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