
背景
都知道
iPhone
蘋果手機應用隻能通過
AppStore
進行安裝,測試包隻能通過官方提供的
TestFlight
等工具安裝,而且通常有較長的稽核流程,無法及時更新安裝包,非常不友善。本文主要介紹前端實作對簽名成功的
App
直接通過浏覽器下載下傳安裝,開發者可以及時提供測試
App
。
主要流程
- 前提條件,蘋果
必須簽名成功,這一步由App
應用開發者完成。iOS
- 上傳到伺服器,獲得資訊和下載下傳位址,得到兩個檔案,一個是
檔案和plist
檔案,及ipa
圖示。app
- 通過通路
檔案來達到下載下傳plist
檔案和圖檔的目的,使用了蘋果ipa
浏覽器自帶協定,用a标簽或者safari
方式打開window.open
位址。plist
- 信任裝置并安裝。
itms-services:///?action=download-manifest&url=一個https位址
下面是幾個過程的具體實作
具體實作
上傳資源到伺服器
公司檔案可部署到公司伺服器,自己測試檔案可以使用
github
等免費提供檔案位址的服務。
-
:需要安裝的蘋果ipa
打封包件,由App
用戶端提供;iOS
-
:圖檔格式的logo
圖示;App
-
:plist
下載下傳配置檔案。App
由用戶端生成 plist
檔案
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