iOS 使用 github 自建應用內測分發平臺
應用內測分發平臺
首先就是祭出好用的應用內測分發平臺。
一般的應用,通過【蒲公英】和【fir.im】進行應用分發就可以了,使用簡單,應用可管理,下載方式便捷等等。
下面我們介紹一下如何自行搭建一個分發平臺
準備工作
- 應用程式 ipa 包
- 下載頁面 html
- 兩張 icon 圖片(可選)
- manifest.plist
- 支援 https 的伺服器
應用程式 ipa 包:儲存在伺服器中,下載時需要
下載頁面 html:內測使用者訪問下載應用包的入口
兩張 icon 圖片:57x57和512x512,應用下載時,系統顯示
manifest.plist:其他命名亦可,是一份應用包的配置清單,其中包含了 ipa 包的下載地址
https 的伺服器:主要是應為 manifest.plist 檔案需要 https 支援,ipa包以及下載頁面和icon圖片儲存在 https 或者 http 下都可以,這裡使用 github 演示
實現原理
關鍵協議:itms-services
itms-services:///?action=download-manifest&url=你的 manifest.plist 檔案地址
測試使用者訪問下載頁面,當其觸發 itms-services 協議,該協議指向了 manifest.plist 配置清單,該清單中包含了 ipa 的下載地址等資訊,這樣,系統即可觸發安裝事件。
github 配置步驟
1、新建 github 倉庫,將兩種尺寸的 icon、ipa 上傳上去
2、編寫 manifest.plist ,其中包含 icon 和 ipa 檔案的地址,也上傳到剛剛的 gitbub 倉庫,manifest.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>ipa的下載地址</string> </dict> <dict> <key>kind</key> <string>display-image</string> <key>url</key> <string>57*57尺寸的icon下載地址</string> </dict> <dict> <key>kind</key> <string>full-size-image</string> <key>url</key> <string>512*512尺寸的icon下載地址</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>內測app的bundleidentifier</string> <key>bundle-version</key> <string>版本號</string> <key>kind</key> <string>software</string> <key>title</key> <string>應用名稱</string> </dict> </dict> </array> </dict> </plist>
3、新建另一個倉庫,這個比較特殊,是用來顯示應用下載地址用的,命名為 ‘git賬號名.github.io’,將下載頁面 html 上傳至該倉庫中,html 例如:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>你的應用名稱</title>
</head>
<a style="text-align:center" href="itms-services:///?action=download-manifest&url=manifest.plist地址">點我下載</a>
</html>
補充說明
1、github 上的圖片地址:(ipa 的地址也如此獲取)
2、下載頁面的訪問地址為:
3、manifest.plist 檔案在 xcode9 打包中就可以選擇:
這樣,打包出來的檔案中就包含了 manifest.plist 檔案。
4、進入頁面後直接下載安裝,可以在html 標籤的 head 標記中加入如下的Javascript程式碼
<script>
var url ="https://manifest.plist檔案地址";
window.location ="itms-services://?action=download-manifest&url="+ url;
</script>
5、通過iOS應用內安裝
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-services://?action=download-manifest&url=https://manifest檔案地址"]];
6、整個過程最關鍵的是 itms-services
協議
"itms-services://?action=download-manifest&url=manifest.plist地址
7、https 伺服器
如果你有自己的可支援 https 的伺服器,你可以將【準備工作】中的檔案統統上傳至伺服器,只需暴露出下載頁面給測試人員,因為 github 畢竟是公開性質的,測試包很容易被其他人拿到,傳輸速度也不夠快;
或者你可以將 ipa 上傳至其他平臺,如七牛等等,修改一下 manifest.plist 中 ipa 地址即可。