iOS 自建應用內測分發平臺

應用內測分發平臺

首先就是祭出好用的應用內測分發平臺。

一般的應用,通過【蒲公英】和【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 文件的地址,也上傳到剛剛的 github 倉庫,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>
  1. 新建另一個倉庫,這個比較特殊,是用來顯示應用下載地址用的,命名為 '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>

網站地址為:https://git賬號.github.io/

  1. 訪問 https://git賬號.github.io/下載頁面 進行安裝。
下載

補充說明

  • github 上的圖片地址:(ipa 的地址也如此獲取)
在這里插入圖片描述
  • 下載頁面的訪問地址為:

https://git賬號名.github.io/[路徑/]下載頁面

如:https://lolita0164.github.io/download.html

  • manifest.plist 文件在 xcode9 打包中就可以選擇:
選擇
配置信息

這樣,打包出來的文件中就包含了 manifest.plist 文件。

  • 進入頁面時直接下載安裝,可以在html 標簽的 head 標記中加入如下的Javascript代碼
<script>
        var url ="https://manifest.plist文件地址";
        window.location ="itms-services://?action=download-manifest&url="+ url;
</script>
  • 通過iOS應用內安裝
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-services://?action=download-manifest&url=https://manifest文件地址"]];
  • 整個過程最關鍵的是 itms-services 協議
"itms-services://?action=download-manifest&url=manifest.plist地址
  • https 服務器

如果你有自己的可支持 https 的服務器,你可以將【準備工作】中的文件統統上傳至服務器,只需暴露出下載頁面給測試人員,因為 Github 畢竟是公開性質的,測試包很容易被其他人拿到,傳輸速度也不夠快;

或者你可以將 ipa 上傳至其他平臺,如七牛等等,修改一下 manifest.plist 中 ipa 地址即可。

總結

自建應用內測分發平臺不是一件很難的事情,通過關鍵協議 itms-services 即可觸發系統安裝功能。你需要準備的就是應用 ipa 包和一份配置文件 manifest.plist。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,963評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,348評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,083評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,706評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,442評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,802評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,795評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,983評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,542評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,287評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,486評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,030評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,710評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,116評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,412評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,224評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,462評論 2 378

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,718評論 25 708
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,811評論 2 59
  • 簡述:iOS開發平時發布內測應用,大家經常用的有蒲公英、fir.im等第三方服務平臺,無論是手動打包上傳至內測平臺...
    C_HPY閱讀 10,355評論 10 26
  • 時間就是個怪物 我手握利劍 卻留不下它嘴里的回憶
    亖三缺一閱讀 161評論 0 0
  • PEST分別代表政治法律,社會文化,技術,經濟!我們先看未來的發展趨勢,再給自己制定目標。 我們現在可以根據年齡穿...
    Ding欣欣閱讀 221評論 0 0