本服务运用开源项目AppHost,地址:

https://github.com/pluosi/app-host

  1. 依据官方文档,采用办法2 Docker自己编译。clone项目到本地
git clone https://github.com/pluosi/app-host.git /opt/app-host
cd /opt/app-host
  1. 确保docker已装置
 sudo apt install docker.io
  1. 假如需求修改端口,在源码里大局查找“3000”并改成需求的端口。
  2. 编译并发动
./docker/launcher bootstrap -v
./docker/launcher start
  1. 假如编译完之后要改端口,需求把docker镜像删去后重新编译。参阅这篇帖子。删去后重复过程4。
#列出正在运转的docker容器
docker ps
#移除运转的容器
docker rm -f {容器ID}
#列出编译好的镜像
docker images
#移除镜像
docker rmi -f {镜像ID}
  1. iOS装置包需求网站支持https。先在路由dns里面绑定ip和域名。
  2. 装置mkcert,生成自签名证书
wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64
chmod +x mkcert
mv mkcert /usr/local/bin/ 
  1. 生成证书并装置。这一步会在当前文件夹生成2个文件,放在某路径下保管好。
mkcert 192.168.1.251
mkcert -install
  1. 生成根证书,同样也放在之前的证书文件夹里便利归类。
mkcert -CAROOT
  1. 装备nginx反向署理。确保nginx已装置。nginx反向署理参阅这篇帖子
apt install nginx -y
  1. 创立装备文件
vi /etc/nginx/sites-available/app-host.conf
  1. 运用以下装备。server_name,ssl_certificate,ssl_certificate_key,proxy_pass依据实际情况填写。默认的https端口443转发到3001端口。反向署理能够监听80端口,转发到本机的443端口。假如需求有多个url来拜访这个服务,最要害的需求把每个ssl端口写成不一样的。在listen 80的时分,rewrite假如写$host$1,这个$1仍是443,默认的https端口。能够写死成示例中的https://172.16.1.23:444。
server {
    listen 443 ssl;
    server_name  192.168.1.251;
    # access_log /var/log/nginx/ota.xxx.com_access.log;
    ssl_certificate      /.../192.168.1.251.pem;
    ssl_certificate_key  /.../192.168.1.251-key.pem;
    ssl on;
    location / {
        proxy_set_header  Host $http_host;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Proto https;
        proxy_set_header  X-Forwarded-Port $server_port;
        proxy_pass http://192.168.1.251:3001; #此处改为 docker 服务的地址
    }
}
server {
    listen 80;
    server_name 192.168.1.251;
    rewrite ^(.*)$  https://$host$1 permanent;
}
server {
    listen 444 ssl;
    server_name  172.16.1.23;
    # access_log /var/log/nginx/ota.xxx.com_access.log;
    ssl_certificate      /.../172.16.1.23.pem;
    ssl_certificate_key  /.../172.16.1.23-key.pem;
    ssl on;
    location / {
        proxy_set_header  Host $http_host;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Proto https;
        proxy_set_header  X-Forwarded-Port $server_port;
        proxy_pass http://172.16.1.23:3001; #此处改为 docker 服务的地址
    }
}
server {
    listen 80;
    server_name 172.16.1.23;
    rewrite ^(.*)$  https://172.16.1.23:444 permanent;
}
  1. 把装备文件链接到相应目录下
ln -s /etc/nginx/sites-available/app-host.conf /etc/nginx/sites-enabled/
  1. nginx默认上传文件大小有限制,到/etc/nginx/nginx.conf下http{}段中加入装备
client_max_body_size 1000m;
  1. 重启nginx
systemctl restart nginx

至此,服务器装备好了。能够先用localhost:3001端口拜访网页,依据UI提示,上传一个包测验一下。打包需求挑选adhoc,不能选app store。接下来需求在手机上做一些装备。

  1. 手机有必要是测试手机,UDID在ipa profile的设备列表里。
  2. 把装备服务器时分生成的rootCA.pem通过air drop发到手机上,会提示装置证书。照提示装置证书。
  3. 以iOS15举例,收到文件以后进入设置->通用->VPN与设备管理。已下载的描绘文件下面点击刚收到的证书,照提示装置成功。
  4. 这一步很要害,方才描绘文件装置成功还需求信赖证书。进入设置->通用->关于本机->证书信赖设置。把方才装置的证书翻开信赖。