안드로이드 스튜디오 빌드 데이트 자동으로 만들어지게 하기
드리머즈
정보
0
6838
2019.01.12 18:34
지금까지는 하드코딩으로 입력했던 빌드 데이트를.. 안드로이드 스튜디오에서 apk가 빌드될 때 자동으로 빌드 데이트가 만들어지게 하고 싶었습니다.
https://developer.android.com/studio/build/gradle-tips#simplify-app-development
위의 링크에 좋은 내용이 있더군요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | android { ... buildTypes { release { // These values are defined only for the release build, which // is typically used for full builds and continuous builds. buildConfigField("String", "BUILD_TIME", "\"${minutesSinceEpoch}\"") resValue("string", "build_time", "${minutesSinceEpoch}") ... } debug { // Use static values for incremental builds to ensure that // resource files and BuildConfig aren't rebuilt with each run. // If they were dynamic, they would prevent certain benefits of // Instant Run as well as Gradle UP-TO-DATE checks. buildConfigField("String", "BUILD_TIME", "\"0\"") resValue("string", "build_time", "0") } } } ... | cs |
app gradle에 위의 코드를 추가하면
1 2 3 | ... Log.i(TAG, BuildConfig.BUILD_TIME); Log.i(TAG, getString(R.string.build_time)); | cs |
java에선 이렇게 심플하게 사용할 수 있다고 합니다.
그래서 사용해봤더니
Could not get unknown property 'minutesSinceEpoch'
이런 에러가 뜨네요.. 왜 뜨는가 했더니..
https://developer.android.com/studio/build/optimize-your-build를 참고하면
1 2 3 4 | int MILLIS_IN_MINUTE = 1000 * 60 int minutesSinceEpoch = System.currentTimeMillis() / MILLIS_IN_MINUTE android { | cs |
app gradle의 전역변수 부분?에서 minutesSinceEpoch 를 정의 해줘야 하네요 ㄷㄷ
친절하게좀 알려주지.. ㅎㅎ
아니면 https://stackoverflow.com/questions/7607165/how-to-write-build-time-stamp-into-apk/39917953에 있는 답변 중 하나가 알려주는대로..
1 | buildConfigField 'String', 'BUILD_TIME', 'new java.text.SimpleDateFormat("YY-MM-dd", java.util.Locale.getDefault()).format(new java.util.Date(' + System.currentTimeMillis() +'L))' | cs |
위와 같이 1줄만 app gradle에 넣고 java 코드에서 접근해도 되네요.