홈 > 프로그래밍 > 안드로이드 > 정보
안드로이드

안드로이드 스튜디오 빌드 데이트 자동으로 만들어지게 하기

드리머즈 0 6838

지금까지는 하드코딩으로 입력했던 빌드 데이트를.. 안드로이드 스튜디오에서 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 코드에서 접근해도 되네요.

0 Comments
제목