曾静的技术博客

但行好事,莫问前程.

嗨,我是曾静 (@devzeng),目前暂居深圳。


这是我用来记录平日学习笔记的地方,欢迎您的访问.

iOS应用程序ipa安装包重签名

在日常的工作中经常遇到需要将一些应用程序IPA安装包【已经上架到apple app store,或者是别人写的IPA】发给别人来安装,获取是其他渠道获取来的IPA版本,对于普通人来说安装这些ipa文件有点麻烦,需要使用iTools/iFunBox这些软件来进行安装,不能像企业级的IN-HOUSE方式进行部署,直接在网页上下载。

最近看到iTools/同步推这样的应用可以直接下载应用程序,而且使用的是企业级证书发布的,排除部分企业是特殊渠道分发的,但是其中一份仍然是使用其他公司的证书进行发布打包,这样就提出来一个新的问题关于IPA文件的重签名。

IPA重签名步骤

下面以wechat.ipa为例简单介绍下重签名的步骤

(1)解压ipa文件,获取到Payload文件

unzip wechat.ipa

(2)将Payload目录下面的_CodeSignature文件夹删除

rm -rf Payload/*.app/_CodeSignature/

(3)替换embedded.mobileprovision文件,到一个能正常部署到设备上的程序中拷贝embedded.mobileprovision文件

cp embedded.mobileprovision Payload/*.app/embedded.mobileprovision

(4)重新签名,“iPhone Distribution: XXXXXX”这个指的是embedded.mobileprovision用到的签名的证书名称

/usr/bin/codesign -f -s "iPhone Distribution: XXXXXX" --resource-rules Payload/*.app/ResourceRules.plist Payload/*.app/

(5)重新打包

zip -r wechat_inhouse.ipa Payload/

rm -rf Payload/

P.S. 可以将上面的几个步骤写成一个Shell脚本方便执行,另外目前只支持在MAC电脑上进行重签名。

IN HOUSE部署

关于如何使用IN HOUSE方式部署应用程序可以参考《iOS企业级应用部署》

参考资料

(1)《iOS开发–in house发布和安装(ipa重新签名)》

(2)《IPA 重签名》

最近的文章

iOS企业级应用部署

在iOS开发计划中有一种是iOS Developer Enterprise Program(iOS开发者企业级计划),对于这种开发者证书发布的应用程序是无法上传到Apple App Store上的,目前对于这种企业级开发的应用程序最好的分发方式是部署到内网服务器上通过网络进行下载。IN-HOUSE应用程序分发下面介绍下使用网络方式进行部署的方式,用户直接在iPhone/iPad的Safari浏览器里面输入URL地址即可安装,如在浏览器输入http://www.itools.cn能出现如下的...…

iOS继续阅读
更早的文章

将博客从GitHub迁移到GitCafe

最近一直使用Github Pages功能以及Octopress来记录自己在学习和生活中的琐事,之前也写了一篇文章《Hello Octopress》来分享如何在GitHub使用Octopress来搭建博客的技术细节。但是最近发现一个很头疼的问题就是博客的访问速度实在是很慢,虽然做了一部分的优化,比如将GOOGLE的字体和jQuery的链接移除,但整体来看速度还是没有明显的提升,最近看到网上有资料提到可以将博客转移到GitCafe的方法,周末闲来无事就将博客内容镜像到GitCafe上。以下为大...…

Note继续阅读