在iOS開發(fā)中,分發(fā)是一個非常重要的環(huán)節(jié)。分發(fā)iOS應用有兩種方式,一種是通過App Store發(fā)布,另一種是通過企業(yè)證書分發(fā)。而企業(yè)證書分發(fā)的方式又分為兩種,一種是通過OTA方式分發(fā),另一種是通過手動下載ipa包進行分發(fā)。本文將主要介紹如何通過手動下載ipa包進行分發(fā),并詳細介紹提取ipa包的原理。
一、手動下載ipa包進行分發(fā)
手動下載ipa包進行分發(fā)是一種比較常見的方式,適用于企業(yè)內(nèi)部分發(fā)或者小范圍分發(fā)。步驟如下:
1. 打包ipa包
在Xcode中選擇Product -> Archive,然后選擇Export。在Export時選擇“Save for Ad Hoc Depl哪個app可以分發(fā)多個視頻oymeapp托管服務分發(fā)平臺nt”或“Save for Enterprise Deployment”,然后選擇對應的證書和描述文件,最后導出ipa包。
2. 上傳ipa包
將ipa包上傳到服務器或者第三方分發(fā)平臺,獲取下載鏈接。
3. 下載ipa包
在iOS設備中打開下載鏈接,點擊下載ipa包,下載完成后會在設備上生成一個帶有app圖標的安裝文件。
4. 安裝ipa包
點擊安裝文件,系統(tǒng)會提示是否安裝應用,點擊安裝即可完成安裝。
二、提取ipa包的原理
在手動下載ipa包進行分發(fā)的過程中,我們需要上傳ipa包到服務器或者第三方分發(fā)平臺,而上傳的ipa包是經(jīng)過加密
處理的,不能直接解壓。那么如何提取ipa包呢?
實際上,ipa包是一種特殊的zip包,只需要將其后綴名改為.zip即可解壓。但是,由于ipa包經(jīng)過加密處理,無法直接解壓。因此,我們需要先將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包進行分發(fā)是一種比較常見的方式,而提取ipa包的原理是通過解密embedded.mobileprovision文件和Payload目錄下的.app文件來得到解密后的ipa包。在實際操作中,我們可以使用第三方工具來進行解密,比如說iOS App Signer,它可以自動解密ipa包并重新簽名。
一門APP證書制作工具(https://platform.yimenapp.com/)提供APP證書在線制作,支持蘋果證書、安卓證書在線一鍵快捷制作。工具完全免費,注冊成為一門APP開發(fā)者即可使用,全中文化云端APP證書工具。
一鍵制作IOS蘋果證書,包含appstore上架證書、開發(fā)環(huán)境測試證書、ADhoc生產(chǎn)環(huán)境測試證書、在線生成P12開發(fā)者證書證書,P12推送證書、P8推送證書,快捷綁定UDID、自定義包名Bundle ID、在線獲取描述文件;
一鍵制作安卓證書,支持自定義安卓包名、簽名文件密碼(storepass)、別名(alias)、別名密碼(keypass)、公司/機構名稱 (O)、部門 (OU)、國家/地區(qū) (C)、省份 (ST)、城市 (L)、郵箱 (E)、以及安卓證書有效期。