iOS APP重签名

作者: XPorter | 来源:发表于2016-09-22 16:04 被阅读3835次

    这篇文章以目标为:
    实现安装两个app,也就是修改info.plist中的Bundle identifier

    对app重签名推荐使用iOS_resign_scripts,下载下来之后会有三个命令,对应不同的场景,接下里以第一个为例。

    1.准备材料

    开始之前需要准备:

    1. 有效的证书(可以在钥匙串中查找)

    2. mobileprovision 文件,可以在xcode中找一个有效的,
      右键 show in finder,将文件复制出来,重命名为embedded.mobileprovision,备用

      Paste_Image.png
    3. ipa包
      ipa包可以通过itunes下载,下载之后在这个路径下


      ipa
    4. 脱壳的二进制文件,decrypted文件,ipa脱壳看这里,脱壳得到的是一个.decrypted的文件,需要去掉后缀。

    现在我们已经得到了所有想要的东西。

    材料

    如果你的二进制文件看起来跟我的不一样?没关系,只是权限问题,想改的话可以试试用修改下权限

    chmod 777  WeChat
    

    2.开始修改内容并重签名

    既然想要安装两个同样的app,那就修改Bundle identifier,接下来的步骤就没什么好说的了

    解压ipa -> 找到APP文件,右键显示包内容 -> 找到info.plist文件 -> 修改Bundle identifier
    

    再将脱壳的二进制文件复制进来,替换原来的二进制文件。修改工作就做好了,可以签名了!

    接下来用iOS_resign_scripts 进行重新签名。

    $ ios_resign_from_app_to_ipa app-extracted $Developer_code_sign $mobileprovision $target_ipa_related_path
    
    

    app-extracted 是个文件夹,可以直接把解压的到的文件夹重命名成app-extracted

    $ ls app-extracted
    META-INF             Payload              iTunesArtwork        iTunesMetadata.plist
    

    签名完成之后会得到一个ipa文件,这个就是破解重签名的ipa了,可以用itools等工具进行安装测试。

    这里会有一个问题,如果app中包含了扩展之类的东西就需要注意了,每个插件包里都会有一个info.plist文件,里面的Bundle identifier也需要做相应的修改,不然后导致安装失败。

    另外即使改了所有相关的Bundle identifier,还需要对扩展插件进行砸壳才行。所以为了方便,我就把所有插件相关的东西都删了!

    分享扩展 watch

    再次打包重签名,安装测试。终于可以了!

    成果

    相关文章

      网友评论

      • leftwater:多目标签名失败啊
      • 清辉_:Invalid Swift Support - The file libswiftAVFoundation.dylib doesn’t have the correct code signature. Make sure you’re using the correct signature, rebuild your app using the current public (GM) version of Xcode, and resubmit it. Don’t just modify the code signature of libswiftAVFoundation.dylib.
      • 留几分念想:问下楼主,有没有试过ios11系统下安装重新签名的包呢?
        留几分念想:@XPorter iOS11下好像不行了
        XPorter:最近没试过 有问题吗
      • 童星:如何修改微信这个 appname 呢?它是本地化的,无法直接在 plist 文件里修改,你有什么解决方案吗?
        童星:@XPorter :sweat: string 编译后的文件是 bplist 格式的,看都看不懂的,试过了笨方法就是用一个已经编译好的 string 去替换,然而很麻烦
        XPorter:你可以试试在本地化文件中找到对应的key,修改下value
      • 吃蘑菇De大灰狼:我重签名不实用这个方法,也可以,但是之前忘记改`info.plist`的文件的`Bundle identifier`了。难怪一直装不上,没想到还要签名Extention,谢谢分享了~
        yh8577:没有越狱不行吗?安装闪退
      • nonatomic:我按照你上面说的操作,删掉插件之后,报

        ls: _floatsignTemp/Payload/: No such file or directory
        find: _floatsignTemp/Payload/: No such file or directory
        Expected file does not exist: '_floatsignTemp/Payload//Info.plist'

        请问 为什么找不到这个路径啊
        XPorter:@haoyangde https://github.com/chenhengjie123/iOS_resign_scripts 你看下这个的用法
        nonatomic:@黑白灰_lve 最后一步
        XPorter:@haoyangde 哪一步的报错?

      本文标题:iOS APP重签名

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