参考:
PlistBuddy基本使用方法
jquery-qrcode使用js生成二维码
Mac OS X 上的Apache配置
由于配置ipa下载服务器需要有https的服务器,自己大家https服务器太麻烦,可以借用github创建免费公共仓库的功能,使用maintain.plist文件的托管
一、在github自动托管mainfest.plist
前言:由于苹果要求mainfest.plist必须要正式的https服务器,一般公司内部很少有付费的正式的https域名及证书,所以借用github公开仓库实现这个需求
1.1 设置github公共仓库:
https://github.com/h42330789/testplist
1.2 设置github使用token的方式上传文件
参考:creating-a-personal-access-token
访问地址 : https://github.com/settings/tokens
创建新的token,并保存记住token
1.3 本地clone项目, 使用命令或sourcetree都可以
随便修改一个内容提交,就有输入用户名密码的提示,密码一定要输入上一步生成的token
1.4 使用shell命令自动生成mainfest.plist,并自动上传到github
# 保证utf8编码,不乱码
export LC_ALL=en_US.UTF-8
echo "====github mainfest.plist start======"
# 当前shell所在的路径
fromShellPath=`pwd`
# plist仓库地址
toGitPath="/Users/xxx/xxxx/TestPlist"
# plist模板地址
demoPlistPath="/Users/xxx/xxx/demo.plist"
# 创建新的
addPlistPath="$toGitPath/xxx.plist"
cp $demoPlistPath $addPlistPath
# 修改plist
/usr/libexec/PlistBuddy -c "Set :items:0:metadata:bundle-identifier xxx" $addPlistPath
/usr/libexec/PlistBuddy -c "Set :items:0:metadata:bundle-version xxx" $addPlistPath
/usr/libexec/PlistBuddy -c "Set :items:0:metadata:bundle-version xxx" $addPlistPath
/usr/libexec/PlistBuddy -c "Set :items:0:metadata:title xxx" $addPlistPath
/usr/libexec/PlistBuddy -c "Set :items:0:assets:0:url http://xxx/xxx.ipa" $addPlistPath
# 进入plist的github的本地仓库
cd $toGitPath
# 将新增的plist添加到仓库里并提交
git add $addPlistPath
git commit -m "add new"
git push --force
# 返回shell原本的执行路径
cd $fromShellPath
# 现在就能通过访问github上的plist了
# https://raw.githubusercontent.com/用户名/仓库名/main/xxx.plist
echo "====github mainfest.plist start======"
二、搭建apache服务器
前言:由于Mac自带Apache2服务器,直接使用就可以, 可以很方便的搭建用于分发ipa包的服务器
参考:Mac OS X 上的Apache配置
2.1、 配置并启动Apache
apache默认端口是80,可以在/etc/apache2/httpd.conf
设置特别的端口
在Apache的目录/Library/WebServer/Documents
里建一个文件夹,并设置为所有人可读可写
# 查看apache版本
sudo apachectl -v
# 启动apache
sudo apachectl start
# 重启apache
sudo apachectl restart
# 关闭
sudo apachectl stop
2.2、配置安装网页到Apache服务里
自动通过url的地址解析出ipa的地址及plist的地址,同时使用qrcode库生成二维码图片
参考:https://github.com/jeromeetienne/jquery-qrcode
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>自定义ipa服务器</title>
<script type="text/javascript" src="./jquery.min.js"></script>
<script type="text/javascript" src="./jquery.qrcode.min.js"></script>
</head>
<body>
<p>使用手机相机扫描以下二维码进行安装</p>
<div id="qrImage"></div>
<div>
<a id="install" href="">点击安装</a>
</div>
<div>
<a id="download" href="">下载</a>
</div>
<script type='text/javascript'>
$(document).ready(function () {
let params = window.location.href.split("?")
var fileName = ""
if (params.length == 2) {
var paramList = params[1]
var varList = paramList.split("&");
var varDict = {}
for (var i=0;i<varList.length;i++) {
var keyVal = varList[i].split("=");
varDict[keyVal[0]] = keyVal[1]
}
if (varDict["name"] != undefined) {
fileName = varDict["name"]
} else {
fileName = params[1]
}
}
// 搭建的本地服务器的ipa地址
// "http://127.0.0.1:8090/test/demo.ipa"
var downloadPath = "http://127.0.0.1:8090/files/"+fileName+".ipa"
// github上创建的mainfest的地址
// "itms-services://?action=download-manifest&url=https://raw.githubusercontent.com/用户名/仓库名/main/"+fileName+".plist"
// "itms-services://?action=download-manifest&url=https://raw.githubusercontent.com/h42330789/testplist/main/demo.plist"
var installPath = "itms-services://?action=download-manifest&url=https://raw.githubusercontent.com/h42330789/testplist/main/"+fileName+".plist"
$('#qrImage').qrcode(installPath);
$('#install').attr("href", installPath);
$('#download').attr("href", downloadPath);
$('#download').text("安装包下载地址:"+downloadPath);
});
</script>
</body>
</html>
网友评论