美文网首页
Mac配置Jenkins四,使用github+Apache2配置

Mac配置Jenkins四,使用github+Apache2配置

作者: 独孤流 | 来源:发表于2023-05-24 00:19 被阅读0次

    参考:
    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

    image.png
    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设置特别的端口

    image.png

    在Apache的目录/Library/WebServer/Documents里建一个文件夹,并设置为所有人可读可写

    image.png
    # 查看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>
    

    三、以上例子的完整demo

    https://github.com/h42330789/testplist

    相关文章

      网友评论

          本文标题:Mac配置Jenkins四,使用github+Apache2配置

          本文链接:https://www.haomeiwen.com/subject/yauzsdtx.html