使⽤Nginx搭建应⽤分发服务
使⽤ Nginx 搭建应⽤分发服务
很多时候⼿机 App 的开发需要提供测试版本供测试⼈员测试,但是直接提供安装包让测试⼈员安装的话是⾮常⿇烦的,尤其是ios版本,许多⼈并不知道除了AppStore之外的其它安装⽅式。为此,搭建⼀个⾃动分发⼿机 App 的服务,通过⽹页在线安装可以达到⾃动化部署,终端测试可以点击⽹页链接或扫⼀扫⼆维码便可以⾃动下载安装 App。
安装 Nginx
使⽤ Nginx 搭建服务器,在 Linux 系统上安装 Nginx。
使⽤静态⽂件服务器发布 Android 应⽤
Android 版本应⽤程序的⼀种发布⽅法是搭建⼀个静态服务器,将 apk 安装包放在对应⽬录下,⼿机端访问静态⽂件服务器,直接点击对应安装包,就可以完成下载,Android系统系统可以⾃⼰完成apk的安装。
这⾥只需要在 Nginx 配置⽂件中添加⼀个静态服务的配置即可:
http  {
......
......
server  {
listen 192.168.16.111:8080;
server_name  192.168.16.111  alias  another.alias;
location  /  {
root  /home/OTPMobile/android;
access_log  on;
autoindex  on;
}
}
}
Android 的 APK 安卓包放置在 /home/OTPMobile/android ⽬录下即可。
使⽤ HTTPS 服务发布 IPA 和 APK
IOS 的 ipa 安装包并不⽀持直接下载安装(上传 AppStore 的除外)。想要实现⽹页发布,简单的⽅法就是需要部署⼀台⽀持 https 服务器(Nginx),⽣成好数字证书,将iOS 应⽤使⽤ AdHoc 证书或企业证书打包。这样⽤户就可以通过 Safari 访问 ipa 页⾯进⾏安装了。
当然 Android 版本 APP 也可以通过 https 服务发布,⽅法要⽐ ios 的简单的多,因为省去了许多证书的烦恼。
使⽤ openssl ⽣成数字证书
配置 Nginx ⽀持 HTTPS
在使⽤ Xcode 打包 ipa 的时候会⽣成 manifest.plist(或则⾃⼰创建该⽂件),修改这个⽂件中关于服务器地址的配置,还需准备分辨率为 57x57 和 512x512 的 logo 图标:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "www.apple/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>
<string>software-package</string>
<key>url</key>
<string>192.168.16.111/ios/OTPMobile.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>url</key>
<string>192.168.16.111/ios/image.57x57.png</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>url</key>
<string>192.168.16.111/ios/image.512x512.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
linux离线安装nginx详细教程<string>p.mobile</string>
<key>bundle-version</key>
<string>3.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>OTPMobile</string>
</dict>
</dict>
</array>
</dict>
</plist>
将 ipa 安装包、manifest.plist、logo 图⽚和证书(HTTPS 需要安装并信任证书)上传到搭建好的 https 服务器
在搭建 https 服务器时我们添加了⼀个 index.html ⽂件,这⾥需要对这个 html ⽂件做⼀些修改,以期显⽰我们需要的内容。如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>
<title>⼿机令牌</title>
</head>
<body>
<h1>1. 证书安装<a href="192.168.16.111/">点击安装证书</a><br/>(如果之前尚未安
装过此证书,请先安装证书)</h1>
<br/>
<h1>2. iOS安装<a href="itms-services://?action=download-manifest&url=192.168.16.111/ios/manifest.plist">点击安装IOS⼿机令牌</a></h1> <br/>
<h1>3. Android安装<a href="192.168.16.111/android/otpmobile.apk">点击安装Android⼿机令牌</a></h1>
</body>
</html>
遇到的问题
使⽤ https 服务安装 Android 应⽤的时候,会出现下载失败的情况。通常有有两种解决⽅法,⼀是:禁⽤⼿机的云加速功能,⼆是:不使⽤⼿机默认的浏览器,⽽是使⽤⾕歌、百度或其它第三⽅浏览器打开。
在实际安装 ios 安装包时,会提⽰连接⽹址失败的错误,这是由于我们使⽤的是⾃签名的 SSl 证书,苹果的Safari不⽀持这种证书,我们需要到 CA 申请正式的证书。我们可以借⽤第三⽅的平台发布,下⾯将介绍使⽤ GitHub 发布 ios ⼿机令牌的⽅法:
创建免费的 GitHub 账号,建⽴新的⼯程,并上传 ipa 安装包、logo图⽚,然后创建个⼈主页。
修改 index.html ⽂件,配置 GitHub 的个⼈主页地址为下载安装的链接
修改 index.html ⽂件,配置 GitHub 的个⼈主页地址为下载安装的链接
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>
<title>⼿机令牌</title>
</head>
<body>
<h1>
1. 证书安装<a href="19
2.168.16.118/">点击安装证书</a>
<br/>
(如果之前尚未安装过此证书,请先安装证书)
</h1>
<br/>
<h1>
2. iOS安装<a href="itms-services://?action=download-manifest&url=xxxxxx.github.io/OTPMobile/manifest.plist">点击安装IOS⼿机令牌</ a>
</h1>
<br/>
<h1>3. Android安装<a href="192.168.16.118/android/otpmobile.apk">点击安装Android⼿机令牌</a>
</h1>
<br/>
<h1>
4. 扫码安装
<br/>
<img src="192.168.16.118/html/cr.png"alt="CR"title="扫码安装证书"/>
<img src="192.168.16.118/html/ios.png"alt="IOS"title="扫码IOS⼿机令牌"/>
<img src="192.168.16.118/html/android.png"alt="Android"title="扫码安装安卓⼿机令牌"/>
<br/>
           ;证书
                    &n bsp;   IOS
                   Android </h1>
</body>
</html>
修改 manifest.plist ⽂件,并将其上传 GitHub
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "www.apple/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>xxxxxx.github.io/OTPMobile/OTPMobile.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>url</key>
<string>xxxxxx.github.io/OTPMobile/icon57x57.png</string>
</dict>
<dict>
<key>kind</key>
<key>kind</key>
<string>full-size-image</string>
<key>url</key>
<string>xxxxxx.github.io/OTPMobile/icon512x512.png</string>    </dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>p.mobile</string>
<key>bundle-version</key>
<string>3.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>OTPMobile</string>
</dict>
</dict>
</array>
</dict>
</plist>
此时,该 GitHub ⼯程中包含下图所⽰的⽂件:
下载和安装 ipa

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。