设置build.gradle打包时自动加时间
在build.gradle中添加以下函数:
1 2 3 | def releaseTime() { return new Date().format( "yyyyMMddHHmm" , TimeZone.getTimeZone( "GMT+08:00" )) } |
引用这个函数:
def fileName = "SecyrityPassDemo_${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
以下是一个完整的build.gradle文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | apply plugin: 'com.android.application' android { compileSdkVersion 26 buildToolsVersion "26.0.2" defaultConfig { applicationId "com.pci.securigydemotest" minSdkVersion 19 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" signingConfigs { release { storeFile file( "/APP_Keystore/keyless.keystore" ) //签名文件全路径 storePassword "123456" keyAlias "keyless.keystore" keyPassword "123456" } } applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith( '.apk' )) { // 输出apk名称为Pos_v1.0.0_201709251000_.apk def fileName = "SecyrityPassDemo_${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk" output.outputFile = new File(outputFile.parent, fileName) } } } productFlavors { Beta { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "Beta" ] } } } buildTypes { release { signingConfig signingConfigs.release minifyEnabled false proguardFiles getDefaultProguardFile( 'proguard-android.txt' ), 'proguard-rules.pro' } } repositories { flatDir { dirs 'libs' } } } android { lintOptions { abortOnError false } } def releaseTime() { return new Date().format( "yyyyMMddHHmm" , TimeZone.getTimeZone( "GMT+08:00" )) } dependencies { compile fileTree(dir: 'libs' , include: [ '*.jar' ]) androidTestCompile( 'com.android.support.test.espresso:espresso-core:2.2.2' , { exclude group : 'com.android.support' , module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:26.0.0-alpha1' compile(name: 'security-release' , ext: 'aar' ) compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' } |
如对您有帮助,支持下呗!
微信

支付宝

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类