天天看點

IOS 7.1 線上安裝IPA(OTA無線釋出)整理

本地伺服器名:xampp 

思路:

1.将生成的 .plist檔案放到dropbox中 複制分享連結  将連接配接寫入到index.html中 

2.将ipa程式包 放在本地或者上傳到dropbox中 擷取連接配接 寫到.plist檔案中

3.将獲得到的分享連接配接 www.dropbox.com 改成 dl.dropboxusercontent.com 就可以測試成功了!!!!!!!

IOS 7.1線上安裝IPA失敗以及數字證書

2014-06-20更新:增加對七牛雲存儲的HTTPS服務說明和又拍雲的介紹。

iOS 7.1線上安裝IPA失敗以及數字證書

Enterprise app deployment doesn’t work on iOS 7.1 and CA

錯誤現象

在 iOS 更新到 7.1 之後,使用 Safari 線上安裝企業版或者 AD-HOC 版本的IPA時,iOS會提示:

無法安裝應用程式,因為“xx.xx.xx” 的證書無效。

這是一個蛋疼的提示,它的真正人類能懂的含義是:

在 iOS 7.1 版本以後,請使用 HTTPS 部署此類安裝。

解決方案

1. 部署自己的HTTPS伺服器

這種方案需要使用一個可信的證書頒發機構辦法的證書,将其部署在自己的伺服器上。配置自己的伺服器軟體(例如 Apache、Nginx等) 使其支援它。

這是一勞永逸的解決方案,如果需要大量部署,那麼此種方案是首選。

注意,自己給自己頒發的證書是不行的。必須使用可信的證書頒發機構頒發的證書。這就意味着,你很可能需要付費。

後面會講到數字證書的部分,會稍稍展開一點。

2. 使用已有的HTTPS伺服器

隻需要找一個已經部署的HTTPS伺服器,将我們的部署檔案(plist)傳到該伺服器上即可。

注意,為了保證下載下傳速度,也為了保證域名的統一性,我們可以隻把 plist 檔案上傳到HTTPS伺服器上。

例如,在我們的網站(http://my.http.server)上有一個線上安裝IPA頁面是這樣的:

1

2

3

4

5

6

7

8

9

10

11

12

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>Setup My App</title>

</head>

<body>

<ul>

<li><a href="itms-services://?action=download-manifest&url=http://my.http.server/myapp.plist"> Tap Here to Install My App</a>

</li>

</ul>

</body>

</html>

由于 iOS 7.1 不支援通過 HTTP 伺服器線上安裝IPA,我們需要修改其中的連結,将其改到 HTTPS 伺服器上。請注意修改過的字首和域名。

1 <a href="itms-services://?action=download-manifest&url=https://my.HTTPS.server/myapp.plist"> Tap Here to Install My App</a>

我們隻需要把這個plist檔案上傳到HTTPS伺服器即可,使用者仍然可以通路原來的HTTP來進行下載下傳。IPA檔案也可以放在HTTP伺服器上。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

<?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://my.http.server/myapp.ipa</string>

                </dict>

            </array>

            <key>metadata</key>

            <dict>

                <key>bundle-identifier</key>

                <string>us.1201.lulala</string>

                <key>bundle-version</key>

                <string>1.0</string>

                <key>kind</key>

                <string>software</string>

                <key>title</key>

                <string>My App</string>

            </dict>

        </dict>

    </array>

</dict>

</plist>

而且,在 iOS 7.1 以下的系統中,也可以支援 HTTPS 伺服器。是以這個修改對所有iOS系統都生效。

3. 使用免費的 HTTPS 伺服器

如果你找不到擁有 HTTPS 伺服器的土豪朋友,那麼可以使用下面兩種免費的方案:

  • DropBox 這位美國土豪提供免費服務。隻需要把你的plist檔案傳到 dropbox 的 public 共享區并 Copy public link 得到公共下載下傳位址就行了。
  • 七牛雲存儲 這位中國土豪也支援 HTTPS ,服務同樣免費(有流量限制),速度在國内通路更快,方法類似。

    在使用七牛的時候要注意,七牛預設提供的外網通路位址,使用HTTPS協定直接通路時浏覽器會提示證書無效。可參考 如何通過 SSL 的形式來通路七牛雲存儲上的資源 重新綁定一個 qbox.me 域名來實作HTTPS通路。

  • 又拍雲 也支援HTTPS服務,但僅支援7天試用。

2014-06-20更新:

最近DropBox在國内抽風,估計離永久屏蔽也不遠了,還是早點轉吧。

數字證書

由于考慮自己架設 HTTPS 伺服器,于是找了一些數字證書的資料放在這裡備查。

  • 如果一定要使用自簽名的證書或者來釋出自己的App,那麼可以要求iOS系統使用者在TA的裝置上把你的證書加入信任。具體參考:Adding CA Cert root and personal certificates to your iPhone, iPod or iPad 。(對于蘋果小白來說,這個很難…)
  • 一些證書頒發機構可以免費申請30天、60天的試用證書,例如:試用型 SSL 證書(Free Trial SSL) 和 StartSSL。
  • Godaddy 有一個面向開源項目1年免費的計劃。
  • 還有一些證書每年大約隻要6刀,Google可以得到資訊。
  • 不要在國内的證書頒發機構購買證書。
  • 不要信任CNNIC的根證書。

還有一些連結:

  • HTTPS
  • Certificate authority

ios更新到7.1時,企業證書http伺服器釋出無線安裝不能使用,需要使用https伺服器,這個前面的一篇已經說過了。

這裡說說Https伺服器的幾種方式

1.測試時自簽名https證書測試無效,提示不能連接配接到伺服器

2.使用dropbox共享連接配接https服務,https://www.dropbox.com/s/xxx/x.plist,同樣提示不能連接配接dropbox伺服器

3.替換 "www.dropbox.com" 成 "dl.dropboxusercontent.com",無線安裝測試成功

注:dropbox的使用真的很友善,我又崇洋媚外了!

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

 一.問題描述

         開發完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" target="_blank" rel="external nofollow" class="mobile-ios"></a>

但是,蘋果從ios7.1開始,使用者安裝app,需要使用https協定,來下載下傳plist檔案。也就說,在安裝app的第一步,下載下傳.plist檔案,需要使用https協定。https協定如下:

IOS 7.1 線上安裝IPA(OTA無線釋出)整理
IOS 7.1 線上安裝IPA(OTA無線釋出)整理

這裡不較長的描述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協定的域名。

IOS 7.1 線上安裝IPA(OTA無線釋出)整理
IOS 7.1 線上安裝IPA(OTA無線釋出)整理

如上圖。字尾名是.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" target="_blank" rel="external nofollow" class="mobile-ios"></a>

3.      将.plist檔案内容中,.ipa的下載下傳位址,改成七牛雲存儲上的支援http協定(字尾名是.qiniudn.com)

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

4.      總結,.plist的下載下傳用https協定,而.ipa的下載下傳用http協定即可。修改完後,就可應用ios6、ios7、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}

iOS 開發 入門:使用Ad Hoc 進行使用者測試

在完成iOS開發,準備進行釋出之前,我們都希望App能在周圍的朋友之間先進行測試,提提意見,修改完善之後再釋出到App Store上。Apple考慮到這一點,是以通過Ad Hoc來實作釋出前的使用者測試。從另一個角度講也就是通過Ad Hoc 将未釋出的App 給其他人提前免費使用。

關于Ad Hoc的使用其實很簡單,在Apple Developer官網的頁面上也有詳細的介紹。首先要注意的是我們的App隻能通過Ad Hoc分享給綁定我們賬号的裝置上,是以至是一百台。然後看一下官方說明的步驟。

Step 1:建立并下載下傳一個iOS 釋出證書。這個一般我們在建立iOS開發證書後都會順便建立。 Step 2:建立并下載下傳一個Ad Hoc Distribution Provisioning Profile ,就是Ad Hoc 釋出配置檔案。這個很好辦,在網站中點選Provisioning選項,點選new profile建立,要填寫的資訊如下:

Distribution method Ad Hoc
Profile name <App_Name> User Testing Profile
App ID Appropriate app ID for the app being tested
Devices Tester’s device identifier

這些資訊想必誰都會填,就是在Devices上選中要分享的裝置。建立完之後下載下傳。

Step 3:這一步其實就是在Xcode中建立我們的軟體的App檔案。具體一共算三步:

(1)打開Xcode; (2)點選工具欄上的Product ->Archive,對App進行打包; (3)在Organizer的Archives中就有你打包的App了,點選Distribute,選擇 Ad Hoc,如下圖

IOS 7.1 線上安裝IPA(OTA無線釋出)整理

之後儲存,就得到.ipa 檔案。

Step 4:這一步就是把ipa檔案和配置檔案通過各種方式發送給要測試的朋友的電腦上,打開itunes,将配置檔案先拉進itunes,然後将ipa檔案也拉進去,同步就OK了。

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