天天看點

iOS企業包下載下傳安裝一、背景介紹二、下載下傳設定

當用戶端完成開發和測試之後,準備上線給使用者使用,就需要提供下載下傳管道,上傳到「應用商店」和「App Store」是很常見的做法,但是今天我們要來聊一下 iOS 企業包的下載下傳方式。

一、背景介紹

1、Android 軟體

Android 軟體打包之後的安裝包字尾是「.apk」,例如:cool.apk。

Android 軟體打包之後,無論是直接将安裝包發給使用者,還是使用者從應用商店下載下傳,都可以直接安裝使用。

2、iOS 軟體

iOS 軟體打包之後的安裝包字尾是「.ipa」,例如:cool.ipa。

iOS 的軟體生态被蘋果公司把控着,通常來說,要把軟體上傳到蘋果的 App Store,使用者才能下載下傳使用,而且稽核很嚴格,否則,即使将打包好的安裝包給使用者,使用者安裝後圖示為灰色,無法使用。

iOS企業包下載下傳安裝一、背景介紹二、下載下傳設定

如果你或者你公司的項目涉及到金融相關的,或者跟其他 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 次的免費下載下傳次數,如果想要更多的下載下傳次數,就需要付費了。

iOS企業包下載下傳安裝一、背景介紹二、下載下傳設定

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>
	<key>items</key>
	<array>
		<dict>
			<key>assets</key>
			<array>
				<dict>
					<key>kind</key>
					<string>software-package</string>
					<key>url</key>
					<string>填寫下載下傳位址</string>
				</dict>
			</array>
			<key>metadata</key>
			<dict>
				<key>bundle-identifier</key>
				<string>填寫buildID</string>
				<key>bundle-version</key>
				<string>填寫版本号</string>
				<key>kind</key>
				<string>software</string>
				<key>title</key>
				<string>填寫軟體名稱</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>
           

「download.html」

<DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>iOS 下載下傳</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
</head>
<script>
  (function(doc,win){var docEl=doc.documentElement,resizeEvt="orientationchange" in window?"orientationchange":"resize",recalc=function(){var clientWidth=docEl.clientWidth;if(!clientWidth){return}docEl.style.fontSize=100*(clientWidth/750)+"px"};if(!doc.addEventListener){return}win.addEventListener(resizeEvt,recalc,false);doc.addEventListener("DOMContentLoaded",recalc,false)})(document,window);
</script>
<style>
  *{
    margin: 0;
    padding: 0;
  }
  html,body{
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  p{
    font-size: .3rem;
    color: #333;
    text-align: center;
  }
</style>
<body>
    <p>點選“安裝”後,請按Home鍵至桌面檢視安裝進度</p>
 </body>
</html>
<script type="text/javascript">
	 window.onload=function (){
    window.location.href="itms-services://?action=download-manifest&url=填寫plist的通路連結"
}
</script>
           

由于沒有個人的項目的企業包,就不拿公司的做示範了,有問題可以留言談論。

附件下載下傳:plist&htlm.zip

歡迎通路的個人部落格:掘墓人的小鏟子