最强打包插件,支持fir,蒲公英上传, 360加固 ,自动生成二维码
文章目录
- 序言
- 说明
- 效果
- 使用
- 下载demo
- 导入文件
- 文件内容说明
- 配置gradle
- 配置gradle.properties
- 文件位置
- 内容
- 项目中配置
- 补充说明
- 1.360加固配置
- 2.curl乱码
- 3.邮箱配置
- 4.Fir Token 获取
- 5.蒲公英 uKey,api key获取
- 功能拓展
- GUI扩展
- gradle扩展
- 下载Android gradle 插件
序言
由于公司的项目具有多个环境。每次打包都要手动选择编译类型,打包还得上传fir,和蒲公英。最后截二维码给测试。为了偷懒写了一个gradle 脚本。实现以下功能
- 自定义打包类型,可以指定buildType和flavor
- 支持定义多种,多个服务器,fir和蒲公英都支持,每种服务都可以配置多个。
- 支持自动打包上传,上传使用curl具有上传进度
- 支持360加固。只需要简单配置即可实现360自动加固
- 支持自动获取git日志作为更新日志
- 支持配置邮箱,实现打包完成自动提醒。
说明
目前支持的Android gradle插件版本有 3.4.1 ,4.0.1 ,4.1.0
在项目根目录的build.gradle文件中可以查看插件版本。4.1.0以上是否支持还没测试,可自行测试。
buildscript {repositories {google()jcenter()}dependencies {//gradle Android插件版本classpath "com.android.tools.build:gradle:4.1.0"}
}
效果
口说无凭直接看效果。
功能 | 截图 |
---|---|
自定义打包类型,可以指定buildType和flavor | |
通过简单配置,自动生成相关任务双击即可执行。 | |
发布到相关服务器显示进度信息 | |
上传成功自动生成二维码弹出提示框 | |
支持360加固 | |
配置邮箱,发布成功自动提醒 |
使用
下载demo
相关的脚本和使用的demo已经上传至github。需要先下载demo。
Publish-GitHub地址
导入文件
将其中的publish文件夹引入到你的app module中
文件内容说明
文件 | 功能 |
---|---|
icon/app_logo.png | 存放应用的图标,使用的时候,直接覆盖即可。建议尺寸150px*150px 太大的话还得压缩没必要。也可以不使用这个图片,自行配置logo路径既可 |
lib/AppPublish-1.0-SNAPSHOT.jar | 提供了弹窗功能,二维码生成功能,发送邮件功能 |
log | 主要是存放curl访问接口时产生的临时文件,访问结束后会自动删除。这个文件夹不要动它 |
publish.gradle | 所有功能的脚本,生成打包,发布,加固任务 |
配置gradle
配置gradle.properties
为了能在多个项目共享配置,建议在gradle的安装目录,配置一个gradle.properties文件。也便于一个部门内统一使用这个打包插件。更多内容可以参考【Gradle深入浅出】——Gradle配置(一)
文件位置
内容
#-------------------------App发布助手需要的变量---start---------------------------#注意配置的路径的时候需要使用转义符,:要加转义符,\也要。#比如地址是E:\abc 需要写成 E\:\\abc#360加固配置#360jar包地址,不能包含中文
TRSJiaGuJirPath=E\:\\WORK\\JiaGu\\360jiagubao_windows_64\\jiagu\\jiagu.jar
#360用户名
TRSJiaGuUserName=xxx
#360密码
TRSJiaGuPassword=yyy
#打包输出路径,不能包含中文
TRSJiaGuOutPath=C\:\\Users\\Administrator\\Desktop\\360JiaGuOut\\#Email配置#Email的Smtp服务器地址
TRSPublishEmailServer=smtp.qq.com
#Email地址
TRSPublishEmailAddress=123123123@qq.com
#Email的密码,或者token
TRSPublishEmailPassword=abcdabcd
#Email功能是否启用,true或fasle
TRSPublishEmailEnable=true#公司的FIR#api_tokenTRSFirApiToken=abc123456789#公司的蒲公英配置#ukey
TRSPgyUKey=abc123456789
#api_key
TRSPgyApiKey=abc123456789
#安装的时候使用密码 true 或false
TRSPgyUsePasswordOnInstall=false
#安装密码
TRSPgyInstallPassword=123456
#-------------------------App发布助手需要的变量---end---------------------------
补充: 这个properties文件最后解析成一个Map<String,String> 所以如果是路径包含了斜杠等符号,需要使用转义。注释中有说明。
定义在该文件中的变量可以在build.gradle中直接使用。但是如果要让其转换成其他值,比如String转Boolean需要这样写。
email {smtpServer TRSPublishEmailServeremailAddress TRSPublishEmailAddressemailPassWord TRSPublishEmailPassword//string转boolenable TRSPublishEmailEnable.toBoolean()}
因为360加固包不支持中文,所以生成的apk的名字和存放的路径都不能含有中文
项目中配置
这是demo中的完整build.gradle文件。方便大家查看 。相关的说明我都写在注释里了。
plugins {id 'com.android.application'
}
//引用打包插件
apply from: "publish/publish.gradle"//配置打包插件
ApkPublish {//配置加固信息 jiaGu{jarPath TRSJiaGuJirPathuserName TRSJiaGuUserNamepassword TRSJiaGuPassword//outPutPath路径中不能包含中文outPutPath TRSJiaGuOutPath}//配置应用信息,在弹窗和而成二维码的时候需要使用apkInfo {appName "昨日头条"appLogo file("/publish/icon/app_logo.png")}//配置Email,如果不需使用,可以将enable设置为falseemail {smtpServer TRSPublishEmailServeremailAddress TRSPublishEmailAddressemailPassWord TRSPublishEmailPasswordenable TRSPublishEmailEnable.toBoolean()}//fir服务器,下面可以配置多个fir {//一个fir服务器,"公司fir"是他的名字,只有一个属性apiToken//可以配置多个,只有名字唯一就行。该名字只需要配置为apk中的serverName属性//即可实现自动选择该服务器作为上传服务器公司fir {apiToken TRSFirApiToken}}//蒲公英服务器,下面可以配置多个pgy{//一个蒲公英服务器,"公司pgy"是他的名字,需要两个属性//uKey和apiKey//usePasswordOnInstall 表示安装的时候是否需要密码 值是bool//password 安装需要的密码,值是String//可以配置多个,只有名字唯一就行。该名字只需要配置为apk中的serverName属性//即可实现自动选择该服务器作为上传服务器公司pgy{uKey TRSPgyUKeyapiKey TRSPgyApiKeyusePasswordOnInstall TRSPgyUsePasswordOnInstall.toBoolean()password TRSPgyInstallPassword}}//配置需要生成的apk文件apk {//配置一个apk文件//“正式版”是它的名字,根据这个名字会生成3个任务//打包正式版,发布正式版,加固正式版//buildType 值是String类型,必须是Android配置下的的buildType中的某给值//flavor 值是flavor ,必须是Android配置下的productFlavors中的某个值,没有的话可以自己建一个//serverName 上传的服务器名称,必须是fir配置下,或pgy配置下 某项的名字//useGitLog 是否使用git日志作为更新日志。true的话会提取最近的五条日志作为更新日志//否则更新日志会显示upload by 打包助手正式版 {buildType "release"flavor "official"serverName "公司fir"useGitLog true}测试版 {buildType "release"flavor "BJTest"serverName "公司pgy"useGitLog true}}}android {compileSdkVersion 30buildToolsVersion "30.0.3"defaultConfig {applicationId "com.zgh.apkpublish"minSdkVersion 16targetSdkVersion 30versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}//需要配置签名,这样才可以实现全过程的自动化signingConfigs {release {storeFile file('../key/apk_publish.jks')storePassword 'admin123'keyPassword 'admin123'keyAlias = 'publish'}}buildTypes{release{minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'//设置需要使用的签名配置signingConfig signingConfigs.release}debug{//设置需要使用的签名配置signingConfig signingConfigs.release}}//不同的产品风味productFlavors {flavorDimensions "api"official {buildConfigField "String", "BASE_URL", "\"正式环境\""}BJTest{buildConfigField "String", "BASE_URL", "\"测试环境\""}}
}dependencies {implementation 'androidx.appcompat:appcompat:1.3.0'implementation 'com.google.android.material:material:1.3.0'implementation 'androidx.constraintlayout:constraintlayout:2.0.4'testImplementation 'junit:junit:4.+'androidTestImplementation 'androidx.test.ext:junit:1.1.1'androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
补充说明
1.360加固配置
360加固下载地址
安装成功以后它的安装地址是
jar包就在这个位置
2.curl乱码
win10 自带了curl。但是上传的时候如果包含了中文会出现乱码。比较简单的解决办法就是修改系统的编码。
小编教你把win10系统默认编码为utf8
3.邮箱配置
建议使用QQ邮箱,手机上安装QQ邮箱可以实时收到提醒。
进入QQ邮箱->设置->账户
往下翻
4.Fir Token 获取
fir官网
5.蒲公英 uKey,api key获取
蒲公英首页
点击API信息
功能拓展
GUI扩展
我的GUI是自己编写的库也上传到github了,需要修改的可以自行fork。
GUI
gradle扩展
所有功能实现都在publish.gradle中。可以自行阅读,扩展功能。
也可以参考以下内容实现扩展
Android Gradle学习(五):Extension详解 这是一个系列,值得学习
【Gradle Task】FIR上传脚本(cURL方式、关联git提交次数、更新日志)
curl 的用法指南
Android Gradle 插件版本说明
下载Android gradle 插件
分享一个下载gradle插件源码的小技巧,只需要将你需要的gradle插件作为依赖配置在你的项目中
然后gradle就会下载代码,可以通过反编译查看一些Android gradle不同版本间实现的差异。这样可以提高脚本的兼容性。
最强打包插件,支持fir,蒲公英上传, 360加固 ,自动生成二维码相关推荐
- 通过web系统实现淘宝营销引流,小说或者视频上传之后自动生成二维码,通过二维码分享之后引入微信或者扣扣加群,群满自动切换到下一个,以及数据统计分析和若干个小工具集成
通过web系统实现淘宝营销引流,小说或者视频上传之后自动生成二维码,通过二维码分享之后引入微信或者扣扣加群,群满自动切换到下一个,以及数据统计分析和若干个小工具集成. 主要实现技术: 1.大文件视频分 ...
- PHP资格证书查询系统源码 自动生成二维码 支持导入导出功能
PHP资格证书查询系统源码 自动生成二维码 支持导入导出功能 程序说明: PHP资格证书查询系统源码 证书管理? 自动生成二维码 支持导入和导出功能 采用fastadmin框架开发而成 PHP资格证书 ...
- jquery二维码生成插件jquery.qrcode.js在线生成二维码
一代巨匠金庸先生驾鹤西去,谢谢您的作品,陪我度过儿时的时光 –2018.10.31 一.场景再现 由于业务需求,经常会将访问链接分享给别人,方便其他客户访问我们的业务.在本周的需求中,我们需要根据地址 ...
- Vue+element-ui上传logo图片到后端生成二维码展示到页面
Vue+element-ui上传logo图片生成二维码展示到页面 该文章将介绍如何通过前端上传二维码logo图片在后台生成二维码,并将生成的二维码转换成Base64编码返回给前端在页面展示,用户扫码二 ...
- jenkins 下自动构建 生成二维码(不使用蒲公英 fir)
最近蒲公英每个版本只能下载10次了. 我感觉未来免费的东西会越来越不好,所以准备利用Tengine或者tomcat搭建自己 的下载平台. 先说下如何实现吧: 首先jenkins自动打包apk后, 把a ...
- JB的测试之旅-jenkins打包产物生成二维码
前言 无风不起浪,为什么会做这个事情,就要由前几天讲起了.. 悲剧了 小公司没有资源,因为很多内测都是用第三方的,这边用的是蒲公英: 在某日早上,开发提测,打包,上传pgy,准备给业务方体验的时候,结 ...
- Jenkins自动化打包生成二维码下载链接
在自动化打包流程中,Jenkins是一个不错的工具,可以帮助我们省去很多的打包和部署问题,解放了双手.通常,使用Jenkins 打包好的 apk 文件,我们可以上传到tomcat或者httpd所在服务 ...
- jquery.qrcode.js生成二维码插件转成图片格式
1.qrcode其实是通过使用jQuery实现图形渲染,画图,支持canvas(HTML5)和table两种方式, github源码地址: https://github.com/jeromeetien ...
- vue批量生成二维码并压缩打包下载(图片带标题)
借鉴:原文~~~(但是有问题,在基础上改良) 效果图(生成的二维码带下面标题的): 代码如下: 先安装依赖(或者用命令:npm i jszip): yarn add jszip yarn add fi ...
最新文章
- G41显卡Linux驱动,Intel最新G41/G43/G45集成显卡驱动下载
- 20172322 《程序设计与数据结构》第八周学习总结
- flask(一)之路由和视图
- ASP.NET传统的三层架构
- 系统背景描述_【计算机论文】管件加工管理系统和数据库的结构探析
- 《解析几何》吕林根,徐子道第四版 习题 1.4.7,1.4.8,1.4.9
- Oracle控制文件日志文件数据文件迁移
- HttpUrlConnection的简单使用--get和post的简单使用
- python——numpy——roll()函数
- Spark 计算人员三度关系
- 亚马逊 kindle 刷机 过程记录
- 台式计算机无线网卡,台式机无线网卡怎么选 台式机无线网卡选购指南
- 「AR裸眼插画」零基础入门级教程来啦
- 最漂亮HTML5高端个人简历自适应模板
- android 获取手机号码 权限,Android跳转到通讯录获取用户名称和手机号码
- 从零开始学前端 - 1. HTML基础知识
- Polygon Soup
- macOS Xcode C语言使用延时函数
- Word处理控件Aspose.Words功能演示:在 Java 中将 HTML 文件转换为 Word 文档
- 开源网安亮相粤港澳大湾区CIO高峰论坛,保障企业数字化安全转型