在開發 App 的過程中,常常需要產出不同版本的 APK,給團隊成員或測試人員驗證功能。 這時候,「快速辨識版本」就變成一件非常重要的事了。
最常見、也最直接的方法,就是利用 Gradle 的 versionNameSuffix
,在 App 的版本名稱後面自動加上一些額外資訊。 以我們團隊的習慣來說,我們會直接加上Build 當下的時間作為版本流水號,這樣每個 APK 都能有獨一無二的識別。但如果每次出新版本,都還要手動去改 Gradle 設定,實在是有點麻煩。
下面就分享一個簡單的做法,讓 Gradle 在每次 Build 的時候,自動把「打包時間」加到版本名稱後面。
程式碼範例#
Groovy 寫法#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| // 產生日期時間字串
def getDate() {
def date = new Date()
def formattedDate = date.format('yyyyMMddHHmmss')
return formattedDate
}
// 在buildType中就可使用
debug {
applicationIdSuffix '.debug'
// 設定版本名稱後綴
versionNameSuffix '-dev' + ' (' + getDate() + ')'
// 其他設定...
}
|
Kotlin DSL (KTS) 寫法#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| android {
// 其他設定...
buildTypes {
// 略...
debug {
isMinifyEnabled = false
applicationIdSuffix = ".dev"
// 設定版本名稱後綴
versionNameSuffix = "-dev (${getDate()})"
}
}
}
/**
* 取得目前的日期時間字串
*
* @return
*/
fun getDate(): String {
val date = Calendar.getInstance().time
val formatter = SimpleDateFormat("yyyyMMdd-HHmm", Locale.getDefault())
return formatter.format(date)
}
|
這樣設好之後,每次打包 Debug 版 APK,都會自動帶上像 -dev(20250428-1430)
這種字串, 讓相關人員清楚知道這份檔案是什麼時候打包的。
參考來源#