使用七牛雲存儲解決ios7.1的app部署問題 https

使用七牛雲存儲解決ios7.1的app部署問題ios

 一.問題描述瀏覽器

         開發完iOS版本的app。須要將.ipa文件和.plist文件打包上傳,供用戶下載,在線安裝。用戶安裝過程簡單描述以下:七牛雲存儲

首先經過手機瀏覽器safari或者掃描二維碼獲取到下載.plist的地址。而後瀏覽器會自動跳轉到這個地址,下載、讀取.plist。(用戶跳轉的地址是.plist的下載地址。)這個過程,顯然使用http協議來下載.plist文件。最後,iphone經過讀取.plist文件中配置的.ipa下載地址,來安裝.ipa文件,來完成ios版本的app。安全

舉例,網站首頁中,下載.plist的代碼:服務器

<ahref="itms-services://?action=download-manifest&url=http://www.ekwing.com/ekwing.plist"class="mobile-ios"></a>app

可是,蘋果從ios7.1開始,用戶安裝app,須要使用https協議,來下載plist文件。也就說,在安裝app的第一步,下載.plist文件,須要使用https協議。https協議以下:iphone

這裏不詳細描述https協議。HTTPS的信任繼承基於預先安裝在瀏覽器中的證書頒發機構(如VeriSign、Microsoft等)(意即「我信任證書頒發機構告訴我應該信任的」)。所以,一個到某網站的HTTPS鏈接可被信任,當且僅當測試

1.     用戶相信他們的瀏覽器正確實現了HTTPS且安裝了正確的證書頒發機構;網站

2.     用戶相信證書頒發機構僅信任合法的網站;加密

3.     被訪問的網站提供了一個有效的證書,意即,它是由一個被信任的證書頒發機構簽發的(大部分瀏覽器會對無效的證書發出警告);

4.     該證書正確地驗證了被訪問的網站(如,訪問https://example時收到了給「Example Inc.」而不是其它組織的證書);

5.     或者互聯網上相關的節點是值得信任的,或者用戶相信本協議的加密層(TLS或SSL)不能被竊聽者破壞。

簡單描述,用戶使用https來下載.plist文件。則須要網站支持https協議。支持https協議,除了服務端作一些配置外,還須要申請一個數據簽名證書。這個簽名證書是由簽發機構簽發的。不能本身配置生成。而申請簽名證書須要一段時間。而咱們的目的只是但願可以讓咱們的app被用戶正常下載安裝便可。

二.問題分析

解決該問題,就2個方法:

1.本身網站服務上配置https服務,併購買數字簽名證書以保證每種類型及其不一樣版本的瀏覽器可以安裝了證書頒發機構頒發的,咱們購買的數據簽名證書。時間開銷7天左右。

2.將app文件託管到支持https協議的第三方服務器上。

三.解決問題

使用七牛雲存儲,能夠快速,免費解決這個問題。只須要到http://www.qiniu.com/註冊一個帳號。而後,開通https協議的域名便可。最後將.plist和.ipa文件上傳到七牛雲存儲上便可。操做過程,很是簡單。只要注意幾點:

1.      開通一個http協議的域名,和一個https協議的域名。

如上圖。後綴名是.qiniudn.com的是支持http協議的域名。後綴名是.qbox.me的是支持https協議的域名。上傳.plist、.ipa到七牛雲存儲。

 

2.      修改下載.plist文件的地址,修改.plist文件內容。

網站首頁,下載.plist地址改爲上傳到七牛雲存儲上的支持https協議(域名後綴名是.qbox.me)的下載連接地址。

                           <ahref="itms-services://?action=download-manifest&url=https://dn-ekwing.qbox.me/ekwing.plist"class="mobile-ios"></a>

3.      將.plist文件內容中,.ipa的下載地址,改爲七牛雲存儲上的支持http協議(後綴名是.qiniudn.com)

<string>http://ekwing.qiniudn.com/ekwing.ipa</string>

4.      總結,.plist的下載用https協議,而.ipa的下載用http協議便可。修改完後,就可應用ios六、ios七、ios7.1進行測試了。

 

四.   感謝七牛雲存儲

         感謝七牛運存儲提供免費服務。不過,目前防盜鏈還不能用。但願可以加上防盜鏈功能。

 

五.   因ios7.1安裝app,須要用https協議而提示的錯誤

沒法安裝應用程序由於證書無效

 

<Warning>:[ERROR]: Cannot load non-https manifest URL:http://192.168.1.22/ekwing.plist

 

<Warning>:Could not load download manifest with underlying error: ErrorDomain=SSErrorDomain Code=128 "沒法鏈接" UserInfo=0x1669d990 {NSLocalizedDescription=沒法鏈接}

 

<Warning>: NSURLConnection/CFURLConnection HTTP loadfailed (kCFStreamErrorDomainSSL, -9813)

<Warning>: Could not load download manifest withunderlying error: Error Domain=NSURLErrorDomain Code=-1202 "沒法鏈接到商店" UserInfo=0x166bc640{NSLocalizedDescription=沒法鏈接到商店,NSLocalizedRecoverySuggestion=您仍要鏈接此服務器嗎?,NSLocalizedFailureReason=沒法創建安全鏈接。請檢查「日期與時間」設置。,NSErrorFailingURLStringKey=https://192.168.1.22/ekwing.plist,NSUnderlyingError=0x165b37e0 "此服務器的證書無效。您可能正在鏈接到一個假裝成「192.168.1.22」的服務器,這會威脅到您的機密信息的安全。",NSURLErrorFailingURLPeerTrustErrorKey=<SecTrustRef:0x166b83e0>,NSErrorFailingURLKey=https://192.168.1.22/ekwing.plist}

 

轉載,請註明原地址 http://blog.csdn.net/longxibendi/article/details/37601747

相關文章
相關標籤/搜索