小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

一步一步實(shí)現(xiàn)無(wú)線安裝iOS應(yīng)用(內(nèi)網(wǎng)OTA)

 sungkmile 2016-04-05
OTA

什么是OTA?


OTA即Over-the-Air,是Apple在 iOS4 中新加的一項(xiàng)技術(shù),目的是讓開(kāi)發(fā)者能夠脫離Appstore,實(shí)現(xiàn)從自己的服務(wù)器下載并安裝iOS應(yīng)用。簡(jiǎn)單地說(shuō),就是用戶只需要在Safari中點(diǎn)開(kāi)一條鏈接,就能直接在主界面中安裝App。

實(shí)現(xiàn)原理


OTA方式安裝,是通過(guò)Safari解析鏈接中的“itms-services://”來(lái)實(shí)現(xiàn)的。

例如:

Iphone Download

Safari會(huì)去讀取installIPA.plist中的信息,如:iOS應(yīng)用的名稱、版本、安裝地址等。

實(shí)現(xiàn)方法


  1. 通過(guò)企業(yè)證書(shū)發(fā)布
  2. 通過(guò)個(gè)人證書(shū)發(fā)布(Ad_hoc)
  3. 直接安裝在越獄機(jī)器上

這里我們只討論大家最常見(jiàn)的,用個(gè)人證書(shū)發(fā)布內(nèi)測(cè)版。

實(shí)現(xiàn)步驟


1
2
3
4
5
6
1. Xcode打包release版本
2. 搭建本地Web服務(wù)器
3. 開(kāi)啟HTTPS
4. 編寫(xiě)好對(duì)應(yīng)的.plist文件
5. 上傳ipa、.plist、ca證書(shū)到Web服務(wù)器,配置好index.html
6. 在手機(jī)上用Safari打開(kāi)鏈接,完成下載

是不是很簡(jiǎn)單?OK, Let’s Start it!

Xcode打包


首先我們選擇好打包的證書(shū),因?yàn)槭莾?nèi)測(cè)包,所以我們選擇Ad_hoc證書(shū)。

選好證書(shū)后,輸出設(shè)備我們選擇iOS Device,然后在Product選項(xiàng)中,選擇Archive

Xcode會(huì)出現(xiàn)一個(gè)信息框,我們選擇Export,然后在彈出框中選擇第二項(xiàng),點(diǎn)擊Next

這時(shí)會(huì)彈出證書(shū)選擇框,我們需要選擇Ad_hoc證書(shū),點(diǎn)擊Choose

Xcode打包好后,會(huì)讓我們選擇保持路徑。這樣我們的iOS內(nèi)測(cè)包就已經(jīng)打包完成了。

搭建Web服務(wù)器


因?yàn)楸疚闹饕墙榻B怎么實(shí)現(xiàn)OTA的安裝,所以服務(wù)器搭建部分只做基本的指導(dǎo)(不過(guò)會(huì)詳細(xì)說(shuō)明怎么配置HTTPS),詳細(xì)搭建方法還請(qǐng)大家自行Google^_^。

好吧,iOS開(kāi)發(fā)都是用的Mac OS X,而Mac OS X中正好自帶了Apache服務(wù),所以這里我們只需要簡(jiǎn)單的在終端中敲擊一行命令,就能啟動(dòng)Web服務(wù)了。

sudo apachectl start

這時(shí)我們?cè)跒g覽器中輸入http://127.0.0.1/,如果出現(xiàn)It Works!,那么恭喜你Web服務(wù)器啟動(dòng)成功。

Web文件目錄是:“/Library/WebServer/Documents/”, 系統(tǒng)級(jí)根目錄默認(rèn)沒(méi)有開(kāi)啟目錄列表, 開(kāi)啟方法:編輯 “/etc/apache2/httpd.conf “文件。 搜索找到,按下列圖中紅框標(biāo)示處修改。DoucumentRoot可以改為任何路徑。

httpd.conf文件

開(kāi)啟HTTPS服務(wù)


因?yàn)閕OS7.1以后,Apple不再支持HTTP方式的OTA,所以我們需要為Apache開(kāi)啟HTTPS。

OpenSSL自制證書(shū)

開(kāi)啟HTTPS的第一步,就是需要先生成ssl證書(shū)。

  • 生成服務(wù)器的私鑰
    mkdir /private/etc/apache2/ssl
    cd /private/etc/apache2/ssl
    sudo openssl genrsa -out server.key 1024
  • 生成簽署申請(qǐng)(Common Name必須為服務(wù)器的ip或域名)
    sudo openssl req -new -key server.key -out server.csr
  • 生成CA私鑰
    sudo openssl genrsa -out ca.key 1024
  • 用CA的私鑰產(chǎn)生CA的自簽署證書(shū)
    sudo openssl req -new -x509 -days 365 -key ca.key -out ca.crt
  • 創(chuàng)建demoCA
    demoCA里面創(chuàng)建文件index.txt和serial,serial內(nèi)容為01,index.txt為空,以及文件夾newcerts
    sudo openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key

這樣我們就生成了server.crt,server.key,ca.crt文件。將 server.crt,server.key配置到服務(wù)器上,我們存放的位置是“/private/etc/apache2/ssl/server.crt”,“/private/etc/apache2/ssl/server.key”, ca.crt放到文件根目錄中。

配置Apache的SSL服務(wù)

仍然是編輯/private/etc/apache2/httpd.conf這個(gè)文件,去掉下面三行前面的 ‘#’

1
2
3
LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-ssl.conf
Include/private/etc/apache2/extra/httpd-vhosts.conf

編輯/private/etc/apache2/extra/httpd-ssl.conf這個(gè)文件,去掉下面兩行前面的 ‘#’

1
2
SSLCertificateFile "/private/etc/apache2/ssl/server.crt"
SSLCertificateKeyFile "/private/etc/apache2/ssl/server.key"

編輯/private/etc/apache2/extra/httpd-vhosts.conf這個(gè)文件,在‘NameVirtualHost*:80′后面添加:

1
NameVirtualHost *:443

在文件末尾添加:

1
2
3
4
5
6
7
8
<VirtualHost *:443>
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /private/etc/apache2/ssl/server.crt
    SSLCertificateKeyFile /private/etc/apache2/ssl/server.key
    ServerName 192.168.10.193
    DocumentRoot "/自己定義的路徑/"
</VirtualHost>

檢查配置,如果有問(wèn)題按照提示開(kāi)啟相應(yīng)服務(wù)即可。

sudo apachectl configtest

沒(méi)問(wèn)題后,重啟服務(wù)

sudo apachectl restart

這樣就可以用https訪問(wèn)我們的本地服務(wù)器了。

編寫(xiě)plist文件


plist文件編寫(xiě)很簡(jiǎn)單,網(wǎng)上有很多模板,我這里為大家提供常用的信息,里面很多地方可以更改為自己所需要的。

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
32
33
34
plist文件內(nèi)容如下:
<?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.10.193/test.ipa</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>必須和打包的bundleidentifier一樣</string>
                <key>bundle-version</key>
                <string>版本號(hào)</string>
                <key>kind</key>
                <string>software</string>
                <key>releaseNotes</key>
                <string>v1(可以隨意填)</string>
                <key>title</key>
                <string>App名稱</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

添加配置信息


我們把剛剛建好的plist文件(這里取名為installIPA.plist)、ipa包、ca證書(shū)放到Web服務(wù)器的文件目錄下,然后修改index.html中的內(nèi)容。
(index.html內(nèi)容):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www./1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>應(yīng)用名字</title>
</head>
<body>
<h1 style="font-size:40pt">iOS應(yīng)用OTA安裝<h1/>
<h1 style="font-size:40pt">
<a title="iPhone" href="itms-services://?action=download-manifest&url=https://192.168.10.193/installIPA.plist">Iphone Download</a>
<h1/>
<a title="iPhone" href="http://192.168.10.193/ca.crt">ssl 證書(shū)安裝</a>
<h1/>
</body>
</html>

如果一切OK的話,我們?cè)跒g覽器打開(kāi)本地服務(wù)器地址,會(huì)出現(xiàn)如下內(nèi)容:

OTA安裝


是的,到了最激動(dòng)人心的時(shí)候了,我們用iphone打開(kāi)瀏覽器,輸入本地服務(wù)器的地址,首先選擇ssl證書(shū)安裝, 然后再點(diǎn)擊Iphone Download,哈哈,是不是已經(jīng)彈出對(duì)話框詢問(wèn)需要安裝了??

沒(méi)錯(cuò),這時(shí)點(diǎn)擊安裝即可快速地實(shí)現(xiàn)OTA下安裝App了!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多