背景
都知道 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
下載配置檔案。
<br/>
由客戶端生成 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>
<br/>
下載頁面
?
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>
<br/>
實現效果
將下載地址提供給需要的人,點選下載按鈕即可實現 App
安裝。
市場上很多的分發平臺,如蒲公英就是這麼做的。
注意:
- 只可在蘋果
safari瀏覽器
中實現下載,其他瀏覽器中開啟可做一些引導提示。 - 需要注意的是從
ios7.1
開始,http
推送plist
已經不能用了,只能使用https
推送,因此訪問這個檔案的地址必須是https
開頭的。你可以配置自己的伺服器支援https
服務,也可以藉助第三方工具。
其他第三方app託管下載服務
我們不必這麼麻煩自己部署這麼多檔案,完全可以藉助第三方應用內測分發平臺,比較出名的有下面幾個:
- fir.im:免費應用內測託管平臺,
iOS
應用Beta測試
分發,Android
應用內測分發 - 蒲公英:免費的應用託管平臺,
App
應用眾測分發。 - Pre.im:APP內測託管平臺首選 -
Beta測試
,免費的應用內測託管平臺。 - TestFlight Beta Testing:蘋果官方測試平臺工具。
文章地址:https://segmentfault.com/a/11... 作者:dragonir