Android实现自动化打包:git+GitLab+蒲公英+钉钉机器人

uniapp - APP云打包、蒲公英平台发布APP的步骤 APP云打包、蒲公英平台发布APP的步骤 阅读详情

兜兜转转再次回到开发岗,新入职的公司用的自动打包,觉得挺神奇的,想自己试试怎么弄的。顺便记录一下

1. 配置gitlab

1.1 新建测试项目

第一步可以直接在gitlab上新建一个android测试项目,项目根目录会有.gitlab-ci.yml文件,这个就是CI持续集成的。一会儿我们再来配置,测试项目结构如下:
在这里插入图片描述

1.2 gitlab-runner

这一步需要下载runner,启动runner,最后注册runner,有不懂的可以看命令行,很简单的
runner页面
在这里插入图片描述
runner启动后可以在gitlab的settings的CI/CD中看到这个runner,绿灯就代表ok了
在这里插入图片描述

至此我们push代码的时候其实已经能够看到CI在工作了
在这里插入图片描述

1.3 配置.gitlab-ci.yml文件(windows未完成,mac可运行,区别mac是单引号,windows需要双引号,转义转不明白,放弃了)

这一步卡了不少时间,主要是对yml不熟悉,想找个直接能用的,需要配置自己的环境
最简单的配置文件:

image: openjdk:8-jdk

variables:
  ANDROID_COMPILE_SDK: "28"
  ANDROID_BUILD_TOOLS: "28.0.3"
  ANDROID_SDK_TOOLS:   "24.4.1"

before_script:

stages:
  - build

assembleDebug:
  stage: build
  only:
    - master
  script:
    - ./gradlew assembleDebug -g C:\Users\杨浩东\.gradle(改成你的gradle地址)
    - curl.exe -F "_api_key=1a2fbf9aba4cdaafea85841ea25d93a8"(改成你的apikey) -F "file=@app/build/outputs/apk/debug/app-debug.apk"(自定义apk目录) https://www.pgyer.com/apiv2/app/upload
    - curl "https://oapi.dingtalk.com/robot/send?access_token=32e804c89ee5ef3844f5977f0bedacdc37b377352f1f7840a56e3b79cfc9215b"(钉钉机器人设置页面可以找到) -XPOST -H 'content-type:application/json' -d '{"msgtype":"text","text":{"content":"【Andord Auto Test】打包完成,下载地址:https://www.pgyer.com/22V2"},"isAtAll":false}}'
  artifacts:
    paths:
      - app/build/outputs/apk/debug/app-debug.apk
  tags:
    - test(runner register时候的tags 进行匹配)

遇到的问题集锦

1.CI一直处于阻塞状态

你可以查看一下报的什么问题,我一开始的问题是runner register的时候不知道选什么选了docker-windows,应该是我没有装这个的缘故,后来网上查了改成shell是最方便的。
可以看到这一步已经成功了
在这里插入图片描述

2.初始化环境出错

在这里插入图片描述
网上说是有些win10的机器会出错
这里只要将你安装runner目录的config.toml文件中搜索pwsh修改成powershell即可

3.上传蒲公英出现问题

在这里插入图片描述
最后是这条指令在本地可以跑了,但是上传代码依然有问题 这步卡了很久很久
curl -F "_api_key=1a2fbf9aba4cdaafea85841ea25d93a8" -F "file=@app/build/outputs/apk/debug/app-debug.apk" https://www.pgyer.com/apiv2/app/upload
我觉得应该是shell指令改成powershell上面的就出现问题了,一个坑跳进另一个坑啊,这里最后用自己的runner设置成powershell,restart runner就成功了,莫名其妙卡了半天 真的很奇怪。

4.注意 windows环境一定要双引号 并且要进行转义 并且汉字要转成unicode码才能正常显示 太坑了

下面这句在本地是能跑通的。

curl "https://oapi.dingtalk.com/robot/send?access_token=dd95eb024977ecb75c8947c014fb751e529b59b0a8addc9b9269eb5ecadbe0bf" -H "Content-type: application/json" -d
"{\"msgtype\": \"text\",\"text\": {\"content\":\"test\"}}"
Android-Gradle-自动化多渠道打包,嵌入式音视频应用开发 File channelFile = file("${app[“channelPath”]}/new") if (!channelFile.exists()) { channelFile.mkdirs() } def cmd = “java -jar ${app[“vasDollyPath”]} put -c ${”…/channel.txt"} ${outputpackersApk()} ${channelFile.absolutePath}" println cmd cmd.execute().wait 阅读详情

相关推荐

Android-Gradle-自动化多渠道打包,阿里+头条+抖音+百度+蚂蚁+京东面经

gradle其实为我们提供了一系列相关的任务,如下图我们执行加固前是需要拿到一个release包的,所以我们可以利用在加固前先执行这个Task。//可以利用task的依赖关系先执行打包。

m0_60388216的博客 820

Android使用Jenkins自动化打包

本次探索完成了Jenkins环境搭建及Android Gradle项目构建配置及打包,可同步本地仓库、Git、SVN远程仓库进行打包。Jenkins的插件非常丰富,功能强大。后续继续完善用户管理、Jenkins Pipeline、Blue Ocean的探索。

至道无难,唯嫌拣择 6195

Android应用自动化打包与上传解决方案

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具,它使用一种基于Groovy的特定领域语言来声明项目设置,比传统的XML更加简洁灵活。一个典型的Gradle脚本包含以下部分:: 应用一个或多个插件到当前项目,这是配置项目依赖和任务的关键。: 指定项目的依赖仓库,如Maven或Ivy,这是Gradle获取项目外部依赖的地方。: 项目所依赖的外部库,通常和结合使用。task: 定义项目中的一个任务,可以配置任务的执行依赖、描述和行为。

weixin_42146230的博客 1066

Android服务器自动打包 Linux+Gradle+SDK+Git+JDK+Jenkins 环境配置

Android linux服务器打包APk Linux+Gradle+SDK+Git+Jenkins

qq_41828783的博客 1604

Android应用批量打包自动化解决方案

本文还有配套的精品资源,点击获取 简介:在Android应用发布阶段,批量打包工具能够自动化生成针对不同渠道和环境的定制化APK文件。该工具包括渠道号替换、服务器地址替换、资源替换、指定文件修改和包名变更等功能,极大提升了开发效率,减少了出错率,并允许开发者根据需求快速定制APK。 1. Android批量打包工具概述 Android 应用开发中,确保应用的...

weixin_28809949的博客 1741

PLSQL Developer新手必看:如何避免安装过程中的常见坑

本文为PL/SQL Developer新手提供了详尽的安装与配置避坑指南。从版本选择、注册码使用、汉化包安装到Oracle客户端连接配置,逐一解析常见问题并提供解决方案,帮助开发者快速搭建稳定的PL/SQL开发环境,顺利开启Oracle数据库编程工作。

g9h0i1的博客 649

游戏开发效率提升:从自动化构建到工程化实践

在游戏开发领域,提升团队协作与开发效率是核心诉求。其原理在于通过工程化方法,将重复、易错的手动流程自动化,从而释放开发者精力,聚焦于核心创意与逻辑实现。这不仅能显著提升代码质量与项目稳定性,更是应对快节奏、多平台发布等复杂场景的关键技术价值。典型的应用场景包括版本控制管理、持续集成与部署(CI/CD)、以及本地开发调试优化等。本文聚焦于游戏开发中的高效工具链与最佳实践,深入探讨如何利用 Git LFS 管理大型资源,并通过 Jenkins 等自动化构建方案,打造稳定、可扩展的开发工作流,从而系统性提升团队在

weixin_34292402的博客 328

如何用python开发“跳一跳”游戏【附源码】

jump_start_time = pygame.time.get_ticks() # 记录跳跃开始时间。jump_duration = current_time - jump_start_time # 计算跳跃持续时间。current_time = pygame.time.get_ticks() # 获取当前时间。jump_velocity = -15 # 设置跳跃的初始速度。# 如果小球跳跃结束,重置跳跃状态。# 根据跳跃持续时间计算跳跃高度。# 移除超出屏幕的障碍物。

helloshili2011的博客 2495

Unity3d自动化构建与热更:Jenkins+Docker实战指南

持续集成(CI)是现代软件开发的核心实践,它通过自动化代码构建、测试和部署流程,确保软件质量并提升团队协作效率。其原理在于将版本控制、构建工具和自动化脚本串联,实现代码提交后自动触发完整交付流水线。这一技术价值在于减少人为错误、加速反馈循环并实现流程标准化。在游戏开发领域,Unity3d项目因其资源密集和跨平台特性,尤其需要自动化构建来解决频繁打包、热更新资源生成等工程挑战。通过结合Jenkins这一主流CI工具与Docker容器化技术,可以搭建稳定、可复现的构建环境,有效管理Unity许可证、处理Andr

weixin_33735077的博客 376

Open3D:Win10 + VS2017配置Open3D(C++、python)

一、下载源码 地址:https://github.com/intel-isl/Open3D 1.1 克隆源码【笔者的源码路径为D:\Open3D\Open3D】 1.2 切换版本【笔者的版本为0.8.0】 1.3 更新子模块【用于获取第三方库!很重要!】 二、CMake编译 2.1 设置路径 【source code: D:\Open3D\Open3D;build binaries: D:\Open3D】 【笔者设置CMAKE/CMAKE_INSTALL_PREFIX的路径为D:/Open.

累了就要打游戏 1万+

SMETANA 安装使用教程

关于SMETANA的安装和简单使用信息

qq_44940977的博客 1166

Android开发-Android项目Jenkins自动化打包流程搭建与配置

Jenkins 是一个用于自动化构建、测试和部署软件项目的开源持续集成和持续交付(CI/CD)工具。它提供了一个可扩展的平台,可以帮助开发团队更快地构建、测试和交付他们的应用程序。

_彼岸雨敲窗_的博客 7180

开关变换器分析:大信号模型与小信号模型

是电力电子系统建模中的两类基本方法,分别用于描述系统在不同工作条件下的动态行为。它们的核心区别在于是否对变量进行线性化近似,以及适用的分析场景。

创新改变世界! 1906

jenkins+gitlab实现Android自动打包填坑之旅

1.首先你需要知道你想要实现的Android自动打包的Android项目的一些环境配置及需要使用的一些开发版本。声明:本文 Android项目基于:1.jdk11 2.SDK无要求 3.gradle无要求(同Manven一样为项目自动化构建开源工具)注:本文适用于 任何版本 jdk SDK Gradle。了解Android项目使用到的东西就可以开始干活了.......... xixi。

weixin_54401017的博客 2264

内存泄漏系列专题分析之二十一:高通相机CamX内存泄漏&内存占用分析--GPU内存拆解

通过上述debug方式,可以看到patch补丁可以顺利debug各种ION内存分布,可以通过它分析ION内存占用问题。同时我们还可以分析GPU内存泄漏问题,同样的方式可以看到所有的GPU内存分布,如果某个GPU内存持续增长,就极有可能内存泄漏,然后更具堆栈信息去分析代码,并解决GPU内存泄漏问题。!!

451

【实战圣经】YOLOv8-pose姿态估计模型从训练到RK3588部署:让边缘端骨骼识别速度突破60FPS

本教程从“模型训练-转换-边缘部署”全链路拆解了YOLOv8-pose姿态估计方案在RK3588上的落地过程,每一步都经过实战验证。无论是智能健身的动作实时纠正,还是工业设备的关键部件姿态检测,这套流程都能让你以最低成本实现高精度、高实时性的姿态估计应用。如果你在实践中遇到模型转换报错、部署性能不达标等问题,可聚焦某一环节深入优化——毕竟,让AI在边缘端“精准捕捉每一个关键点”,才是技术驱动场景创新的核心。

m0_71589036的博客 251

IOS蒲公英自动打包

IOS蒲公英自动打包每一位IOS 开发者都打过 *.ipa包,打完包之后还得发给相应的测试人员或者给领导等。 而且每次打包平均在4分钟左右,不要小看这4分钟,累计起来就不是怎么点儿啦。 从而我决定一个自动打包的方法,那就是蒲公英啦。好废话不多话啦,看实际的。安装蒲 Fastlane 查看api文档 官方安装指南 注 ruby、rubygems、bundler 都要安装成功。 fastla

Terry的博客 2005

《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第一篇:开发环境准备

vue3入门实战:环境准备篇

感谢阅读 1384

Android之Gradle自动化打包实战

解放双手,双击桌面快捷方式生成apk包,基于Gradle、bat文件让开发人员告别打包烦扰!前不久有一个Unity3D研发的小仙女在羽毛球场问我关于Android Studio打apk的一些事情,她说他们运营和测试隔三差五的就坐着她旁边要她重复性的打包(估计是那群痴汉打着工作的幌子实际上干着撩妹的活惹火了这位认真敬业的小姐姐),那么有没有省力一点的办法快速打包?一直以来,对于某些频繁进行打包工作的业务部开发人员来说,打包工作不仅繁琐冗余而且费时费力。

金戈鐡馬 3870

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Android-Gradle-自动化多渠道打包

针对于上面的问题,我总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料。(包括Java在Android开发中应用、APP框架知识体系、高级UI、全方位性能调优,NDK开发,音视频技术,人工智能技术,跨平台技术等技术资料),希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

2401_84132685的博客 1003

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

2024年安卓最全这应该是最全的Jenkins-Android自动打包构建教程了,2024年最新字节跳动高工面试

如果你觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。,第一时间获取最新知识点Android架构师之路很漫长,一起共勉吧!以前一直是自己在网上东平西凑的找,找到的东西也是零零散散,很多时候都是看着看着就没了,时间浪费了,问题却还没得到解决,很让人抓狂。后面我就自己整理了一套资料,还别说,真香!资料有条理,有系统,还很全面,我不方便直接放出来,大家可以先看看有没有用得到的地方吧。

2401_84520271的博客 493

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android自动化打包——Jenkins自动化打包工具(Mac平台)

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。改文章,我们通过使用Jenkins自动化工具,定期打包我们的Android APK项目,方便研发与测试的协同。

bjxiaxueliang的CODING小栈 6057

蒲公英内侧:项目打包成ipa文件,创建证书和描述文件流程

iOS开发和软件测试有两种测试方法。 第一种:iOS开发人员发写好的工程传到SVN服务器上面,由测试人员下载项目代码,配置好编译环境,用xcode打开,然后在手机端运行检查bug。 第二种:iOS开发人员把项目打包成ipa文件,借助第三内侧蒲公英平台,最后测试人员只要轻松的扫描二维码下载软件,然后检查bug。 下面详细介绍第二种方法: 1.在蒲公英官网,我们只需注册账号,登录之后点击发布广

李浩源的博客 5916

Android Apk一键打包上传至蒲公英平台的gradle脚本

doLast {uploadPgy的task。注意到里面还有一行group ‘pack’,这个意思是这个task任务会在pack文件夹下出现这里是这个task依赖于"app:assembleXXXRelease"这个task任务。而"app:assembleXXXRelease"中的app即为,主module的名字,如果主module名字为app那么这里写app,如果主module名字为mmm,这里也写mmm。而后面assembleXXXRelease即为,项目打包的任务命令/**

u010257931的博客 2095

Android自动打包,调用钉钉机器人发送二维码

思路:使用jenkins打包完成后,上传至蒲公英,并调用钉钉机器人发送二维码 这里参考了另一位博主的文章:https://www.jianshu.com/p/eb8ed81a0073 Jenkins配置: 1、源码管理:对应的代码的存储位置,可自行选择 2、构建: 我这里比较简单,直接就是命令构建,(就相当于在Android Studio 下构建包一样) 3、1: 构建后操作 (因为需要上传至蒲公英,这里需要安装蒲公英插件) 下载插件:jenkins -> 系统管理 -> 插件管理,搜索 U

weixin_45496656的博客 1509

Ubuntu中Gitlab + Gitlab-CI + Docker + Fastlane完成Android自动化编译和打包

Android开发过程中持续集成是一项非常重要和必要的工作。持续集成指的是通过自动化的方式将开发、测试和部署过程整合在一起,实现代码的自动构建和测试,并快速反馈给开发人员,从而加快软件开发周期,提高软件质量和稳定性。以下是持续集成的重要性和必要性:提高开发效率和质量:持续集成可以自动构建和测试代码,快速检测出问题,并及时反馈给开发人员,这样可以减少手动测试的工作量,提高效率和质量。降低错误率:持续集成可以避免由于手动构建和测试过程中的疏忽而引入错误,保证了代码的准确性和可靠性,降低了错误率。

文韬武略的专栏 1529
上一篇: 依赖注入和Dagger2
下一篇: 使用apksigner对应用进行签名(oppo市场需要打空白包)
missingcall
博客等级 码龄10年 8粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值