
背景
都知道 iPhone 蘋果手機應用只能通過 AppStore 進行安裝,測試包只能通過官方提供的 TestFlight 等工具安裝,而且通常有較長的審核流程,無法及時更新安裝包,非常不方便。本文主要介紹前端實現對簽名成功的 App直接通過瀏覽器下載安裝,開發者可以及時提供測試 App。
主要流程
- 前提條件,蘋果
App必須簽名成功,這一步由iOS應用開發者完成。 - 上傳到服務器,獲得信息和下載地址,得到兩個文件,一個是
plist文件和ipa文件,及app圖標。 - 通過訪問
plist文件來達到下載ipa文件和圖片的目的,使用了蘋果safari瀏覽器自帶協議,用a標簽或者window.open方式打開plist地址。 - 信任設備並安裝。
itms-services:///?action=download-manifest&url=一個https地址
下面是幾個過程的具體實現
具體實現
上傳資源到服務器
公司文件可部署到公司服務器,自己測試文件可以使用 github 等免費提供文件地址的服務。
ipa:需要安裝的蘋果App打包文件,由iOS客戶端提供;logo:圖片格式的App圖標;plist:App下載配置文件。
由客戶端生成 plist 文件
📃 app.plist:由客戶端配置或更改下面 ipa 下載地址、App 圖標地址及 App 描述信息。
<?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>https://ipa 下載地址</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://app 圖標地址</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.xxxx.xxxx.xxxx</string>
<key>bundle-version</key>
<string>0.1.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>APP名稱</string>
<key>subtitle</key>
<string>App描述</string>
</dict>
</dict>
</array>
</dict>
</plist>
下載頁面
📃 install.html:提供給用戶的下載 html 頁面,具體 樣式 和 功能可根據自己的需求調整。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<button id="button">下載</button>
<script>
document.getElementById('button').addEventListener('click', function() {
window.open('itms-services:///?action=download-manifest&url=https://pan.xchjw.cn/download/app/CorpPrivateInstall.plist', '_self')
})
</script>
</body>
</html>
實現效果
將下載地址提供給需要的人,點擊下載按鈕即可實現 App 安裝。

市場上很多的分發平台,如蒲公英就是這么做的。
注意:
- 只可在蘋果
safari瀏覽器中實現下載,其他瀏覽器中打開可做一些引導提示。 - 需要注意的是從
ios7.1開始,http推送plist已經不能用了,只能使用https推送,因此訪問這個文件的地址必須是https開頭的。你可以配置自己的服務器支持https服務,也可以借助第三方工具。
其他第三方app托管下載服務
我們不必這么麻煩自己部署這么多文件,完全可以借助第三方應用內測分發平台,比較出名的有下面幾個:
- fir.im:免費應用內測托管平台,
iOS應用Beta測試分發,Android應用內測分發 - 蒲公英:免費的應用托管平台,
App應用眾測分發。 - Pre.im:APP內測托管平台首選 -
Beta測試,免費的應用內測托管平台。 - TestFlight Beta Testing:蘋果官方測試平台工具。
文章地址:https://www.cnblogs.com/dragonir/p/14412729.html 作者:dragonir
