重新签名IPA ( iPhone )
提示:暂时不能用了,企业证书滥用
ios 企业证书 ipa 重新签名发布
1. 应用场景
当前有一个 未用企业证书签名的 ipa 文件,默认是不可以直接安装到设备上的;我们需要用企业版证书签名;
当前有一个已经用企业证书签名的 ipa 文件,不过我们可以用另外一个企业证书对其重新签名;
以上两种场景国内有开放的平台在做,比如 蒲公英
2. 重新签名原理和工具
Solution: Unzip the IPA unzip Application.ipa Remove old CodeSignature rm -r "Payload/Application.app/_CodeSignature" "Payload/Application.app/CodeResources" 2> /dev/null | true Replace embedded mobile provisioning profile cp "MyEnterprise.mobileprovision" "Payload/Application.app/embedded.mobileprovision" Re-sign /usr/bin/codesign -f -s "iPhone Distribution: Certificate Name" --resource-rules "Payload/Application.app/ResourceRules.plist" "Payload/Application.app" Re-package zip -qr "Application.resigned.ipa" Payload Edit: Removed the Entitlement part (see alleys comment, thanks)
工具:
https://github.com/maciekish/iReSign
https://github.com/RichardBronosky/ota-tools
https://gist.github.com/2878446
参考:http://stackoverflow.com/questions/6896029/re-sign-ipa-iphone
我目前正在建立与使用哈德森xcodebuild联编其次是xcrun没有任何问题,我的所有应用程序
我已经收到了几个IPA文件从不同的人,我想重新签订了企业账户而不是公司帐户(应用程序商店,或有时临时分布)。
我的问题是,当我试图辞职的应用程序,它会不会我的设备上安装(它应该因为它是一个企业版本)。该错误信息是设备(没有出现在iTunes)上,它告诉我简单地认为它不能安装应用程序。没有给出更多的信息。
我发现了一些信息,( http://www.ketzler.de/2011/01/resign-an-iphone-app-insert-new-bundle-id-and-send-to-xcode-organizer-for-upload/ )
这是可能的。我现在面临的问题是,它似乎并没有嵌入移动供应配置文件,我做我的正常建立(使用xcrun)这是可以控制的协同设计工具,或是否有可能重新标志xcrun ?
随着我的辞职剧本我目前做的
解压缩app.ipa
应用程序的名字= $(LS有效载荷)
xcrun -sdk的iPhoneOS PackageApplication -s“$ provisioning_profile”“$ PROJECT_DIR /负载/ $应用程序的名字”-o“$ PROJECT_DIR / APP-resigned.ipa”--sign“$ provisioning_profile”--embed“$ mobileprovision”
我看着在生成的IPA文件,它似乎是非常相似的原始应用程序。哪些文件要真正改变这里?我最初认为的_CodeSignature / CodeResources会改变,但内容看起来非常一模一样。
指针都大加赞赏。
重新签名IPA ( iPhone )的更多相关文章
- 签名ipa,让其它手机也安装
开发的时候,需要将app让其它人装上测试,虽然通过xcode可以使用编译进去,但是仍显不方便. 网上有个工具, http://code.google.com/p/iresign/ 通过这个工具,使用自 ...
- 如何重新签名ipa文件
http://www.cocoachina.com/bbs/read.php?tid=185963 求ipa文件修改后重新打包的方法,我已经有开发者账号了. 替换了ipa里的图片后,就无法安装了,似乎 ...
- ipa重签名最直接的教程
ipa 包重签名最新最简单教程 重签名的意义:ipa 重签名最大的用处是,不必重新打包,和配置其它第三方获取 appkey 等操作,直接重签名之后依然可以拥有这些功能,更快的发布测试或者灰度版本. 本 ...
- 关于IPA文件重签名后如何跟踪管理APP的技术探讨和实践演示
前言:开发iOS的朋友都知道,在功能开发完成后,我们就会用申请的苹果账号在后台做证书配置,然后提交到AppStore,但是也有部分APP我们不需要提交到AppStore,比如内部测试用的APP.定制给 ...
- iOS App 研发的最后冲刺:内测与部署
当开发者历经磨难.披荆斩棘,完成了一个iOS项目后,最后的临门一脚就是应用的内测.部署.那么,在这最后的射门动作中,都有哪些地方需要开发者注意?有哪些方式能够更好地帮助我们进行iOS应用的发布部署? ...
- iOS Code Signing: 解惑详解
iPhone开发的代码签名 代码签名确保代码的真实以及明确识别代码的来源.在代码运行在一个开发系统以前,以及在代码提交到Apple发布以前,Apple要求所有的的应用程序都必须进行数字签名.另外,Ap ...
- 使用 Fastlane 实现 IOS 持续集成
简介 持续集成是个“一次配置长期受益”的工作.但很多小公司都没有.以前在做Windows开发配置感觉简单一些,这次配置iOS的,感觉步骤还挺多.整理出来,分享给大家,不正确的地方请及时指正. 本文主要 ...
- 使用 fastlane 实现 iOS 持续集成(转)
http://www.cocoachina.com/ios/20150916/13433.html 简介 持续集成是个“一次配置长期受益”的工作.但很多小公司都没有.以前在做Windows开发配置感觉 ...
- 关于Apple Pay,一篇让你不看就会后悔的文章
编者按:本文作者康上明学为“小米生活”产品经理,在苹果Apple Pay发布后,他对该产品做了深入研究,带来这篇文章. 对于 Apple Pay ,我有几个疑问: 线下支付是一个庞大复杂的流程,当中涉 ...
随机推荐
- 案例:TableLayout表格布局——迷你计算器
计算器可以常用线性布局(LinearLayout)和表格布局(tableLayout).Gridlayout 今天我用的是表格布局 效果如下: 代码如下: <TableLayout xmlns: ...
- Python验证码识别处理实例(转载)
版权声明:本文为博主林炳文Evankaka原创文章,转载请注明出处http://blog.csdn.net/evankaka 一.准备工作与代码实例 1.PIL.pytesser.tesseract ...
- [题解]hdu 1009 FatMouse' Trade(贪心基础题)
Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats guarding th ...
- 重签名问题:does not have a signature matching
今天在家里电脑重签名过的apk拿到公司来用装到模拟器上,运行Robotium测试用例时,报了如下错误,原本以为是工程里的activity名称和包名写错了呢,检查了一遍发现木有错误呀.... 好吧,那我 ...
- Nginx-->进阶-->Module-->ngx_http_stub_status_module
一.模块介绍 The ngx_http_stub_status_module module provides access to basic status information. This modu ...
- PostGreSQL 分页
select * from users limit 10 offset 20; limit A offset B 其中A是页容量 B是偏移量 即跳过前20条 查询每页10条
- poj练习题的方法
poj1010--邮票问题 DFSpoj1011--Sticks dfs + 剪枝poj1020--拼蛋糕poj1054--The Troublesome Frogpoj1062--昂贵的聘礼poj1 ...
- spider
from lxml import etreeimport requestsdef getHtml(html): novelcontent = requests.get(html).content re ...
- Spring学习笔记 Part.01
Hibernate的作用: 1.可以解决以面向对象的方式操作数据库的问题 请求参数(String)→Strut2→Action(对象)→业务逻辑组件(面向对象) 2.所以任何一个ORM框架都可以代替H ...
- C复数的四则运算
#include<stdio.h> void judge(int True,int Fake) { if (True == 0) { if (Fake == ...