一、背景介紹1、Android 軟體當客戶端完成開發和測試之後,準備上線給使用者使用,就需要提供下載渠道,上傳到「應用商店」和「App Store」是很常見的做法,但是今天我們要來聊一下 iOS 企業包的下載方式。
Android 軟體打包之後的安裝包字尾是「.apk」,例如:cool.apk。
Android 軟體打包之後,無論是直接將安裝包發給使用者,還是使用者從應用商店下載,都可以直接安裝使用。
2、iOS 軟體iOS 軟體打包之後的安裝包字尾是「.ipa」,例如:cool.ipa。
iOS 的軟體生態被蘋果公司把控著,通常來說,要把軟體上傳到蘋果的 App Store,使用者才能下載使用,而且稽核很嚴格,否則,即使將打包好的安裝包給使用者,使用者安裝後圖標為灰色,無法使用。
如果你或者你公司的專案涉及到金融相關的,或者跟其他 APP 很像等等,那就很難通過 App Store 的稽核。那麼,這類軟體就沒辦法給使用者使用了嗎?有辦法!那就是打企業包,簡單說,就是讓有企業證書的人給軟體簽名,雖然不能上架 App Store ,但是使用者可以通過你設定的下載渠道進行下載安裝。
二、下載設定1、Android 軟體Android 軟體的下載很簡單,只要把安裝包上傳到伺服器或者雲端儲存上,使用者通過訪問指定的連結即可下載安裝包,下載之後一般都會自動提示安裝。
例如:https://download.sj.qq.com/upload/connAssitantDownload/upload/MobileAssistant_1.apk
2、iOS 軟體iOS 軟體下載不同於 Android 軟體下載,一般有以下兩種方式(我們這裡談論的不包括上傳到 App Store)。
(1)、蒲公英 / fir.im將 iOS 軟體安裝包上傳到「蒲公英」或者「fir.im」上,一般每個軟體有每天 100 次的免費下載次數,如果想要更多的下載次數,就需要付費了。
PS:如果是企業包,上圖中的打包型別會顯示「企業版」。
(2)、自定義下載終於來到今天的重點了,有需要的人要認真看了。其實這種方式就是仿照「蒲公英」和「fir.im」的模式,只不過是將檔案上傳到了自己的伺服器,有興趣的可以抓下它們的介面。
Android 的安卓版直接上傳到伺服器,假如安裝包的訪問地址是: http://juemuren4449.com/cool.apk,那麼使用者訪問連結即可下載,但是 iOS 軟體直接訪問 http://juemuren4449.com/cool.ipa 是無法下載的。
想要下載 iOS 軟體,除了剛才上傳的 .ipa 的安裝包外,還需要上傳兩個檔案,一個是「.plist」和「.html」的檔案。附件放在文末了,程式碼如下:
注意:要把程式碼中帶有「填寫」的內容改成自己的,html 頁面的內容可以自定義。三個檔案都上傳之後,訪問 html 檔案的連結 http://juemuren4449.com/download.html,即可實現下載。
「archive.plist」
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict>\t<key>items</key>\t<array>\t\t<dict>\t\t\t<key>assets</key>\t\t\t<array>\t\t\t\t<dict>\t\t\t\t\t<key>kind</key>\t\t\t\t\t<string>software-package</string>\t\t\t\t\t<key>url</key>\t\t\t\t\t<string>填寫下載地址</string>\t\t\t\t</dict>\t\t\t</array>\t\t\t<key>metadata</key>\t\t\t<dict>\t\t\t\t<key>bundle-identifier</key>\t\t\t\t<string>填寫buildID</string>\t\t\t\t<key>bundle-version</key>\t\t\t\t<string>填寫版本號</string>\t\t\t\t<key>kind</key>\t\t\t\t<string>software</string>\t\t\t\t<key>title</key>\t\t\t\t<string>填寫軟體名稱</string>\t\t\t</dict>\t\t</dict>\t</array></dict></plist>
「download.html」