天天看點

IOS無線方式安裝企業級應用程式原理及過程總結 通過網頁進行 iOS 應用内部分發 IOS通過OTA部署App

ios 通過無線分發方式安裝企業級的應用程式

之前首先需要準備好兩個檔案 ipa 和plist 兩個檔案

具體操作步驟如下:

1、将ipa和plist兩個檔案 架在伺服器的根目錄下 可以下通過網站直接通路并且下載下傳這兩個檔案

2、在根目錄下寫一個連結檔案,主要用于檔案下載下傳隻用

  格式如下:

Install App

完成以上兩步操作之後,如果你的伺服器是架在linux上的,那麼你已經成功了。

但是如果你不是linux伺服器還需要第三 步

3、修改mimes type

設定伺服器 MIME 類型

您可能需要配置您的 Web 伺服器以便正确地傳輸清單檔案和應用程式檔案。

對于 OS X Server,将以下 MIME 類型添加到 Web 服務的“MIME Types”(MIME 類型)設定中:

application/octet-stream ipa

text/xml plist

對于 IIS,使用 IIS Manager 在伺服器的“屬性”頁面中添加 MIME 類型:

.ipa application/octet-stream

.plist text/xml

這樣就很完美了

注釋:1、對于plist的格式示例如下

<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://www.songeast.com.cn/statusnet/downloads/schoolcomm.ipa </string> </dict> <dict> <key>kind</key> <string>display-image</string> <key>needs-shine</key> <true/> <key>url</key> <string> http://www.songeast.com.cn/statusnet/downloads/icon.png </string> </dict> <dict> <key>kind</key> <string>full-size-image</string> <key>needs-shine</key> <true/> <key>url</key> <string> http://www.songeast.com.cn/statusnet/downloads/icon512.png </string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.songeastnew.SchoolCommunity</string> <key>bundle-version</key> <string>1.0.0</string> <key>kind</key> <string>software</string> <key>subtitle</key> <string>家校互動</string> <key>title</key> <string>家校互動</string> </dict> </dict> </array> </dict> </plist>

2、注意其中的url一定要寫對。

3、注意手機端通路和網頁通路效果是不一樣的

轉載:http://blog.sina.com.cn/s/blog_c22173770101awic.html

iOS 通過Safari浏覽器安裝 App

以往,如果要安裝App到非越獄裝置上,那麼有倆個辦法

1.App制作的時候使用企業級開發者帳号申請證書(開發證書/釋出證書),那麼隻做好App後,無需送出AppStore,放置在自己的Server上 http下載下傳就可以自動安裝。

2.如果是個人開發者帳号,需要使用hoc證書,并且需要把 需要安裝App的裝置的UDID添加到證書裡,打包後,需要将證書以及安裝包一起發送給對方,他才能安裝。

針對2,還有另外一個方式,不用發送給對方,隻需要讓對方用Safari浏覽器打開一個網頁就可以自動安裝,其實是借鑒了企業級App的方式,下面看我處理部署流程。

a.将裝置UDID添加到帳戶裝置表中。

b.更新hoc證書,重新編譯打包,制作安裝包 app.ipa。

c.接下來就是與以往不同的了,制作一個dev.html和一個dev.plist倆檔案,然後将app.ipa與dev.html,dev.plist 放到同一個目錄中,将整個目放置到httpServer的一個目錄下。參考下圖

IOS無線方式安裝企業級應用程式原理及過程總結 通過網頁進行 iOS 應用内部分發 IOS通過OTA部署App
IOS無線方式安裝企業級應用程式原理及過程總結 通過網頁進行 iOS 應用内部分發 IOS通過OTA部署App
IOS無線方式安裝企業級應用程式原理及過程總結 通過網頁進行 iOS 應用内部分發 IOS通過OTA部署App

為了便于CV程式員嘗試,我貼點代碼,百度不能放檔案,很不爽。

dev.html,如下

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<

html

xmlns

=

"http://www.w3.org/1999/xhtml"

>

<

head

>

<

meta

http-equiv

=

"Content-Type"

content

=

"text/html; charset=UTF-8"

/>

<

meta

name

=

"viewport"

content="

width

=

320

height

=

460

user-scalable

=

no

,

initial-scale

=

1

.0" />

<

title

>Install Dev App</

title

>

</

head

>

<

br

/><

br

/><

br

/>

<

body

>

<

div

align

=

"center"

>

<

a

href

=

"itms-services://?action=download-manifest&url=http://192.168.16.74/dev.plist"

style

=

"color:orange; font-size:24px"

>

Install the App</

a

>

</

div

>

<

p

/>

</

body

>

<

br

/>

<

br

/>

</

html

>

dev.plist如下

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://192.168.16.74/app.ipa</

string

>

</

dict

>

</

array

>

<

key

>metadata</

key

>

<

dict

>

<

key

>bundle-identifier</

key

>

<

string

>com.mycompany</

string

>

<

key

>bundle-version</

key

>

<

string

>1.0</

string

>

<

key

>kind</

key

>

<

string

>software</

string

>

<

key

>title</

key

>

<

string

>myApp</

string

>

</

dict

>

</

dict

>

</

array

>

</

dict

>

</

plist

>

然後将目錄<内涵app.ipa,dev.html,dev.plist三個檔案>放置到server的一個目錄下,使對方能夠通路就行。

接下來在對方的safari中輸入 http://myserver.com/ios/dev.html   後續就一直預設操作就可以了。

我在實驗的時候,遇到了點問題,dev.html是可以正常通路的,但是就是不能自動安裝,經過查證,找到了問題

猜測是server配置問題,查了查,果然,伺服器不知道用戶端請求的倆檔案  app.ipa和dev.plist以什麼方式(文本還是流之類)傳遞給用戶端,需要增加這兩種擴充名的檔案處理模式<純個人了解>,因為很多常見的字尾名都已經有預設聲明

參考 

http://help.apple.com/iosdeployment-apps/mac/1.1/#app43ad871e

設定伺服器 MIME 類型

您可能需要配置您的 Web 伺服器以便正确地傳輸清單檔案和應用程式檔案。

對于 OS X Server,将以下 MIME 類型添加到 Web 服務的“MIME Types”(MIME 類型)設定中:

application/octet-stream ipa

text/xml plist

對于 IIS,使用 IIS Manager 在伺服器的“屬性”頁面中添加 MIME 類型:

.ipa application/octet-stream

.plist text/xml

轉載:http://hi.baidu.com/chenfalei/item/983f5e6fe62f8f2669105b9e

通過網頁進行 iOS 應用内部分發

介紹如何通過網頁内部分發 iOS 應用, 包括 In-House 企業應用和 ad-hoc 測試應用。

原生 XCode 應用

1. 歸檔編譯

用 XCode 打開要分發的項目, 依次選擇 

"Product" -> "Build for" -> "Archiving"

, 如下圖:

IOS無線方式安裝企業級應用程式原理及過程總結 通過網頁進行 iOS 應用内部分發 IOS通過OTA部署App

編譯完成之後,就會生成 XCode 的項目歸檔, 接下來使用 Organizer 設定分發資訊。

2. 使用 Organizer 設定分發資訊

打開 Orangizer , 選擇 Archives 标簽, 可以看到現有的 XCode 項目歸檔, 選擇要分發的項目, 然後點選右邊的 

Distribute...

 按鈕, 如下圖所示:

IOS無線方式安裝企業級應用程式原理及過程總結 通過網頁進行 iOS 應用内部分發 IOS通過OTA部署App

接下來回彈出分發向導, 第一步分發方式, 選擇 

Save for Enterprise or Ad-Hoc Development

, 如下圖所示:

IOS無線方式安裝企業級應用程式原理及過程總結 通過網頁進行 iOS 應用内部分發 IOS通過OTA部署App

點選 

Next

 按鈕, 第二步選擇代碼簽名, 選擇 

Enterprise

 或者 

Ad-Hoc

 簽名, 如下圖所示:

IOS無線方式安裝企業級應用程式原理及過程總結 通過網頁進行 iOS 應用内部分發 IOS通過OTA部署App

點選 

Next

 按鈕, 第三步填寫分發資訊, 選擇應用儲存位置以及名稱, 同時要勾選 

Save for Enterprise Distribution

, 輸入分發資訊, 然後儲存, 這樣将會生成兩個檔案, 一個是字尾為 ipa 檔案, 就是 iOS 程式本身了, 另一個是字尾為 plist 檔案, 包含 ipa 檔案的描述資訊。

IOS無線方式安裝企業級應用程式原理及過程總結 通過網頁進行 iOS 應用内部分發 IOS通過OTA部署App

3. 部署到内部 Web 伺服器

将上一部最終生成的 ipa 以及 plist 檔案複制到内部的 Web 伺服器, 在網頁上添加類似這樣的連結:

<a href="itms-services://?action=download-manifest&url=http://url-to-your-app.plist" target="_blank" rel="external nofollow" >安裝移動辦公iOS版</a>
           

Web 伺服器上可能需要添加 .plist 和 .ipa 的 Mime 類型, 它們的 Mime 類型分别為:

  • .plist : text/xml

    ;
  • .ipa : application/octet-stream

4. iOS 裝置下載下傳安裝

用 iOS 裝置通路網頁, 點選連結就可以直接安裝了。 如果是未越獄的裝置, 需要确認簽名許可包含了裝置的 UDID , 否則無法安裝。

MonoTouch 應用

對于 MonoTouch 編寫的應用, 需要将 MonoDevelop 更新到最新版的 3.1.1 , 在 

Build

 菜單下也添加了 

Achive

 選項, 選擇

Arcive

 菜單進行編譯, 就會在 XCode 的 Organizer 的 Archives 标簽下能看到對應的項目, 接下來就和上面的步驟一緻了。

轉載:http://beginor.github.io/2013/01/25/ios-app-enterprise-adhoc-distribution.html

以無線方式安裝應用程式

建構網站

将這些項目上傳到您網站上已鑒定的使用者可以通路的區域:

  • 應用程式 (.ipa) 檔案
  • 清單 (.plist) 檔案

您的網站設計可以像用來連結到清單檔案的單個頁面那麼簡單。當使用者輕按 Web 連結時,清單檔案會被下載下傳,并觸發它所描述的應用程式的下載下傳和安裝。

以下是一個示例連結:

<a href="itms-services://?action=download-manifest&url=http://example.com/
manifest.plist" target="_blank" rel="external nofollow" >Install App</a>

請勿添加歸檔的應用程式 (.ipa) 的 Web 連結。載入清單檔案時,裝置會下載下傳該 .ipa。雖然 URL 的協定部分是 itms-services,但 iTunes Store 并不參與此過程。

設定伺服器 MIME 類型

您可能需要配置您的 Web 伺服器以便正确地傳輸清單檔案和應用程式檔案。

對于 OS X Server,将以下 MIME 類型添加到 Web 服務的“MIME Types”(MIME 類型)設定中:

application/octet-stream ipa

text/xml plist

對于 IIS,使用 IIS Manager 在伺服器的“屬性”頁面中添加 MIME 類型:

.ipa application/octet-stream

.plist text/xml

轉載:http://help.apple.com/iosdeployment-apps/mac/1.1/#app43ad871e

IOS通過OTA部署App

通過ota安裝app是個很酷的功能,尤其是發給朋友測試的時候。一直想整理一下這方面的檔案,發現很多人都整理了。

轉一篇兒中文的:iOS: install App via OTA用的是xcode4.3.

這還有一篇兒英文的:Distributing an iPhone App (.ipa) Over the air with Xcode 4.雖然說是xcode4.但應該是4.2及以下的版本。因為4.3以後打包方式變了。

前提: 能安裝app的device需要被包含在你的provisioning profile裡

Environment: iOS 5.0 + xcode 4.3

ref link: https://help.apple.com/iosdeployment-apps/?lang=en-us#app43ad871e

Step 1 在你的project裡,選擇”iOS Device” in the active scheme (如果選擇的是iPad simulator or iPhone simulator,那麼menu “Product > Archive”是灰化的)

IOS無線方式安裝企業級應用程式原理及過程總結 通過網頁進行 iOS 應用内部分發 IOS通過OTA部署App

Step 2 select menu “Product > Archive”來為你的project建立一個archive (it is recommended that build your project again before this action)

Step 3 這時應該會自動彈出organizer window (之後你可以通過menu “Window > Organizer”來打開它),并顯示你剛建立的archive item in the archive list。Highlight the archive item, and then click “Distribute…” button

Step 4 select option “Save for enterprise or Ad-Hoc deployment”, click “Next”

Step 5 set “Code Signing Identity” as default value, my default value is “Tomson Xu” (這應該是你在apple developer site建立的certificate name), click “Next”

Step 6 設定”Save as”為你的project name,設定存放生成檔案的位置”Where”,勾上”Save for Enterprise Distribution”。

Step 7 設定”Application URL”為即将生成的ipa将放到web site裡的URL (e.g.http://xxx.xxx.xxx.xxx/CityUCAP.ipa),設定”Title”為任意text(注意它并不是安裝後的app display name), click “Save” button. 這時它将建立一個ipa file和一個與ipa file同名的plist file (假設為 CityUCAP.ipa and CityUCAP.plist)

Step 8 把step 7生成的ipa and plist file複制到你的web site裡 (注意:其url要和step 7設定的”Application URL“一樣),然後建立一個html file as follow.

<a href="itms-services://?action=download-manifest&url=http://xxx.xxx.xxx.xxx/
CityUCAP.plist" target="_blank" rel="external nofollow" >Install App</a>

Step 9 你需要添加2個MIME類型到你的web server,否則安裝過程中就有可能出錯。下面以IIS為例添加MIME type

1. 打開IIS Manager,左邊panel標明root node,然後在右邊的panel double click “MIME Types”

2. right click 任意位置, select “Add…”,分别添加下列2個MIME Type

File name extension: .ipa 

MIME Type: application/octet-stream

File name extension: .plist 

MIME Type: text/xml

3. restart your web server

Step 10. 在你的iPhone web browser裡通路Step 8建立的html file,然後click link to install app!

關于第九步,因為我一直用的nginx是以也沒配置過這步,不過一直好使。

轉載:http://www.cnblogs.com/yingkong1987/archive/2012/10/28/2743774.html

對xampp配置,mime.types增加

application/vnd.android.package-archive apk

application/octet-stream ipa

text/xml plist

application/iphone pxl ipa