IPA 重签名

注意:这篇文章所记录的技巧仅供大家交流学习使用,不要像快用那样用作盗版分发

在日常生活中,经常会有朋友丢给你自己写的ipa,或者有的app没有上架appStore,只有一个越狱渠道的版本。

这个时候如果我们设备没有越狱的话,可以通过重签名的方法来将这个app部署到我们的开发机上,所谓开发机就是安装了证书的手机。

对于重签名,可以通过一个软件 InstaSign ,来自动化实现这个过程。但是有个很大的弊端,它会破坏掉我们的发布环境,即替换了/usr/bin/codesign。

这个时候,我们可以手动实现这个流程。

我们这里用布卡漫画来举例:

  • 解压ipa,露出Payload 文件

  • 将Payload 文件中的 _CodeSignature 文件夹彻底删除

  • 从你的一个能正确部署到手机上的项目xxxxx.app中拷贝 embedded.mobileprovision 文件

  • 去keychain 中搜索iPhone 如下图:

复制和第三步同样的一个证书的名称:iPhone Developer: XXXXXX (XXXXXX) 这样的一个结构,如果是从企业证书发布环境下拷贝的就是iPhone Distribution: xxxxx (xxxxxx)。

  • 在命令行下,cd到 Payload 文件夹之外。
1
/usr/bin/codesign -f -s "iPhone Developer: XXXXXXXX (XXXXXXXX)" --resource-rules bukaios.app/ResourceRules.plist bukaios.app

如果一切正确,则会提示:bukaios.app: replacing existing signature

  • 打包回ipa, zip -r buka.ipa Payload
  • 在XCode-Organzier-Devices 左侧的已连接设备中选择Apllications-Add
  • 不出意外就能安装成功。

  • 如果喜欢,可以把这整个流程写成一个批处理。

ipa 重签的更多相关文章

  1. 签名mobileconfig 重签ipa

    .mobileconfig文件的签名 生成Apache专用的三个证书 双击[2331135_zgp.ink_chain.crt]可以看到它是个根证书,在mac上,双击它,导入到证书中心,然后再导出为p ...

  2. iOS重签

    由于渠道推广需要,可能需要多个包做备份推广,区别是icon.游戏名称.登录logo.bundleid.签名证书.支付Consumables不同,其他游戏包体完全相同. 反复修改多次文件提交Jenkin ...

  3. ipa重签名最直接的教程

    ipa 包重签名最新最简单教程 重签名的意义:ipa 重签名最大的用处是,不必重新打包,和配置其它第三方获取 appkey 等操作,直接重签名之后依然可以拥有这些功能,更快的发布测试或者灰度版本. 本 ...

  4. iOS ipa 重签名 resign

    这篇关于codesign的文章不错 https://www.objccn.io/issue-17-2/ 英文原文:https://www.objc.io/issues/17-security/insi ...

  5. ipa重签名

    为什么要研究重签名问题?将程序打包成ipa包后,ipa包中会包含Provisioning Profile和_CodeSignature等文件,里面包含了对整个ipa的签名信息. 一旦改动ipa中的不论 ...

  6. iOS逆向必备绝技之ipa重签名

    一.重签名准备工作: 找到开发者证书和配置文件: 列出所有开发者证书文件: security find-identity -p codesigning -v 找一个开发环境配置文件生成entitlem ...

  7. 使用企业证书给iOS应用重签

    来源:https://github.com/sailtsao/iReSign 这里有个开源的签名工具,已经修改为支持dylib frameworks等的签名了,使用这个签名不会出现任何问题 iReSi ...

  8. iOS安装包重签笔记

    https://blog.csdn.net/skylin19840101/article/details/60583893

  9. ios App 开发指南

    开发者账号申请 http://www.applicationloader.net/blog/zh/547.html https://zhuanlan.zhihu.com/p/66118041 http ...

随机推荐

  1. 【特殊的图+DP】【11月校赛】大家一起玩游戏

    大家一起玩游戏 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submi ...

  2. iOS/iPhone 程序文件目录结构以及启动流程

    要想清晰的理解IOS应用程序的启动过程,毫无疑问需要深入了解一下ios应用程序的文件系统.一个ios应用程序都有一个属于自己沙盒(sandbox),应用沙盒就是文件系统目录,并且与文件系统的其他部分隔 ...

  3. 将mysql服务加入到系统服务中 服务器配置 注销时不会关闭mysql

    将mysql加入系统服务中: 或者在cmd中输入:mysql安装路径\mysql\bin\mydqld.exe --install mysql --defaults-file="mysql安 ...

  4. css权重计算

    第一等:代表内联样式,如: style=””,权值为1000.    第二等:代表ID选择器,如:#content,权值为100.    第三等:代表类,伪类和属性选择器,如.content,权值为1 ...

  5. 浅谈postMessage多页面监听事件

    最近做了一个Echarts和Highcharts多图多页面连动的效果,就用到postMessage 如下介绍: 最开始在最外围的页面也就是所有页面的父级页面添加postMessage监听事件以便监听下 ...

  6. HDU 5794 - A Simple Chess

    HDU 5794 - A Simple Chess题意: 马(象棋)初始位置在(1,1), 现在要走到(n,m), 问有几种走法 棋盘上有r个障碍物, 该位置不能走, 并规定只能走右下方 数据范围: ...

  7. centos 7 epel地址

    wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

  8. python成长之路第二篇(4)_collections系列

    一.分别取出大于66的数字和小于66的数字 小练习:需求要求有一个列表列表中存着一组数字,要求将大于66的数字和小于66的数字分别取出来 aa = [11,22,33,44,55,66,77,88,9 ...

  9. 通过Wmi实现Hyper-V远程管理(一)

    最近公司需要做Hyper-V的远程管理,在现有产品基础上扩展对Hyper V的管理,实现远程开关机.远程开启虚拟机会话,其他内容可查看MSDN中有对Hyper-V的描述和相关实例代码. Wmi操作hy ...

  10. Ubuntu 14.04卸载安装失败的Mysql数据库,以及重新安装配置

    一.删除原来Mysql 1.删除mysql的数据文件 sudo rm /var/lib/mysql/ -R 2.删除mqsql的配置文件 sudo rm /etc/mysql/ -R 3.自动卸载my ...