不經過App Store實現ios應用分發下載安裝

最近公司的項目準備着手宣傳工做了,宣傳手冊上要印製App的下載地址二維碼,可是客戶端應用還未上線,須要一種臨時的方案解決應用分發下載問題,一般ios應用必須經過蘋果應用商店才能下載安裝,可是也能夠看到一些應用沒有經過蘋果應用商店也能下載安裝,好比下面的兔兔助手。
兔兔助手_蘋果手機助手_兔兔助手越獄版_兔兔助手官網下載
 
 
直接掃碼或者點擊手機頁面的下載連接就能下載安裝成功。
 
其實這種安裝方式是利用企業證書籤名app的部署方式來安裝程序,直接在ios設備上安裝,嚴格來講實際上是不符合apple的相關規定的,所以通常只用於內部測試下載安裝,不建議使用這種方式來進行最終的應用分發。下面具體介紹一下實現方式。
準備的文件主要是三個:
  • 一、應用程序 後綴(.ipa) 文件(使用了企業級預置描述文件);
  • 二、清單 (後綴.plist) 文件(xml格式的清單描述文件)。
  • 三、網頁(後綴.html)文件(引導用戶安裝的界面)
我沒作過ios開發,所以.ipa文件,.plist文件怎麼獲得,開發人員應該很清楚,這裏只介紹一下文件部署的狀況。
首先APP上傳到服務器有一個下載地址,好比: http://youdomain/app.ipa
而後部署.plist文件,這個文件大體以下所示
  1.  
    <?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>http://cloud.189.cn/download/client/iOS/cloud189_1.1.1.ipa</string>
                    </dict>
                </array>
                <key>metadata</key>
                <dict>
                    <key>bundle-identifier</key>
                    <string>請填上你的開發者證書用戶名</string>
                    <key>bundle-version</key>
                    <string>版本</string>
                    <key>kind</key>
                    <string>software</string>
                    <key>title</key>
                    <string>請填上標題</string>
                </dict>
            </dict>
        </array>
    </dict>
    </plist>
     

     

須要注意的是從ios7.1開始, http推送plist已經不能用了,只能使用https推送,所以訪問這個文件的地址必須是https開頭的。你能夠配置本身的服務器支持https服務,也能夠藉助第三方工具,這裏主要介紹使用第三方工具。
國外有不少網站都是支持https服務的,好比DropBox和Github,以Github爲例,打開任意開源項目中的一個文件,切換到「RAW」
 
 
 
 
 
能夠看到地址欄顯示的是https,所以能夠把app.plist文件上傳到github生成一個https地址,不幸的是github在國內基本上屬於被牆的狀態,所以須要在國內找一個能提供https服務的存儲方式,這裏我推薦 七牛雲存儲,註冊成爲標準用戶後,新建一個空間,上傳文件
 
 
在空間設置裏能夠開通https服務
 
 
這樣就能獲得一個 https://dn-yourdomain.qbox.me/app.plist的地址,說了這麼多,終於將.plist文件部署好了,其實前面的.ipa文件也能夠上傳到七牛雲存儲上供下載分流。
最後介紹如何下載安裝應用,使用的是itms-services:協議
  1. itms-services://?action=download-manifest&url=https://plist文件的地址

     

接下來只要在網頁(html)文件中加入
  1. <a href="itms-services://?action=download-manifest&url=https://plist文件的地址">安裝</a>

     

這樣點擊手機網頁上的「安裝」連接就能下載安裝應用了。至於這個頁面要作的多花裏胡哨,那就是前端美工的事了。
這裏有一段比較完整的示例
  1.  
     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <htmlxmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4 <metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>
     5 <title>應用名字</title>
     6 </head>
     7 <body>
     8    <h1style="font-size:80pt">若是點擊沒法下載安裝,請複製超連接到瀏覽器中打開<h1/>
     9    <h1style="font-size:100pt">
    10    <a title="iPhone"href="itms-services://?action=download-manifest&url=https://dn-你的空間名字.qbox.me//你的.plist">點擊下載        </a><h1/>
    11 </body>
    12 </html>
    13  
     

     

若是想手機進入頁面後直接下載安裝,能夠在html 標籤的 head 標記中加入以下的Javascript代碼

 

<script>
        var url ="https://plist文件地址";
        window.location ="itms-services://?action=download-manifest&url="+ url;
</script>

 

這樣就會自動提示下載和安裝了。

 

 
若是經過ios應用內安裝,代碼大概以下所示
iOS:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-services://?action=download-manifest&url=https://plist文件的地址"]];

最後纔是重點,咱們沒必要這麼麻煩本身部署這麼多文件,徹底能夠藉助第三方應用內測分發平臺,比較出名的有下面幾個:html

應用測試發佈平臺前端

 

fir.im - 免費應用內測託管平臺|iOS應用Beta測試分發|Android應用內測分發ios

http://fir.im/git

 

蒲公英 - 免費的應用託管平臺|App應用衆測分發github

http://www.pgyer.com/api

 

Pre.im - APP內測託管平臺首選 - Beta測試 - 免費的應用內測託管平臺瀏覽器

http://pre.testin.cn/七牛雲存儲

 

TestFlight Beta Testing - App Store - Apple Developer服務器

https://developer.apple.com/testflight/app

試用了一下蒲公英,真是至關方便,只要註冊一個賬號,將ipa文件上傳,就會當即生成一個下載地址以及引導下載頁面

 

 

經過查看api能夠看到,蒲公英也是經過上面的方式安裝的,只是給開發者省了很多時間

 

若是你嫌蒲公英的下載引導頁面很差看,你能夠本身作一個html頁面,直接是用上面的itms-services地址。

 
參考:
相關文章
相關標籤/搜索