itms-services 協議常用於 iOS 企業應用的無線部署,這可在不使用 iTunes 的情況下將內部軟件發佈或者分享給用戶。
前期準備資料
1、應用程序 (.ipa) 文件(使用了企業級預置描述文件);
2、清單 (.plist) 文件(xml格式的清單描述文件)。
準備清單 (.plist) 文件:
清單文件是一個xml格式的文件,參考如下代碼:
<?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://domain/app.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>http://domain/logo/logo.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>domain</string>
<key>bundle-version</key>
<string>1.0.0</string>
<key>kind</key>
<string>software</string>
<key>subtitle</key>
<string>App Subtitle</string>
<key>title</key>
<string>App Title</string>
</dict>
</dict>
</array>
</dict>
</plist>
描述文件需要注意的三個地方
1、兩個 url 地址,即 software-package 和 display-image 的 URL,前者是所要安裝的 ipa 地址,後者是安裝時桌面顯示的 logo 圖標。
2、metadata裏需要修改 bundle-identifier 和 bundle-version,具體是什麼就不用介紹了,但是要注意一定要跟所安裝的 ipa 包內容一致,不然無法安裝成功。
3、可以修改title和subtitle,定製安裝時彈出框的內容。
ipa格式應用的分享或者發佈
可以使用以下兩種方式提供下載:
第1種是點擊下載,在網頁中加入如下的鏈接就行了:
<a href="itms-services://?action=download-manifest&url=http://domain/manifest.plist">下載App</a>
備註:請勿使用應用程序 (.ipa) 的 Web 鏈接方式提供下載。當打開清單文件(manifest.plist)時,設備會下載該 .ipa。雖然 URL 的協議部分是 itms-services,但 iTunes Store 並不參與此過程。
第2種是通過JavaScript自動下載,參考代碼:
<script>
var url = "http://domain/manifest.plist";
window.location = "itms-services://?action=download-manifest&url=" + url;
</script>
備註:此代碼放到 html 標籤的 head 標記中,這樣就會自動提示下載和安裝了。
設定服務器 MIME 類型
配置 Web 服務器的MIME 類型,以便正確地傳輸清單文件(.plist)和應用程序文件(.ipa)。
1、對於 OS X Server,將以下 MIME 類型添加到 Web 服務的“MIME Types”(MIME 類型)設置中:
application/octet-stream ipa
text/xml plist
2、對於 MS 的 IIS,使用 IIS Manager 在服務器的“屬性”頁面中添加 MIME 類型:
.ipa application/octet-stream
.plist text/xml