在iOS开发中,分发是一个非常重要的环节。分发iOS应用有两种方式,一种是通过App Store发布,另一种是通过企业证书分发。而企业证书分发的方式又分为两种,一种是通过OTA方式分发,另一种是通过手动下载ipa包进行分发。本文将主要介绍如何通过手动下载ipa包进行分发,并详细介绍提取ipa包的原理。
一、手动下载ipa包进行分发
手动下载ipa包进行分发是一种比较常见的方式,适用于企业内部分发或者小范围分发。步骤如下:
1. 打包ipa包
在Xcode中选择Product -> Archive,然后选择Export。在Export时选择“Save for Ad Hoc Deployment”或“Save for Enterprise Deployment”,然后选择对应的证书和描述文件,最后导出ipa包。
2. 上传ipa包
将ipa包上传到服务器或者第三方分发平台,获取下载链接。
3. 下载ipa包
在iOS设备中打开下载链接,点击下载ipa包,下载完成后会在设备上生成一个带有app图标的安装文件。
4. 安装ipa包
点击安装文件,系统会提示是否安装应用,点击安装即可完成安装。
二、提取ipa包的原理
在手动下载ipa包进行分发的过程中,我们需要上传ipa包到服务器或者第三方分发平台,而上传的ipa包是经过加密处理的,不能直接解压。那么如何提取ipa包呢?
实际上,ipa包是一种特殊的zip包,只需要将其后缀名改为.zip即可解压。但是,由于ipa包经过加密处理,无法直接解压。因此,我们需要先将ipa包解密,然后再进行解压。
ipa包的解密过程分为两个步骤:
1. 解密embedded.mobileprovision文件
embedded.mobileprovision文件是描述文件,它包含了应用的签名信息和权限信息。在ipa包中,embedded.mobileprovision文件是加密的,需要使用openssl进行解密。
具体的解密命令如下:
```
openssl smime -in embedded.mobileprovision -inform der -verify -noverify -out embedded.mobileprovision.decrypted
```
2. 解密Payload目录下的.app文件
Payload目录下的.app文件是应用程序本身,也是加密的。解密命令如下:
```
cat yourapp.ipa | gunzip -d -c | tar xopf - -C $TMPDIR
```
解密完成后,我们就可以得到一个解密后的Payload目录,里面包含了解密后的.app文件。
三、总结
通过手动下载ipa包进行分发是一种比较常见的方式,而提取ipa包的原理是通过解密embedded.mobileprovision文件和Payload目录下的.app文件来得到解密后的ipa包。在实际操作中,我们可以使用第三方工具来进行解密,比如说iOS App Signer,它可以自动解密ipa包并重新签名。