ios 在window和mac上另类打包方式
原文出自:Spring sky ,欢迎转载,请保留版权和原文地址;http://blog.csdn.net/springsky_/article/details/24355259
写这个文章,我先给大家举一个例子把。
情况如下:A是开发者,B是ipa的使用者,A和B距离很远,如果B需要安装ipa,正常的情况如下:1.B到A这里去,让A给安装 2.A需要在网上上传一个ipa,提供给B,B需要下载ipa,然后安装。如果ipa很大,那么A上传需要很长时间,B下载也需要很长时间,如果A只是修改了部分代码,或者一个图片,可能双双都要浪费很多时间?
如果B手上有一个ipa,并且A只是修改了部分代码或者替换部分图片,有没有更快捷的方式替换解决发送ipa的问题?
为此,我做了很多实验:
No.1 把ipa后缀名修改为zip,解压后得到一个“Payload”文件夹,直接打开这个文件夹,选中xxx.app文件,右键显示包内容,直接替换里面的图片,然后把xxx.app直接拖到iTunes中生成ipa,打包可以,但是安装一直显示“安装中....”,实际上这种方式是不可行的;
No.2 把ipa后缀名修改为zip,解压后得到一个“Payload”文件夹,直接打开这个文件夹,选中xxx.app文件,右键显示包内容,直接替换里面的图片,然后把Payload这个目录压缩为一个zip,然后再把后缀名zip修改为ipa,结果一样:安装一直显示“安装中....”,这种方式依然是不可行的;
最后我猜想,不管替换哪种类型的文件,ipa可能存在一种签名,或者对文件进行MD5校验,然后在安装的过程中进行了MD5验证签名,基于这种方式,我就想了一个办法,如果我们把ipa中得“文件签名”替换掉,是否能安装成功?
so,我就在“显示包内容”这个目录里面,发现了一个“_CodeSignature”目录,对应的这个目录下,还有一个CodeResources文件,我想这大概就是签名的文件吧,如下图:
结果依照上面的No.1方式去打包,过了不到2分钟的时间,看见iTunes 复制文件完成,安装... 突然眼睛一亮,安装成功,哈哈,这一刻,哥真的笑出来了,多么激动得一颗哇。
最后,我想用这种方式来替换编译的代码,其实就是替换xxx.app目录下的xxx文件即可(xxx是你的项目名称,特别要注意哦,如果我得项目名称是aaa,那么在aaa.app的目录下 ,就又一个aaa的unix可执行文件,只要替换aaa文件即可),然后用No.1和No2的方式去打包,安装,都成功了,哈哈,将来不再为只是替换了一张图片,一行代码而发送庞大的ipa而烦恼了。
那么,我将用上面的举例总结一下重要的步骤:
1.让B先把手上的ipa的后缀名修改为zip,然后解压,得到"Payload"目录;
2.A把编译后的xxx.app下得“_CodeSignature” 提供给B,然后把需要替换的文件(图片 or mp3 or 编译后的代码)也替换给A,并且名称保持一致;
3.B打开Payload目录,然后再打开xxx.app,替换里面的“_CodeSignature”目录和相关的替换文件。然后依照上面的No1或者No2方式去打包,即可得到一个可安装的ipa文件,安装,都ok了。
特别是替换签名,相当重要!
以上是基本的操作步骤了,如果大家有什么疑问的,即可联系我 QQ:840950105 加我的时候请注明 问题的原因