通過OTA的方式在區域網路分發iOS應用,ota區域網路分發ios
公司的一個項目有Android和iOS的app,Android的下載和安裝都很方便,不過iOS有些麻煩,因為項目本身有些限制,主要有以下一些障礙:
1.iOS的版本不是通過Appstore分發。
2.出於安全的考慮,Android和iOS的app只能通過vpn的方式來訪問伺服器,而手機通過vpn後是無法訪問互連網的。因此無法訪問互連網的相關HTTPS的服務,換句話說就是無法使用互連網的SSL認證的web服務。
3、iOS的版本大於7.1的,因此apple的itms-services協議必須實用HTTPS。
鑒於上面這些障礙,於是考慮在區域網路搭建內部HTTPS的服務,通過OTA(Over-the-Air)方式來分發iOS的應用。
OTA
OTA即Over-the-Air,簡單來說就是通過無線方式發送指令給裝置,具體針對iOS的裝置,比如iphone 、ipad等,讓開發人員能夠脫離Appstore,實現從自己的伺服器下載並安裝iOS應用。 使用者只需要在iphone 或ipad的瀏覽器中點開一條連結,就能直接在主介面中安裝App。整個分發的過程包括三部分:裝置(iPhone,ipad),伺服器(profile service,用來發送設定檔),驗證伺服器(包括CA和目錄伺服器)。
OTA分發的實現方式
針對iOS應用分發,需要在伺服器裡上包括三個檔案,來實現OTA方式的分發
1.ipa檔案,也就是應用安裝包,可以是開發人員認證簽名的,也可以是企業認證。
2.plist檔案,主要用來說明iOS應用的安裝資訊,主要的安裝資訊包括ipa檔案的名稱和存放路徑。可以通過Xcode來建立plist檔案,具體建立過程和plist檔案這裡就不贅述了。
3、一個提供itms-services協議連結的頁面,同時該頁面是通過HTTPS的方式訪問。itms-services協議連結指向plist檔案的路徑,例如:
<a href="itms-services://?action=download-manifest&url=https://192.168.0.1/appipa.plist">Install App</a>
有了上面三個檔案,apple裝置就可以通過提供HTTPS伺服器,讀取plist檔案的iOS安裝的ipa檔案的路徑,從而實現下載和安裝。
自建OpenSSL認證
由於提供HTTPS的服務只能在區域網路內部,因此SSL認證不能使用相關CA機構頒發的,且認證不是基於網域名稱,是基於ip地址的,因此只能採用自製認證。在這裡我採用的是OpenSSL配置Tomcat 的SSL認證,OpenSSL使用是windows 版本的Apache伺服器下的openssl.exe產生。 步驟如下(採用命令列的方式):
1.產生伺服器的私密金鑰
openssl genrsa -out server.key 1024
2.產生簽署申請(Common Name必須為伺服器的ip或網域名稱)
openssl req -new -out server.csr -key server.key -config ..\conf\openssl.cnf
3.產生CA私密金鑰
openssl genrsa -out ca.key 1024
4.用CA的私密金鑰產生CA的自簽署認證
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -config ..\conf\openssl.cnf
5.建立demoCA(bin目錄下)
demoCA裡面建立檔案index.txt和serial,serial內容為01,index.txt為空白,以及檔案夾newcerts
6.產生網站伺服器簽署認證
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ..\conf\openssl.cnf
最後把產生好的server.crt 和server.key路徑配置到Apache伺服器的openssl.cnf設定檔裡(具體配置見相關文檔),重新啟動Apache伺服器即可。
SSLCertificateFile “/Apache22/conf/ssl2rver.crt”
SSLCertificateKeyFile “/Apache22/conf/ssl2rver.key”
用戶端認證ca.crt可以通過下載或者email方式提供給iOS 裝置安裝,不過有一點要注意:由於這是自簽名的SSL認證,是不可信任的,因此需要在iphone 或ipad 裏手動設定信任認證。
安裝完用戶端認證後,就可以通過iphone 或ipad的瀏覽器來訪問提供itms-services協議連結的頁面,下載和安裝iOS的應用了。
-----------------------------------------------------------
歡迎關注我的網站和公眾號,文章會在我的網站和公眾號上同步發布。
本文首發連結:https://www.watch-life.net/website-app/ota-ios-app.html
我的網站:守望軒
公眾號名稱:守望軒
公眾號:iwatchlife
你也可以掃描或長按以下二維碼