1. 程式人生 > >iOS實現OTA無線安裝App

iOS實現OTA無線安裝App

引用Apple說明:
您可以使用 Apple Developer Enterprise Program(Apple 開發者企> 業級計劃)開發 iOS 和 macOS 應用,對於開發、測試應用以及將> > 其分發給使用者,此計劃提供了完整的流程。您可以通過將應用託管> > 在您建立的安全網站伺服器上來分發應用,或通過使用移動裝置管> > 理 (MDM) 解決方案或其他應用管理解決方案來進行分發。

一、概念介紹

1、什麼是ipa檔案?

IPA 既 iPhone application archive ,是 iOS 系統的軟體包,ipa 檔案都是使用蘋果的

FairPlayDRM 技術進行加密保護的。

每個 ipa 檔案都是 ARM 架構的可執行檔案以及該應用的資原始檔的打包檔案,只能安裝在 iPhone,iPod Touch 或 iPad 上。

ipa 檔案可以通過修改後綴名為 zip 後,進行解壓縮,檢視其軟體包中的內容。

2、什麼是OTA?

OTA 即 Over-the-Air,是 Apple 在 iOS4 中新加的一項技術,目的是讓開發者能夠脫離 Appstore,實現從伺服器下載並安裝 iOS 應用。

使用者只需要在 iOS 裝置的瀏覽器中,開啟itms-services://協議連結,就可以直接安裝App。(注意:此處的安裝是指,個人賬號需要註冊裝置,企業賬號無需註冊裝置)

3、如何通過OTA安裝?

OTA方式安裝,是通過 WebKit 解析連結中的itms-services://來實現的。

例如: <a href="itms-services://?action=download-manifest&url=https://coding.net/u/richluisx/p/talent-shop/git/raw/master/manifest.plist">點選安裝</a>

iOS 瀏覽器會去讀取 manifest.plist 中的資訊,如:iOS應用的名稱、版本、安裝地址等。

4、IPA打包方式

打包方式 開發者賬號型別 釋出App Store 安裝裝置 證書
App Store 公司賬號、個人賬號 YES 無限制 釋出證書
Ad Hoc 公司賬號、個人賬號 NO 100 釋出證書
Enterprise 企業賬號 NO 無限制 釋出證書
Development 公司賬號、個人賬號 NO 100 開發證書

5、Apple開發者賬號型別

賬號型別 價格 釋出AppStore 安裝裝置數量 證書型別
個人賬號 $99 YES 100 Ad Hoc, App Store
公司賬號 $99 YES 100 Ad Hoc, App Store
企業賬號 $299 NO 無限制 Ad Hoc, In House
教育賬號 $0 YES 100 Ad Hoc, App Store

二、分發App準備

專案 說明
支援HTTPS的伺服器 本文選擇coding託管,也可以放到自己的伺服器,原理相同
ipa檔案 本文中使用企業簽名的.ipa檔案,蒲公英企業簽名服務
manifest.plist檔案 包含.ipa的下載地址、圖片地址
icon檔案 (2張)尺寸:512x512、57x57

三、生成manifest.plist

1、開啟Xcode,Targets選中Generic iOS Device,然後選擇Product,選擇Archive打包。

2、進入Archives,選擇Export,下邊三種方法都可以選。(區別參考1.4)

3、勾選,包含 manifest.plist 檔案用於 OTA 安裝。

4、填寫相關資訊,生成 manifest.plist 檔案。(隨便填寫,後面可以修改)

5、選擇,自動管理簽名,然後匯出。

6、獲取到 manifest.plist 檔案。

四、上傳伺服器

本文使用 coding 伺服器來演示,也可以放到自己的伺服器中,原理相同。

1、將檔案推送到coding倉庫,目錄結構如下

2、獲取.ipa檔案下載連結

3、獲取57x75、512x512圖片連結

4、獲取manifest.plist連結,先選擇“原始資料”,然後“複製瀏覽器中的連結”

五、修改manifest.plist

1、將第四章的獲取的連結,以及App資訊等資料,替換到【xxxxx】標記的對應內容中,然後重新推送到coding遠端倉庫。

<?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>【xxxxx】</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>display-image</string>
                    <key>url</key>
                    <string>【xxxxx】</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>full-size-image</string>
                    <key>url</key>
                    <string>【xxxxx】</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>【xxxxx】</string>
                <key>bundle-version</key>
                <string>【xxxxx】</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>【xxxxx】</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

欄位參考:

欄位 說明
software-package https://coding.net/u/richluisx/p/talent-shop/git/raw/master/talent-shop.ipa .ipa 安裝包地址
display-image https://coding.net/u/richluisx/p/talent-shop/git/raw/master/talent-logo.512x512.png .57x57 圖片地址
full-size-image https://coding.net/u/richluisx/p/talent-shop/git/raw/master/talent-logo.57x57.png .512x512 圖片地址
bundle-identifier com.xxx.xxx 包標識
bundle-version 1.2.1 版本號
title 達人店 應用名稱

六、生成下載App的html

1、通過<a>標籤,跳轉itms-services協議連結的方式,來下載安裝App。

OTA安裝協議參考:

itms-services://?action=download-manifest&url=【替換為 manifest.plist 檔案地址】

示例程式碼:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>達人店App下載</title>
</head>
<body>
<a href="itms-services://?action=download-manifest&url=https://coding.net/u/richluisx/p/talent-shop/git/raw/master/manifest.plist">點選安裝</a>
</body>
</html>

七、安裝App

更多文章

相關推薦

iOS實現OTA無線安裝App

引用Apple說明: 您可以使用 Apple Developer Enterprise Program(Apple 開發者企> 業級計劃)開發 iOS 和 macOS 應用,對於開發、測試應用以及將> > 其分發給使用者,此計劃提供了完整的流程。您可以

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

本地伺服器名:xampp  思路: 1.將生成的 .plist檔案放到dropbox中 複製分享連結  將連線寫入到index.html中  2.將ipa程式包 放在本地或者上傳到dropbox中 獲取連線 寫到.plist檔案中 3.將獲得到的分享連線 www.dr

[iOS] “是否允許“xxx”使用數據”,在iOS10之後,首次安裝App會彈框讓用戶授權,問題解決方案。

log 引導圖 決定 問題 應對 mil ima 移動 bsp 一、為什麽會彈 “是否允許使用數據”?   因為按照我們天朝的工信部要求,用戶再使用應用的過程中,如果要使用移動數據必須要用戶授權,其實這是好事,是為了保護用戶的流量或者話費不會無端的被扣除。所以蘋果在 iOS

iOS實現微信外部H5支付完成後返回原APP(多APP也可實現)

更改 開發 技術分享 服務器端 嚴重 圖片 正常 接口 width 看到微信最近放開了微信H5支付,公司決定把H5集成到多款APP上。下面記錄下了開發過程。 由於是微信新推出的支付方式,在網上搜索到的相關資料並不多,其中有一篇文章(點此跳轉)對我的整個開發過程起到了很大幫助

蘋果安裝app的另一種方式(通過itms-services協議,不通過AppStore,直接安裝IOS應用程式)

最近有一專案的要求是不通過蘋果商店,二是通過掃描二維碼進行下載app,當然了安卓手機是非常容易做到的,這裡主要講述蘋果的。以及兩個應用合併為一個的知識點。其實很多分發平臺就是這樣做的。比如:fir.im等等吧。那麼接下來我們開始我們的部落格內容。 其實分發平臺很多是獲取你上傳的app,會生成

iOS開發之資訊類App常用分類控制元件的封裝與實現(CollectionView+Swift3.0+)

今天部落格中,我們就來實現一下一些常用資訊類App中常用的分類選擇的控制元件的封裝。本篇部落格中沒有使用到什麼新的技術點,如果非得說用到了什麼新的技術點的話,那麼勉強的說,用到了一些iOS9以後UICollectionView新增的一些新的特性。本篇部落格所涉及的技術點主要有UICollectionView的

apple個人開發者證書無線釋出app實現

http://blog.csdn.net/sing_sing/article/details/7489906 http://blog.csdn.net/sing_sing/article/details/7497794 http://blog.csdn.net/gtnc

關於iOS實現前臺,後臺,鎖屏或關閉app語音播報

公司要求像支付寶收款一樣,收到推送後實現語音播報功能,之前沒有做過,特此機會研究一下。 用到的技術點: 1.如果對語音要求不是特別高的情況下,用蘋果系統自帶的AVSpeechUtterance可以實現,也可以用訊飛的sdk。 2.之前公司用的是友盟推送,可以實現

iOS 使用Class-dump分析App內部實現

前言 前幾天在網上無意間看到了class-dump這個詞語,出於好奇就查了下,沒想到挺有意思的:簡單來說,就是可以將objc編譯後程序中的宣告資訊匯出檢視,有點類似於源程式的.h標頭檔案。 這個有什麼用呢?國內搜尋class-dump能看到一些使用class-dump匯出Apple Fra

iOS — IPA 包不經過APP Store直接釋出到網站供使用者下載安裝

最近公司有需求,要把IOS客戶端(IPA包)放到自己伺服器上供使用者下載,這樣就能跳過APP Store 的稽核。 準備條件 1.IOS 開發包 即IPA檔案。 2.Plist檔案。 3.https伺服器(IOS7.01之後必須https) 準備條件具備就可以開始接下來的操作了。 一.釋出一個網

iOS逆向----在模擬器上安裝APP

首先要確保這個app是simulator的包,如果是release的包,會由於CPU架構不同,導致啟動APP時閃退。simulator的包可以從下圖所示的方法拿到: 開啟終端 ➜ instru

Android&iOS:如何在外部啟動app(若有安裝APP, 則自動啟動app(使用 URL Schema), 若沒有安裝, 則詢問是不是到應用市場下載)

Android&iOS:如何在外部啟動app(若有安裝APP, 則自動啟動app(使用 URL Schema), 若沒有安裝, 則詢問是不是到應用市場下載) 原理:用瀏覽器開啟下載網頁html, 利用javascript進行條件判斷。  <head>

h5頁面喚起app(iOS和Android),沒有安裝則跳轉下載頁面

由於研究了之後,和同事溝通,找到一個地址進入,分別測試不同手機,機型,安卓進入安卓應用商店,ios進入app store ;所以直接貼了一個連結,即可。 下面方法,暫時沒用到,分享給需要的盆友。 COPY的方法如下,參考:------------------------

IOS企業版app部署到自己伺服器,不通過AppStore,在iOS裝置上直接安裝應用程式

<?xml version="1.0" encoding="UTF-8"?> itemsassetskindsoftware-packageurlhttp://192.168.100.71:8080/AhHxAppService/resources/platform/AHhaoXian.ipak

iOS:蘋果企業證書通過網頁分發下載安裝app

      基本的原理就是在生成企業證書授權的ipa的同時,要生成一個對應的plist檔案,plist檔案中會配置ipa的下載地址、版本資訊、Bundle ID 等資訊,通過網頁下載的時候其實下載的是這個plist檔案,然後蘋果通過自己的協議根據plist檔案的配置資訊去自動的下載安裝app。這樣就可以將這個

iOS開發 UIScrollView制作APP引導頁

touch 技術 -s code 配置 target 視圖 需要 html http://jingyan.baidu.com/article/4dc40848a341dfc8d846f152.html 聽語音 | 瀏覽:4606 | 更新:2015-02-10 12:

qt-qml移動開發之在ios上開發和部署app流程簡單介紹

mod target auto 100% rda 自己 color ans ora qt5.3已經全面支持移動開發,除了mac,windows,linux。還支持ios,android,wp,meego等移動平臺,本教程是作者依據自己的經驗,從頭講怎麽樣在ios上公布

iOS 實現QQ界面

mov end 點擊 gre blog state 數據 track prop 應師傅要求編寫個QQ界面來不吝賜教下我的代碼問題。 編寫個QQ界面。有三個組,每一個組有人。並顯示在線不在線。 先看一下效果圖 這裏省了事由於我的圖片僅僅用了一張。假設要依據人的不同設置,

iOS 實現簡單的毛玻璃效果

rec 毛玻璃效果 實現簡單 ges 導航欄 view設置 with 技術 簡單 最近在整理導航欄的漸隱漸現效果,整理過程中偶然學會了圖片的毛玻璃效果實現,很簡單,不多說了,先上圖看看效果對比, 這是原圖, 這是加了效果後的,創建圖片的代碼就不上了,下面看下添加效果的代碼

值得向iOS學習的15個APP設計技巧

結合 減少 控件 系統設置 用戶信息 接下來 通知 保持 不同版本 iOS設計規範再閱讀 對比Google Material Design的設計規範,iOS有些大道至簡的味道,內容很少,但還是從中總(chao ) 結 ( xi ) 了一些設計技 ( tao)巧 ( lu )