实现iOS局域网内打包,一键安装证书和内测App

实现iOS局域网内打包,一键安装证书和内测App

使用apache开启https功能,使用Mac终端命令处理

一、生成证书

1. 进入apache web根目录处理证书命令;

cd /Library/WebServer/Documents

可以在Documents目录下创建一个文件夹,用于存放证书、ipa包、plist文件和html文件;用命令:sudo mkdir iOS 创建一个名为iOS的文件夹,终端输入:cd iOS进入该文件夹,接下来是生成秘钥、生成签署申请、生成服务器私钥和生成给网站服务器签署的证书。

接下来的操作都是在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:[这里再次输入密码确认]

(2)生成签署申请:输入 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[这个必须填正确,是你的服务器的域名,或者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)生成服务器的私钥:输入sudo openssl rsa -in app.key -out server.key

Enter pass phrase for app.key:[这里输入密码]

writing RSA key

(4)生成给网站服务器签署的证书:输入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[这个必须填正确,是你的服务器的域名,或者ip,必须和上面输入的一致]

Email Address []:zhu410289616@163.com

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

(6)测试配置是否成功:输入sudo apachectl configtest

Syntax OK

(7)重启apache:输入 sudo apachectl restart

2.apache开启ssl功能

(1)终端输入:cd /etc/apache2/  进入该目录下编辑httpd.conf文件(/etc/apache2/httpd.conf和/private/etc/apache2/httpd.conf其实是同一个内容)

    终端输入:sudo vi httpd.conf  删除以下四行内容前面的“#”

  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/ 进入该目录下编辑httpd-ssl.conf文件

    终端输入:sudo vi httpd-ssl.conf 删除以下两行内容前面的“#”

    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上可能会显示:SSLCertificateFile "/private/etc/apache2/server.crt"和SSLCertificateKeyFile "/private/etc/apache2/server.key",反正我的电脑上是这样显示的,不用多做修改,只需删除前面的“#”即可

(3)同样在extra文件夹下,编辑httpd-vhosts.conf文件

    终端输入:sudo vi httpd-vhosts.conf 

该文件内容里会包含两个<VirtualHost *:80> ... </VirtualHost>,需要在第二个后面再加一个 :

<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[这个必须填正确,是你的服务器的域名,或者ip,必须和上面输入的一致]

DocumentRoot "/Library/WebServer/Documents"

</VirtualHost>

这样就已经配置完成了,运行sudo apachectl configtest命令,检查配置。

Syntax OK 代表成功

可以重启服务器  sudo apachectl restart

到这里服务器就已经支持ssl了,可以打开浏览器访问https://192.168.2.1/iOS,页面会显示:It Works 表示已经配置成功。

说明:https://192.168.2.1/iOS表示访问的是你服务器的iOS文件夹,可以使用快捷键 cmd+shift+G 前往文件夹,输入:/Library/WebServer/Documents,可以看到你创建的iOS文件夹,该文件夹下可以看到刚刚配置的证书。

二、创建plist文件、html文件

1.创建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>  (说明:你的服务器地址下的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> (说明:项目的bundle id)

<key>bundle-version</key>

<string>2.1.0</string>(说明:项目版本号)

<key>kind</key>

<string>software</string>

<key>title</key>

<string>内测ipa</string>(说明:这个随意输入)

</dict>

</dict>

</array>

</dict>

</plist>

2.创建html文件(index.html)

<!DOCTYPE HTML>

<html lang-"en">

<meta charset="UTF-8">

<head>

<title>app内测</title>

</head>

<body>

<h1 align="center">安装app内测版本</h1>

<br/>

<br/>

<p align="center">说明:必须先安装证书,再点击安装app</p>

<br/>

<br/>

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

  <font color="blue">

  <a href="https://192.168.2.1/iOS/server.crt">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,收集需要测试的设备UDID创建adhoc证书,打包ipa文件

最后将创建好的plist、html和ipa包导入你的服务器中的iOS文件夹下;

cmd+shift+G前往文件夹,输入:/Library/WebServer/Documents,将文件导入iOS文件夹里即可。

safari浏览器访问:https://192.168.2.1/iOS/index.html 即可实现一件安装app内测包。

中途遇到的坑:安装了证书后,再点击安装ipa时,如果提示“无法连接到192.168.2.1”这个ip地址,这个坑真的让我很无奈,搞了一下午,adhoc文件配了又配,以为是UDID没有加上去,欲哭无泪,最后无意中点击“设置->通用->关于本机->证书信任设置”,看到192.168.2.1这一项没有打开,(MMP)。好了,这个真的有点脑残了,希望你们不要遇到这样的坑!!!

结语:第一次写文章,也是借鉴大神写的这篇内容,有不足之处还望指出,正在努力学习中,觉得有用的同学可以点个赞哦,一起学习,一起成长!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容

  • 我们经常性的需要使用局域网搭建 Web 服务器测试环境,如部署局域网无线安装企业应用等,Mac OS X 自带了 ...
    大诗兄_zl阅读 1,658评论 0 2
  • 我们经常性的需要使用局域网搭建 Web 服务器测试环境,如部署局域网无线安装企业应用等,Mac OS X 自带了 ...
    小白不是总阅读 55,331评论 24 134
  • 亲爱的妹妹, 今天你真的很棒哦,下午妈妈接到外婆的微信来问我你今天的作业,我就知道在习惯的培养上你又进步了。 从前...
    helenxxf阅读 285评论 0 0
  • 思念——家乡 不知道什么时候,我们越走越远,远得忘记了小时候的样子,远得忘记了母亲年轻时美丽的模样,远得忘记了回...
    云儿的天空之城阅读 158评论 0 0