一、IPA 的简单认识
首先有一个这样的ipa包文件:
[if !vml]
[endif]
直接修改文件后缀为:xxxxx.zip, 然后解压,是这样的:
[if !vml]
[endif]
从这个解压的文件结构来看,说明一个ipa包,实际上就是一个压缩文件包。解压之后是一个payload的文件夹,这个文件夹中带有一个.app 文件夹,再次进入这个文件夹(操作:右键显示包内容),具体内容如下:
[if !vml]
[endif]
这是一个,简单的app文件夹,实际项目中这里面的文件会很多。
以上就是对一个ipa包的结构做的一个简要介绍,但是以上是一个通过Xcode 的 Aechive 打的一个Ad Hoc 包。不同的包的结构会有所不同,比如从App Store 下载下来的会多一层包装,但是大体的结构还是一样的。
二、简单的打包
新创建一个项目,然后开始打包,这里的打包并非使用Xcode 的Archive 打包,而是另类的手动打包。先看下面项目的配置:
[if !vml]
[endif]
配置好之后,直接command+b, 然后发现Products 文件夹下面的.app 文件变黑了,直接选中右键Show in Finder 进入这样的界面:
[if !vml]
[endif]
通过上一小节的介绍,我们可以通过这个马上赚呗.app 手动构建一个ipa包么?答案是可以的,将马上赚呗.app 放入一个空的Payload 文件夹中(注意Payload的文件夹名字一定不能错),然后压缩成zip文件,将zip 改成ipa 即可。最后是这样的:
[if !vml]
[endif]
现在Payload.ipa 就是一个正规的ipa 包了。当然这个包与平时看到的文件名有点不一样,手动改成马上赚呗.app 即可,改不改都一样。
那么问题来了,这么生成的ipa包能安装到真机上么?试一下就知道答案了。当然了,只能安装到一个已在.app 文件中embedded.mobileprovision 配置文件中包括注册的设备上,与一个Ad Hoc 包的性质是一样的。当然了,可以在任意的越狱手机上安装的。
但是如果手动将马上赚呗.app中与签名相关的文件删除再压缩的话,只能在越狱真机上安装,在非越狱真机上直接报错。
三、配置下载
1、配置https服务(一定要确保ipa资源包链接是https协议)
2、配置manifest.plist文件
[if !vml]
[endif]
附上plist文件模板
三、下载页面
该页面需要加一个按钮点击跳转下载ipa包的协议itms-services://?action=download-manifest&url=.... ,协议上url位置配置为上面的manifest.plist文件的地址
例
<a href="itms-services://?action=download-manifest&url=https://www.xxxx.com/ios/manifest.plist">下载ipa包