itms-services託管ipa包

itms-service是apple爲iOS企業用戶($299)提供的無線分發安裝方式所使用的協議,使用這種方式發佈應用不需要通過App Store,任何iOS設備都可以安裝企業用戶通過這種方式發佈的應用而沒有設備數目的限制。(個人用戶和公司用戶也可以使用這種方式通過網頁發佈應用,但只有設備的UDID被包含在對應帳戶的Device ID中的設備可以安裝,而Device ID對數目是有限制的)。

可以從safari瀏覽器直接打開如下所示的itms-services協議的鏈接,可以在iOS設備上直接安裝鏈接所指向的應用,
itms-services://?action=download-manifest&url=https://地址/yi.plist。
manifest文件的地址一定要是可用的https地址,在這個地方,踩了N多的坑,用了github,gitoschina,百度雲都不行,網上有人說用dropbox,我用的是fangcloud

manifest格式

<?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>full-size-image</string>
                    <key>needs-shine</key>
                    <true/>
                    <key>url</key>
                    <string>用來在 iTunes 中表示應用程序的 512 x 512 像素 PNG 圖像。</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>display-image</string>
                    <key>needs-shine</key>
                    <true/>
                    <key>url</key>
                    <string>下載和安裝過程中顯示的 57 x 57 像素 PNG 圖像。指定圖像的完整合格的 URL。</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>app的下載地址</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>您應用程序的包標識符,與 Xcode 項目中指定的完全一樣</string>
                <key>bundle-version</key>
                <string>您應用程序的包版本,在 Xcode 項目中指定。</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>下載和安裝過程中顯示的應用程序的名稱。</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

發佈的流程:
    1.創建並按照格式寫好manifest文件
        注意:
            1.ipa包的下載地址可以不要https協議
     2.將manifest文件上傳併發布到網上,
        嚴重注意:
            1.manifest的鏈接地址一定要是https協議的,當然iOS7.0以下是可以不需要的(但是貌似現在使用iOS7.0的以下的人好少的)
    3.嚴格按照格式
        itms-services://?action=download-manifest&url=https://地址/yi.plist 進行書寫

可能碰到的問題: 
    1.下載安裝應用時,進度條結束後圖標就突然消失了,桌面上找不到任何關於該軟件的信息,就和沒安裝一樣。但是你卻可以在設置》通用》用量》顯示所有應用程序 中找到該軟件所佔內存信息,也可以連接上設備後在Xcode中的organizerDevices中對應的iOS 設備的applications下找到該軟件信息。 
嗯,最常遇到的情況就這樣了,折騰了一天,終於找到原因:是服務器上的plist文件中的bundle identifier和打包時候用的bundle identifier不一致。
     同時還發現一個現象,如果兩個bundle identifier不一致,在iOS5上安裝上軟件後軟件不顯示,如果在iOS6上安裝上軟件後軟件則能正常安裝。
 2.iOS 7.1版本之後,通過itms-service安裝應用時,要求itms-service協議後面的url的值即plist文件的地址必須爲https地址,且設備必須信任此https服務器的SSL證書。關於這個問題,可參考另一篇博客

參考文檔
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章