iOS逆向一步一步教你重签名ipa包

作者: iCode_ | 来源:发表于2018-03-05 10:49 被阅读739次

如果你想把一个ipa文件安装到自己的iPhone上(别人发你的或者从第三方商店下载的…)你的手机如果没有越狱是无法正常安装的(排除企业证书分发),但是 我们可以通过为ipa重签名实现,原理是将我们自己的证书打进ipa。
现在我们开始来进行重签名。

👉前提:要有自己的开发者账号。

第一步:用Xcode新建一个工程,Bundle identifier不要和手机中已有的的APP重复,然后用自己的证书打包出ipa文件。

第二步:获取mobileprovision文件。
先将一中(用自己证书打包的)ipa包进行解压。选中ipa包,右键 -> 打开方式 -> 解压,如下图所示:

解压ipa 解压完之后会生成一个Payload文件夹,点进去在文件上右键 -> 显示包内容。如图: mobileprovision文件 将图中标记的文件拷贝到桌面(或者其他地方)后面要用。

以下第三、四、五步中如果之前已经安装过可以跳过

第三步:安装Homebrew
在终端先后执行下面2命令行安装,等待进度完毕
xcode-select --install

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

第四步:安装ruby
在终端执行下面命令安装ruby,等待进度完毕(输完密码可能在较短时间无反应)
brew install ruby

第五步:安装sigh脚本
执行下面安装命令
sudo gem install sigh

若出现以下报错

ERROR: While executing gem ... (Errno::EPERM)

Operation not permitted - /usr/bin/rougify

则安装命令修改为
sudo gem install -n /usr/local/bin sigh

附:Sigh脚本GitHub地址

第六步:使用sigh脚本开始重新签名
1、在终端输入sigh resign,回车
2、把要签名的ipa文件(路径、包名不要有中文)拖到终端窗口上,回车
3、填写用来签名的证书(第一步中的证书)名如图(钥匙串中的完整名字),回车

证书名称:在钥匙串的证书上右键->显示简介

4、把项目的配置文件.mobileprovision文件(第二步中的文件)拖到终端窗口上,回车
5、好了,resign脚本会自动更改bundel id,签名并重新打包。
完成后提示Successfully signed,新生成的包会自动替换原有文件。

第七步:安装重签名后的ipa文件
最新的iTunes已经不能给iPhone安装APP了,所以我们可以使用各种助手或者iTools进行安装。

相关文章

网友评论

  • iOS攻城狮_Runloop:重签名倒是成功了,上传到蒲公英后,安装会提示无法下载。是怎么回事?
    行走在北方:@天天向上IOS 我的也是无法安装,你解决了吗
    天天向上IOS:确实,无法安装。你解决了么
  • ChardXu:第四步:把项目的配置文件.mobileprovision文件(第二步中的文件)拖到终端窗口上,回车
    提示: Couldn't find signing identity ''.
  • 独酌丿红颜:怎么不改变bundel id 进行原IPA重签呢?
    独酌丿红颜:@淡漠烟薰 有联系方式,可以学下吗?
    iCode_:第一步里用原bundle id创建工程
  • ef4b6e6d5ae9:可以不改变bundel id,对原来的IPA 进行签名呢
    ef4b6e6d5ae9:@淡漠烟薰 给过来的直接是IPA的包,对这个包签名呀
    iCode_:第一步里用原bundle id创建工程
  • 我想说_:/Library/Ruby/Gems/2.3.0/gems/fastlane-2.96.1/fastlane_core/lib/fastlane_core/ui/interface.rb:141:in `user_error!': ipa file could not be found or is not an ipa file (/Users/admin/Desktop/2/JDLAnimationTabbar.ipa) (FastlaneCore::Interface::FastlaneError)
    我命名直接全部拖进去了 还是未找到
    iCode_:可以用企业证书重签。无法安装可能是因为ipa包和网页的bundle ID不匹配
    我想说_:@淡漠烟薰 你好,是不是不能用企业证书重签?我重签成功了,上传到蒲公英,无法安装
    iCode_:1.重签的.ipa文件和embedded.mobileprovision配置文件放到同一个文件夹下(比如桌面)
    2.如果应用有多个targetes无法用上述方式重签名
  • 我想说_:可以加QQ详细了解一下吗
  • 这人很懒:楼主 MonkeyDev 也可以重签 简单便捷
    还有Xcode 可以吧ipa 包安装到手机的
    这人很懒:@淡漠烟薰 回头自己写脚本 自动化重签:stuck_out_tongue_winking_eye::stuck_out_tongue_winking_eye::stuck_out_tongue_winking_eye:
    iCode_:嗯,这两个都用过。技多不压身
  • 87f4d6307fa4:如果用发布版证书,命令行,重签,上传appstore,会被拒吗 ,up主
    ChardXu:@淡漠烟薰 :不行吗
    iCode_:@朕是一只哈士奇 重签名的ipa是不能上传appStore的
  • 清辉_:Dear Developer,

    We identified one or more issues with a recent delivery for your app, "xxxx00". Please correct the following issues, then upload again.

    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.

    Best regards,

    The App Store Team
    清辉_:@淡漠烟薰 我是使用codesign命令签名的 ,原来的包是使用正式版打包的
    iCode_:Xcode Beta版打包的应用不能通过审核
  • 清辉_:把项目的配置文件.mobileprovision文件(第二步中的文件)拖到终端窗口上,回车
    5、好了,resign脚本会自动更改bundel id,签名并重新打包。
    提示:
    /usr/local/lib/ruby/gems/2.5.0/gems/fastlane-2.87.0/fastlane_core/lib/fastlane_core/ui/interface.rb:133:in `user_error!': Provisioning profile file could not be found or is not a .mobileprovision file (CA110109BB00BC293FD6D9E433AEBAA7886191AC/Users/qianyou/Desktop/yujianxy.mobileprovision) (FastlaneCore::Interface::FastlaneError)
    iCode_:@luzongyuan Provisioning profile file could not be found or is not a .mobileprovision

本文标题:iOS逆向一步一步教你重签名ipa包

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