實(shí)現(xiàn)iOS局域網(wǎng)內(nèi)打包,一鍵安裝證書和內(nèi)測(cè)App

實(shí)現(xiàn)iOS局域網(wǎng)內(nèi)打包,一鍵安裝證書和內(nèi)測(cè)App

使用apache開啟https功能,使用Mac終端命令處理

一、生成證書

1. 進(jìn)入apache web根目錄處理證書命令;

cd /Library/WebServer/Documents

可以在Documents目錄下創(chuàng)建一個(gè)文件夾,用于存放證書、ipa包、plist文件和html文件;用命令:sudo mkdir iOS 創(chuàng)建一個(gè)名為iOS的文件夾,終端輸入:cd iOS進(jìn)入該文件夾,接下來是生成秘鑰、生成簽署申請(qǐng)、生成服務(wù)器私鑰和生成給網(wǎng)站服務(wù)器簽署的證書。

接下來的操作都是在iOS文件夾下,使用終端命令完成:

(1)生成秘鑰:輸入sudo openssl genrsa -des3 -out app.key 1024

Generating RSA private key, 1024 bit long modulus

.....++++++

.........++++++

e is 65537 (0x10001)

Enter pass phrase for app.key:[這里是輸入密碼]

Verifying - Enter pass phrase for app.key:[這里再次輸入密碼確認(rèn)]

(2)生成簽署申請(qǐng):輸入 sudo openssl req -new -key app.key -out app.csr

Enter pass phrase for app.key:

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:CN[這里是國家,CN中國]

State or Province Name (full name) [Some-State]:Zhejiang[這里是省份,城市,隨意輸入]

Locality Name (eg, city) []:hangzhou[這里是城市,隨意輸入]

Organization Name (eg, company) [Internet Widgits Pty Ltd]:zsyx[這里是公司,隨意輸入]

Organizational Unit Name (eg, section) []:zsyx[這里是組織名稱,隨意輸入]

Common Name (e.g. server FQDN or YOUR name) []:192.168.2.1[這個(gè)必須填正確,是你的服務(wù)器的域名,或者ip]

Email Address []:123456@163.com[這里是我的郵箱]

please enter the following 'extra'attributes

to be sent with your certificate request

A challenge password []:123456[這里是密碼]

An optional company name []:zsw[這里是名字]

(3)生成服務(wù)器的私鑰:輸入sudo openssl rsa -in app.key -out server.key

Enter pass phrase for app.key:[這里輸入密碼]

writing RSA key

(4)生成給網(wǎng)站服務(wù)器簽署的證書:輸入sudo openssl req -new -x509 -days 3650 -key server.key -out server.crt

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:CN

State or Province Name (full name) [Some-State]:hangzhou

Locality Name (eg, city) []:hangzhou

Organization Name (eg, company) [Internet Widgits Pty Ltd]:hz ltd

Organizational Unit Name (eg, section) []:rh

Common Name (e.g. server FQDN or YOUR name) []:192.168.2.1[這個(gè)必須填正確,是你的服務(wù)器的域名,或者ip,必須和上面輸入的一致]

Email Address []:zhu410289616@163.com

(5)輸入sudo cp server.* /etc/apache2/

(6)測(cè)試配置是否成功:輸入sudo apachectl configtest

Syntax OK

(7)重啟apache:輸入 sudo apachectl restart

2.apache開啟ssl功能

(1)終端輸入:cd /etc/apache2/? 進(jìn)入該目錄下編輯httpd.conf文件(/etc/apache2/httpd.conf和/private/etc/apache2/httpd.conf其實(shí)是同一個(gè)內(nèi)容)

? ? 終端輸入:sudo vi httpd.conf? 刪除以下四行內(nèi)容前面的“#”

? LoadModule ssl_module libexec/apache2/mod_ssl.so

? Include /etc/apache2/extra/httpd-ssl.conf

? Include /etc/apache2/extra/httpd-vhosts.conf

? LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so

并且查看ServerName是不是指向 127.0.0.1:80 或者www.example.com:80

(2)終端輸入:cd /etc/apache2/extra/ 進(jìn)入該目錄下編輯httpd-ssl.conf文件

? ? 終端輸入:sudo vi httpd-ssl.conf 刪除以下兩行內(nèi)容前面的“#”

? ? SSLCertificateFile "/etc/apache2/ssl/server.crt"?

? ? SSLCertificateKeyFile "/etc/apache2/ssl/server.key"

說明:SSLCertificateFile "/etc/apache2/ssl/server.crt"和 SSLCertificateKeyFile "/etc/apache2/ssl/server.key"在你的Mac上可能會(huì)顯示:SSLCertificateFile "/private/etc/apache2/server.crt"和SSLCertificateKeyFile "/private/etc/apache2/server.key",反正我的電腦上是這樣顯示的,不用多做修改,只需刪除前面的“#”即可

(3)同樣在extra文件夾下,編輯httpd-vhosts.conf文件

? ? 終端輸入:sudo vi httpd-vhosts.conf?

該文件內(nèi)容里會(huì)包含兩個(gè)<VirtualHost *:80> ... </VirtualHost>,需要在第二個(gè)后面再加一個(gè) :

<VirtualHost *:80>

SSLEngine on

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile /etc/apache2/server.crt

SSLCertificateKeyFile /etc/apache2/server.key

ServerName 192.168.2.1[這個(gè)必須填正確,是你的服務(wù)器的域名,或者ip,必須和上面輸入的一致]

DocumentRoot "/Library/WebServer/Documents"

</VirtualHost>

這樣就已經(jīng)配置完成了,運(yùn)行sudo apachectl configtest命令,檢查配置。

Syntax OK 代表成功

可以重啟服務(wù)器? sudo apachectl restart

到這里服務(wù)器就已經(jīng)支持ssl了,可以打開瀏覽器訪問https://192.168.2.1/iOS,頁面會(huì)顯示:It Works 表示已經(jīng)配置成功。

說明:https://192.168.2.1/iOS表示訪問的是你服務(wù)器的iOS文件夾,可以使用快捷鍵 cmd+shift+G 前往文件夾,輸入:/Library/WebServer/Documents,可以看到你創(chuàng)建的iOS文件夾,該文件夾下可以看到剛剛配置的證書。

二、創(chuàng)建plist文件、html文件

1.創(chuàng)建plist文件

<?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>https://192.168.2.1/iOS/app.ipa </string>? (說明:你的服務(wù)器地址下的ipa文件)

</dict>

<dict>

<key>kind</key>

<string>display-image</string>

<key>needs-shine</key>

<true/>

<key>url</key>

<string>https://192.168.2.1/iOS/app.png</string> (說明:可以隨意放一張圖片)

</dict>

</array>

<key>metadata</key>

<dict>

<key>bundle-identifier</key>

<string>com.ipeaksoft.pitDadGame</string> (說明:項(xiàng)目的bundle id)

<key>bundle-version</key>

<string>2.1.0</string>(說明:項(xiàng)目版本號(hào))

<key>kind</key>

<string>software</string>

<key>title</key>

<string>內(nèi)測(cè)ipa</string>(說明:這個(gè)隨意輸入)

</dict>

</dict>

</array>

</dict>

</plist>

2.創(chuàng)建html文件(index.html)

<!DOCTYPE HTML>

<html lang-"en">

<meta charset="UTF-8">

<head>

<title>app內(nèi)測(cè)</title>

</head>

<body>

<h1 align="center">安裝app內(nèi)測(cè)版本</h1>

<br/>

<br/>

<p align="center">說明:必須先安裝證書,再點(diǎn)擊安裝app</p>

<br/>

<br/>

<div style=font-size:25px align="center">

? <font color="blue">

? <a >1.安裝證書</a>

? </font>

</div>

<br/>

<br/>

<div style=font-size:25px align="center">

? <font color="blue">

<a href="itms-services://?action=download-manifest&url=https://192.168.2.1/iOS/app.plist">2.安裝app</a>

? </font>

</div>

</body>

</html>

3.打包ipa,收集需要測(cè)試的設(shè)備UDID創(chuàng)建adhoc證書,打包ipa文件

最后將創(chuàng)建好的plist、html和ipa包導(dǎo)入你的服務(wù)器中的iOS文件夾下;

cmd+shift+G前往文件夾,輸入:/Library/WebServer/Documents,將文件導(dǎo)入iOS文件夾里即可。

safari瀏覽器訪問:https://192.168.2.1/iOS/index.html 即可實(shí)現(xiàn)一件安裝app內(nèi)測(cè)包。

中途遇到的坑:安裝了證書后,再點(diǎn)擊安裝ipa時(shí),如果提示“無法連接到192.168.2.1”這個(gè)ip地址,這個(gè)坑真的讓我很無奈,搞了一下午,adhoc文件配了又配,以為是UDID沒有加上去,欲哭無淚,最后無意中點(diǎn)擊“設(shè)置->通用->關(guān)于本機(jī)->證書信任設(shè)置”,看到192.168.2.1這一項(xiàng)沒有打開,(MMP)。好了,這個(gè)真的有點(diǎn)腦殘了,希望你們不要遇到這樣的坑!??!

結(jié)語:第一次寫文章,也是借鑒大神寫的這篇內(nèi)容,有不足之處還望指出,正在努力學(xué)習(xí)中,覺得有用的同學(xué)可以點(diǎn)個(gè)贊哦,一起學(xué)習(xí),一起成長!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我們經(jīng)常性的需要使用局域網(wǎng)搭建 Web 服務(wù)器測(cè)試環(huán)境,如部署局域網(wǎng)無線安裝企業(yè)應(yīng)用等,Mac OS X 自帶了 ...
    大詩兄_zl閱讀 1,796評(píng)論 0 2
  • 我們經(jīng)常性的需要使用局域網(wǎng)搭建 Web 服務(wù)器測(cè)試環(huán)境,如部署局域網(wǎng)無線安裝企業(yè)應(yīng)用等,Mac OS X 自帶了 ...
    小白不是總閱讀 55,713評(píng)論 24 134
  • 親愛的妹妹, 今天你真的很棒哦,下午媽媽接到外婆的微信來問我你今天的作業(yè),我就知道在習(xí)慣的培養(yǎng)上你又進(jìn)步了。 從前...
    helenxxf閱讀 358評(píng)論 0 0
  • 思念——家鄉(xiāng) 不知道什么時(shí)候,我們?cè)阶咴竭h(yuǎn),遠(yuǎn)得忘記了小時(shí)候的樣子,遠(yuǎn)得忘記了母親年輕時(shí)美麗的模樣,遠(yuǎn)得忘記了回...
    云兒的天空之城閱讀 197評(píng)論 0 0

友情鏈接更多精彩內(nèi)容