美文网首页逆向工程
iOS打包后重新签名(亲测:可以安装到手机上)

iOS打包后重新签名(亲测:可以安装到手机上)

作者: 永远都能 | 来源:发表于2016-05-23 15:09 被阅读6619次

    http://dantheman827.github.io/ios-app-signer/
    ------------------以下作废,请下载并使用上面的工具------------------
    先用fir随便搞个id和profile打包··
    然后重新签名:http://www.jianshu.com/p/441f19fbdc5c
    遇到的一个问题:——resource-rules已弃用mac os x > = 10.10
    解决问题链接:http://stackoverflow.com/questions/26459911/resource-rules-has-been-deprecated-in-mac-os-x-10-10

    http://www.objccn.io/issue-17-2/

    ----->发现上面的不太好用。可以采用下面的方式:
    1.(随便填个id、取消账号、profile选auto)Archive --> 右键生成的Archive文件 --> Show in Finder --> 右键xxx.xcarchive文件 --> 显示包内容 --> 找到真正的xxx.app --> 拖到 itunes中,成成ipa --> 右键,在Finder中显示。

    2.将得到的ipa解压
    --step1:unzip ipa_path -d (解压后的目录)

    --step2:rm -rf YooYoYZL.app/_CodeSignature/ 移除里面的签名文件

    --step3:cp (你要签名的mobileprovision路径) 当前.app里面的mobileprovision路径

    --step4:/usr/bin/codesign -f -s "发布证书名称" --entitlements entitlements.plist路径 当前的.app路径
    //如果提示找不到,则需要另外创建一份entitlements.plist路径
    //创建方法:
    $security cms -D -i 你要签名的mobileprovision路径 > t_entitlements_full.plist
    $/usr/libexec/PlistBuddy -x -c 'Print:Entitlements' t_entitlements_full.plist > t_entitlements.plist
    //最终得到t_entitlements.plist 即是需要的plist

    //注意:1.如果需要修改identifier的 则进入.app里面的info.plist找到bundleId进行修改
    // 2.要id和profile文件里面的id一致,发布证书和profile匹配才是真正的成功.不然提示安装失败。

    --step5:提示成功替换后则手动压缩Payload成zip ,然后改为ipa即是最终版本
    //在此之前可以执行命令查看是否重签成功:
    1:codesign -d --entitlements - Example.app
    2:$ security cms -D -i example.mobileprovision
    3:codesign -vv -d example.app路径

    第三个可以查看id和证书,比较常用,有任何问题的朋友可以留言·。

    亲测可以安装到手机上。

    相关文章

      网友评论

      • 铃兰_900f:安装上面的操作后,还是无法安装。
        永远都能:可能过时了,上面那个工具下载试试。
      • 44ef0dbe9e5a:重签后原Info.plist里面的BundleId跟embedded.mobileprovision文件里的不同,能安装的上?
      • 44ef0dbe9e5a:不改bundle id,info.plist跟profile的id不同,能安装成功?
      • SuperRoot:首先谢谢你的分享,这是我试验的结果给你补充一下:
        从商城下载的ipa,个人的开发者账号,用软件做的重签名
        未破壳的:重签名后,只能安装在已越狱的设备上,但点开后闪退
        已破壳的:重签名后,只能安装在已越狱的设备上,点开后完美运行
        50854e47a81c:我也遇到和你一样的结果 请问你后来是怎么让他们破壳的
        SuperRoot:重签名后两个文件的bundle ID也都换了,越狱设备上可以安装两个同款APP
      • 0271fb6f797c:.app里mobileprovision文件找不到,怎么解决
        永远都能:@dong136279559 直接用那个软件,不要用命令行了。
        0271fb6f797c:@永远都能 没有,就是按着下面的步骤来的
        永远都能:@dong136279559 有没有用那个软件进行签名?
      • 5c2ad94c9daf:App Store下载的ipa可以重签名吗 楼主,如果用你的这篇文章操作的话?
        5c2ad94c9daf:@永远都能 是不是必须先破壳再重签名啊
        永远都能:@zzy0129 bu cheng`
      • MarkJY:你好,我安装上了,但是打开就闪退,可以大概知道什么问题吗?我证书是用的开发证书,bundle ID直接在info.plist改了的,看了重签后的证书和bundle ID都是一样的
        永远都能:@Mark魚 直接用那个工具
      • bb4e58df981a:楼主,您好,mac10.10以后只能使用你介绍那个的工具了是吗
        永远都能:@硪想这辈子都牵着尔走a 是的
      • pingerbufan:Warning: --resource-rules has been deprecated in Mac OS X >= 10.10!
        这个怎么破呢????
        永远都能:@平而不凡 最上面有个签名工具
      • 大大的无敌:——resource-rules已弃用mac os x > = 10.10 Payload/: cannot read resources 怎么破
      • 春田花花幼儿园:...大厂的. app没有mobileprovision,那就没啥意义了
      • dacc78ce2429:按照步骤做了 最后codesign -vv -d出来的是pokemongo.app: no signature
        Info.plist=not bound
        TeamIdentifier=not set 不知道哪里出问题了
        永远都能:@JaHov 加我QQ 1003580893
        dacc78ce2429:@永远都能 下面的 t_entitlements.plist里内容为<?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;>
        <plist version="1.0">
        <dict>
        <key>application-identifier</key>
        <string>RX7RSHY5KQ.com.nianticlabs.pokemongoo</string>
        <key>com.apple.developer.team-identifier</key>
        <string>RX7RSHY5KQ</string>
        <key>get-task-allow</key>
        <false/>
        <key>keychain-access-groups</key>
        <array>
        <string>RX7RSHY5KQ.*</string>
        </array>
        </dict>
        </plist>
        永远都能:@JaHov 是按照上面的还是下面的呢?重新来试试看
      • 7d754cdff2a4:$security cms 命令通不过,正确的写法是?
        7d754cdff2a4:@永远都能 貌似打包成功了。
        永远都能:@bennet 打包成功了吗?
        7d754cdff2a4:@bennet 提示:-bash: cms: command not found
        谢谢分享。刚好遇到这问题。stackflow 里的解决不了。ipa是人家给的,暂时不能重现设置xcode,重新打包
      • 啊哈哈星人:似乎.app里没有mobileprovision了,还是我理解错了
        啊哈哈星人:@永远都能 我用adhoc的mobileprovision进行的替换,可以安装,但是打开就崩,这是为啥
        啊哈哈星人:@永远都能 原来如此,也就是说重新签名,只适用于不是AppStore上下载的ipa包,对吧
        永远都能:@啊哈哈星人 有的。从APPSTORE下载的没有。自己归档的有。
      • Fang_OSH:先收藏着
        永远都能:@策云曦昱iOS_Swift 谢谢

      本文标题:iOS打包后重新签名(亲测:可以安装到手机上)

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