Skip to content

Most visited

Recently visited

navigation

앱 버전 지정

간략히 보기

  • 앱의 버전은 반드시 지정해야 합니다.
  • 앱의 Gradle 빌드 파일에서 버전을 설정합니다.
  • 앱에 버전을 지정하는 방식에 따라 사용자 업그레이드 방식이 달라집니다.
  • 향후 릴리스에 대한 고려 사항을 비롯하여 개발 프로세스 초기에 버전 관리 전략을 정합니다.

이 문서의 내용

  1. 애플리케이션 버전 정보 설정
  2. API 레벨 요구사항 지정

참고 항목

  1. 릴리스 준비
  2. Google Play의 릴리스 검사 목록
  3. 빌드 변형 구성

버전 관리는 앱 업그레이드와 유지 관리 전략에서 중요한 구성 요소입니다. 버전 관리가 중요한 이유는 다음과 같습니다.

Android 시스템은 앱 버전 정보를 사용하여 타사 앱의 업그레이드/다운그레이드 또는 호환성에 제한을 가하지 않습니다. 대신, 개발자가 앱 내부에 버전 제한을 적용하거나 사용자에게 버전 제한과 한계를 알려야 합니다. 그러나 Android 시스템은 빌드 파일의 minSdkVersion 설정에 명시된 시스템 버전 호환성을 적용합니다. 이 설정을 통해 앱은 호환되는 최소 시스템 API를 지정할 수 있습니다. 자세한 정보는 최소 시스템 API 버전 지정을 참조하세요.

애플리케이션 버전 정보 설정

앱에 대한 버전 정보를 정의하려면 Gradle 빌드 파일에 버전 설정에 대한 값을 설정해야 합니다. 그러면 이러한 값이 빌드 프로세스 도중 앱의 매니페스트 파일로 병합됩니다.

참고: 앱이 <manifest> 요소에서 직접 앱 버전을 정의하는 경우 Gradle 빌드 파일의 버전 값이 매니페스트의 설정을 재정의합니다. 또한, Gradle 빌드 파일에서 이러한 설정을 정의하면 앱의 여러 버전에 대해 각각 다른 값을 지정할 수 있습니다. 유연성을 강화하고 매니페스트가 병합될 때 이러한 설정을 덮어쓸 수 있는 문제를 방지하려면 <manifest> 요소에서 이러한 특성을 제거하고 Gradle 빌드 파일에서 버전 설정을 대신 정의해야 합니다.

두 가지 설정을 이용할 수 있으며, 항상 두 가지 설정에 대한 값을 모두 정의해야 합니다.

모듈의 build.gradle 파일에서 android {} 블록 내에 중첩되어 있는 defaultConfig {} 블록에 이 설정을 포함하여 이 설정에 대한 기본값을 정의할 수 있습니다. 그런 다음, 개별 빌드 유형 또는 제품 버전별로 값을 정의하여 여러 다른 앱 버전에 대한 이러한 기본값을 재정의할 수 있습니다. 다음 build.gradle 파일에서는 defaultConfig {} 블록과 productFlavors {} 블록 내에 있는 versionCodeversionName 설정을 보여줍니다.

android {
  ...
  defaultConfig {
    ...
    versionCode 2
    versionName "1.1"
  }
  productFlavors {
    demo {
      ...
      versionName "1.1-demo"
    }
    full {
      ...
    }
  }
}

이 예시의 defaultConfig {} 블록에서 versionCode 값은 현재 APK에 앱의 두 번째 릴리스가 포함되어 있다는 것을 나타내고, versionName 문자열은 사용자에게 버전이 1.1로 표시되도록 지정합니다. 이 build.gradle 파일에서는 두 제품 버전 "demo" 및 "full"도 정의합니다. "demo" 제품 버전에서 versionName이 "1.1-demo"로 정의되어 있으므로 "demo" 빌드는 기본값 대신 이 versionName을 사용합니다. "full" 제품 버전 블록에서는 versionName이 정의되어 있지 않으므로 기본값 "1.1"을 사용합니다.

Android 프레임워크에서는 시스템에 앱에 대한 버전 정보를 쿼리하는 데 사용할 수 있는 API를 제공합니다. 버전 정보를 가져오려면 PackageManagergetPackageInfo(java.lang.String, int) 메서드를 사용합니다.

참고: Instant Run을 사용하면 Android Studio가 versionCodeMAXINT로, versionName"INSTANTRUN"으로 자동으로 설정합니다.

API 레벨 요구사항 지정

앱이 Android 플랫폼의 특정 최소 버전을 요구하는 경우 앱의 build.gradle 파일에서 이러한 버전 요구사항을 API 레벨 설정으로 지정할 수 있습니다. 이러한 설정은 빌드 프로세스 동안 앱의 매니페스트 파일에 병합됩니다. API 레벨 요구사항을 지정하면 앱이 호환되는 Android 플랫폼 버전을 실행하는 기기에만 설치될 수 있도록 보장됩니다.

참고: 앱의 매니페스트 파일에서 직접 API 레벨 요구사항을 지정하면 빌드 파일에서 이에 대응되는 설정이 매니페스트 파일의 설정을 재정의합니다. 또한, Gradle 빌드 파일에서 이러한 설정을 정의하면 앱의 여러 버전에 대해 각각 다른 값을 지정할 수 있습니다. 유연성을 강화하고 매니페스트가 병합될 때 이러한 설정을 덮어쓸 수 있는 문제를 방지하려면 <uses-sdk> 요소에서 이러한 특성을 제거하고 Gradle 빌드 파일에서 API 레벨 설정을 대신 정의해야 합니다.

두 가지 API 레벨 설정을 사용할 수 있습니다.

build.gradle 파일에서 기본 API 레벨 요구사항을 지정하려면 android {} 블록 내에 중첩되어 있는 defaultConfig {} 블록에 위에 나와 있는 설정을 하나 이상 추가해야 합니다. 또한 이 설정을 빌드 유형이나 제품 버전에 추가하여 여러 앱 버전에 대한 이러한 기본값을 재정의할 수도 있습니다. 다음 build.gradle 파일에서는 defaultConfig {} 블록에서 기본 minSdkVersiontargetSdkVersion 설정을 지정하고 한 제품 버전에 대한 minSdkVersion을 재정의합니다.

android {
  ...
  defaultConfig {
    ...
    minSdkVersion 14
    targetSdkVersion 24
  }
  productFlavors {
    main {
      ...
    }
    afterLollipop {
      ...
      minSdkVersion 21
    }
  }
}

앱 설치를 준비할 때 시스템은 이러한 설정 값을 확인하고 시스템 버전과 비교합니다. minSdkVersion 값이 시스템 버전보다 크면 시스템이 앱 설치를 차단합니다.

이러한 설정을 지정하지 않으면 시스템에서 앱이 모든 플랫폼 버전과 호환되는 것으로 간주합니다.

자세한 내용은 <uses-sdk> 매니페스트 요소 문서와 API 레벨 문서를 참조하세요. Gradle 빌드 설정의 경우 빌드 변형 구성을 참조하세요.

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)