programing

Android 매니페스트의 versionCode 대 versionName

oldcodes 2023. 8. 12. 10:39
반응형

Android 매니페스트의 versionCode 대 versionName

안드로이드 마켓에 버전 코드 = 2, 버전 이름 = 1.1의 앱이 있었습니다.

그런데 오늘 업데이트하면서 매니페스트에서 버전 코드 = 3을 변경했는데 실수로 버전 이름을 1.0.1로 변경하여 apk를 마켓에 업로드하였습니다.

이제 제 앱 사용자들이 휴대폰으로 업데이트 알림을 받을 수 있을까요?아니면 제가 그 과정을 다시 해야 하나요?

참조 링크

안드로이드:versionCode

내부 버전 번호입니다.이 숫자는 한 버전이 다른 버전보다 최신 버전인지 여부를 확인하는 데만 사용되며, 숫자가 높을수록 최신 버전을 나타냅니다.이 번호는 사용자에게 표시되는 버전 번호가 아니며 versionName 특성에 의해 설정됩니다.값은 "100"과 같은 정수로 설정해야 합니다.각 후속 버전의 숫자가 더 큰 경우 원하는 대로 정의할 수 있습니다. [...]

안드로이드:버전Name

사용자에게 표시되는 버전 이름입니다.이 특성은 원시 문자열로 설정하거나 문자열 리소스에 대한 참조로 설정할 수 있습니다.문자열은 사용자에게 표시되는 것 외에 다른 목적이 없습니다.versionCode 특성은 내부적으로 사용된 유효한 버전 번호를 보유합니다.

versionName이 사용자에게 표시되는 것일 뿐이라는 것이 매우 분명하다는 것을 읽고, versionCode가 중요합니다.계속 늘리면 모든 것이 좋아질 것입니다.

단계를 되돌릴 필요가 없습니다.버전 코드를 늘렸으므로 응용 프로그램이 이미 업그레이드되었음을 의미합니다.VersionName은 사용자가 쉽게 읽을 수 있도록 사용자에게 제공되는 문자열일 뿐입니다.Google Play는 버전 이름에 따라 어떠한 작업도 수행하지 않습니다.

버전 코드 - 다른 버전 코드와의 비교에 사용되는 양의 정수입니다.그것은 사용자에게 보여주는 것이 아니라 단지 어떤 면에서 기록을 유지하기 위한 것입니다.원하는 정수로 설정할 수 있지만 연속 버전의 경우 선형 증분을 사용하는 것이 좋습니다.

버전 이름 - 사용자가 볼 수 있는 버전 문자열입니다.내부 비교나 다른 용도로 사용되는 것이 아니라 사용자가 보기 위한 것입니다.

:앱을 출시한다고 가정하면, 초기 버전 코드는 1이고 versionName도 1일 수 있습니다.앱을 약간 변경하고 업데이트를 게시하려면 versionName을 "1.1"(변경 사항이 크지 않기 때문에)로 설정하고 versionCode는 2(변경 사항의 크기에 관계없이)여야 합니다.

다른 조건에서 앱의 완전히 개조된 버전을 출시하면 versionCode와 versionName을 "2"로 설정할 수 있습니다.

도움이 되길 바랍니다.

자세한 내용은 여기를 참조하십시오.

버전 코드는 새 업데이트를 위해 구글 플레이 스토어에서 사용됩니다.버전 이름이 사용자에게 표시됩니다.버전 코드를 늘린 경우 모든 사용자가 업데이트를 볼 수 있습니다.

더 자세한 정보를 원하시면 이 기사를 2분 동안 읽어보시기 바랍니다. https://developer.android.com/studio/publish/versioning.html

제가 그 주제에 대해 찾을 수 있는 유일한 문서에 대한 제 해석을 말씀드리겠습니다.

"예를 들어 업그레이드 또는 다운그레이드 관계를 확인할 수 있습니다." <- 앱을 다운그레이드할 수 있습니다.

"애플리케이션의 후속 릴리스마다 더 큰 값을 사용해야 합니다.시스템은 이 동작을 강제하지 않습니다." <- 정말로 그 수가 증가해야 하지만 앱을 다운그레이드할 수 있습니다.

Android:versionCode — 다른 버전과 비교하여 응용 프로그램 코드의 버전을 나타내는 정수 값입니다.값은 다른 응용 프로그램이 업그레이드 또는 다운그레이드 관계를 확인하는 등 프로그래밍 방식으로 평가할 수 있도록 정수입니다.원하는 정수로 값을 설정할 수 있지만 응용 프로그램의 각 후속 릴리스에서 더 큰 값을 사용해야 합니다.시스템은 이 동작을 강제로 적용하지 않지만, 이후 릴리스에서 값을 증가시키는 것이 일반적입니다.일반적으로 versionCode가 1로 설정된 응용 프로그램의 첫 번째 버전을 릴리스한 다음 릴리스가 주 릴리스인지 또는 부 릴리스인지에 관계없이 각 릴리스에 따라 값을 단조롭게 증가시킵니다.즉, Android:versionCode 값이 사용자가 볼 수 있는 애플리케이션 릴리스 버전과 반드시 크게 유사한 것은 아닙니다(아래 Android:versionName 참조).응용 프로그램 및 게시 서비스는 이 버전 값을 사용자에게 표시해서는 안 됩니다.

버전 번호 MAJOR이 지정되었습니다.MINOR.PATCH, 증분:


  • 호환되지 않는 API 변경 시 MAJOR 버전,
  • 하위 호환 방식으로 기능을 추가하는 경우 마이너 버전 및
  • 이전 버전과 호환되는 버그 수정을 수행하는 경우의 패치 버전입니다.

버전 코드 및 버전 이름

아시다시피, 안드로이드에서는 앱에 대한 두 가지 버전 필드, 즉 버전 코드(안드로이드:versionCode)와 버전 이름(안드로이드:versionName)을 정의해야 합니다.버전 코드는 응용 프로그램 코드의 버전을 나타내는 증분 정수 값입니다.버전 이름은 사용자에게 표시되는 "친근한" 버전 이름을 나타내는 문자열 값입니다.

Android:versionCode — 다른 버전과 비교하여 응용 프로그램 코드의 버전을 나타내는 정수 입니다.

값은 다른 응용 프로그램이 업그레이드 또는 다운그레이드 관계를 확인하는 등 프로그래밍 방식으로 평가할 수 있도록 정수입니다.원하는 정수로 값을 설정할 수 있지만 응용 프로그램의 각 후속 릴리스에서 더 큰 값을 사용해야 합니다.시스템은 이 동작을 강제로 적용하지 않지만, 이후 릴리스에서 값을 증가시키는 것이 일반적입니다.

Android:versionName — 사용자에게 표시되어야 하는 응용 프로그램 코드의 릴리스 버전을 나타내는 문자열 입니다.

이 값은 응용 프로그램 버전을 ... 문자열로 설명하거나 다른 유형의 절대 또는 상대 버전 식별자로 설명할 수 있는 문자열입니다.

Android:versionCode와 마찬가지로 시스템은 응용 프로그램이 이 값을 사용자에게 표시할 수 있도록 하는 것 외에는 내부 목적으로 이 값을 사용하지 않습니다.게시 서비스는 사용자에게 표시할 rodroid:versionName 값을 추출할 수도 있습니다.

일반적으로 versionCode가 1로 설정된 응용 프로그램의 첫 번째 버전을 릴리스한 다음 릴리스가 주 릴리스인지 또는 부 릴리스인지에 관계없이 각 릴리스에 따라 값을 단조롭게 증가시킵니다.즉, Android:versionCode 값이 사용자가 볼 수 있는 애플리케이션 릴리스 버전과 반드시 크게 유사한 것은 아닙니다(아래 Android:versionName 참조).응용 프로그램 및 게시 서비스는 이 버전 값을 사용자에게 표시해서는 안 됩니다.

versionName이 아닌 versionCode를 기반으로 합니다.하지만 Android Studio - Gradle 빌드 시스템에서는 AndroidManifest.xml에서 versionCode를 변경하는 것만으로는 충분하지 않다는 것을 알게 되었습니다.build.gradle에서 변경해야 했습니다.

버전 코드 표시 코드 버전, 안드로이드 OS는 이 변수를 사용하여 이 코드가 이전 코드인지 새 코드인지 여부를 확인합니다.

Version Name 버전 이름을 다음 형식으로 나타냅니다.

(중대).(단조).(점)

읽기 가능한 문자열에만 사용되는 문자열, 기능적으로 버전 코드는 OS에서 사용되었습니다.

타노대답은 약간의 설명이 필요할 수 있습니다.버전 코드는 빌드 번호와 동일합니다.따라서 일반적으로 앱은 출시 전에 많은 반복 과정을 거치게 됩니다.이러한 반복 중 일부는 알파, 베타 및 실제 릴리스의 형태로 Google Play 스토어에 도달할 수 있습니다.연속되는 각 반복에는 versionCode가 증가해야 합니다.그러나 일반적으로 versionName은 공용 릴리스 사이에서만 증가합니다.두 숫자 모두 유의합니다.사용자는 전화기에 있는 버전이 최신인지 여부(versionName)를 알아야 하며, 비트라이즈와 같은 Play Store 및 CI 시스템은 빌드 번호(versionCode)에 의존하거나 업데이트해야 합니다.

저의 경우 최종 사용자에게 애플리케이션 버전을 보여주면 Manifest 파일과 build.grade에 버전 이름과 버전 코드를 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.mydomain.myproject"
    android:versionCode="9106"
    android:versionName="9.1.06">

   ...
 </manifest

그 후에 저는 이 변수를 제 활동이나 조각에 사용했습니다.

try
    {
        versionName =  getActivity().getPackageManager().getPackageInfo(getActivity().getPackageName(), 0).versionName;

    }
    catch (PackageManager.NameNotFoundException e) {
        versionName ="";

    }
    catch (ActivityNotFoundException e)
    {
        //e.printStackTrace();
        versionName ="";
    }

VERSION CODE를 늘렸기 때문에 사용자에게 업데이트 알림이 계속 표시될 것입니다. 그러나 사용자에게는 버전 이름이 1.0.1로 표시됩니다.

versionCode앱당 빌드 수가 단조롭게 증가합니다.빌드(AAB)를 Google Store에 푸시/업로드할 때마다 고유한 버전 코드가 있어야 합니다.Google Play Console에만 내장되어 있으므로 특정 버전의 코드로 빌드(AAB)를 업로드하면 동일한 버전의 코드로 다른 빌드를 업로드할 수 없습니다.

versionName는 Google Play Store에서 사용자에게 공개적으로 표시되는 항목입니다.versionName은 문자열이며 앱의 버전이라고 부르는 모든 것이 될 수 있습니다. versionName은 버전 코드와 관련이 없으며 둘 다 서로 독립적입니다.

이것은 Android Developers Guide의 versionCode, versionName에 나와 있습니다.

언급URL : https://stackoverflow.com/questions/9629125/versioncode-vs-versionname-in-android-manifest

반응형