七牛雲儲存實現iOS企業版分發

本博客遷移來自:http://www.jianshu.com/users/465865c268ed/latest_articles
iOS企業證書的發版這裏就不多說了。
由於app現在放在公司自己的服務器中,爲了實現https的plist下載鏈接還特意把plist掛在了開源中國上。小公司,帶寬小,多用戶升級的時候給公司服務器帶來不小的壓力。所以最近工頭有把ipa掛在七牛上去的想法,這樣就可以有效的緩解服務器的壓力。
企業版分發的plist下載鏈接必須是https協議的,所以需要SSL證書。如果你公司沒有證書,那麼可以使用七牛。
接下來開始步驟:
1:使用xcode打包生成ipa文件(過程不多說)
2:登陸七牛(默認你已有賬號,沒賬號請註冊)
3:登陸之後添加資源:

添加資源.png
4:創建空間:

創建空間.png
5:創建成功之後在資源列表中你可以看到你新創建的資源:

資源列表.png
6:選中你新創建的資源名稱,然後選中內容管理–>上傳文件(這裏先上傳ipa文件):

上傳文件.png
7:上傳ipa文件成功之後查看文件的外鏈接,如圖:(你看到的鏈接可能並不是https的而是http的,這裏後面再說明)

外鏈接.png
8:複製ipa文件的外鏈,接下來就是要上傳plist文件了,首先創建plist文件:

plist文件內容.png
在plist文件的url中填寫你複製的ipa的外鏈。其他的只需填寫bundle-identifier爲你的項目的id即可,title中填寫你app的名稱,其他的可不變。然後保存plist文件。
9:接下來就是上傳plist文件到七牛了,同ipa文件的上傳一樣,上傳成功後點擊外鏈接即可查看外鏈:
plist.png
10:接下來是最重要的一步,因爲你會發現你上傳的plist文件的外鏈接並不是https的,而企業版分發的plist下載鏈接必須是https。所以別急.先在查看內容中保存默認域名,然後選中你創建的空間名稱,你會看到頁面上有個“融合CDN加速域名”的title,點擊添加HTTPS域名:

點擊保存域名.png

https域名.png
好了,此時你再去內容管理中,點擊你之前上傳的plist文件查看它的外鏈接,你會發現它已經是https的了。
ok,https鏈接的plist文件已生成,複製鏈接,在代碼中:

#warning 測試代碼
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        UIApplication *application = [UIApplication sharedApplication];
        [application openURL:[NSURL URLWithString:[NSString stringWithFormat:@"itms-services://?action=download-manifest&url=https://你的plist外鏈接地址.plist"]]];
        exit(0);
    });

就可以升級了。
有時你會發現,在你要升級版本的時候,你雖然更換了ipa文件,但是plist文件地址所對應的url的升級包並沒有變,或者你連plist文件中的url也更新重新上傳,但是你再次打開plist的外鏈你會發現plist的內容並沒有修改。爲此我忙活了半天不知道爲什麼。後來才知道這是由於七牛緩存的原因,所以你每次要發版的時候,在你上傳完ipa文件的時候,最後能去刷新一下plist文件和ipa文件,在個人看板中:
個人中心.png
有個刷新預取得功能,複製ipa的鏈接或plist的外鏈到那裏即可刷新(刷新是有次數限制的):

刷新預取.png
恩,刷新完時候你就可以愉快的升級了。(緩存很啃爹,請慢慢摸索)。
最後奉上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文件的外鏈,這個外鏈可以不是https的,也就是說http即可</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>full-size-image</string>
                    <key>needs-shine</key>
                    <true/>
                    <key>url</key>
                    <string></string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>display-image</string>
                    <key>needs-shine</key>
                    <true/>
                    <key>url</key>
                    <string></string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>你的bundleID</string>
                <key>bundle-version</key>
                <string>1.2.0</string>
                <key>kind</key>
                <string>software</string>
                <key>subtitle</key>
                <string>App</string>
                <key>title</key>
                <string>app名稱</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

ok,以上總結有什麼不對或瞎扯的地方歡迎在下方留言中指出。
ps:無demo不文章,抱歉,真沒有demo。

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