Android API 레벨 업그레이드 해보기 + 배포

윤뿔소·2024년 2월 26일
1

목록 보기
1/2

오랜만의 글이다. 취준 중 아버지 앱이 있었는데 에러가 생겨 구글 플레이에 업데이트를 못하는 문제가 생겼다. 그 문제를 파헤치며 생긴 상황, 문제, 해결책을 찾는 과정을 적어보겠다.

문제

24/02/16
일단 문제를 정의해야한다. 지금 내가 가지고 있는 정보는 구글 플레이에 업데이트가 안된다는 문제였다. 그래서 구글 플레이 콘솔에 들어가 에러를 봐보자.

위 메세지를 보니 API 수준이 많이 뒤떨어졌다는 에러 메세지를 확인할 수 있었다. 그러니 앱 프로젝트를 열어봐서 버전을 파악해 업그레이드를 진행해야한다.

이걸 이제 업그레이드 해보자.

안드로이드 스튜디오 설치 및 API 레벨 관리하기

안드로이드 스튜디오가 되게 편한 게 프로젝트를 만들거나 있는 프로젝트를 로드할 때 SDK 버전들을 알아서 감지해주고, 이게 지금 안드로이드 권장 레벨과 비교해 SDK 버전 관리를 할 수 있다.

안드로이드 스튜디오를 설치 후 프로젝트를 열면 다음과 같은 화면이 펼쳐진다.
사진을 보면 알겠지만 SDK 버전들이 29에 맞춰져 있다. targetSdkVersion에 빨간 줄이 그여져 있어 마우스 오버해 확인해보면, 구글 플레이의 권장 API 레벨이 뒤떨어졌으니 (SDK)API 33 이상으로 업그레이드 하라고 나와있다.

API 레벨 확인 및 수정하기

즉, 저 버전들을 이제 최신으로 고쳐야 한다.

위 상단 메뉴의 File => Project Structure로 클릭하거나 Command + ;를 클릭하면 프로젝트 관련 구조들이 나온다.

Project Structure로 들어가면 아래 항목들이 나온다. 내가 건든 항목만 보겠다.

Android Gradle 플러그인(AGP)

문법, 빌드, 인터페이스 등 Gradle 설정에 최신 버전을 입력하자.

Android Gradle 플러그인은 Gradle을 통해 안드로이드 프로젝트를 빌드하는 데 필요한 도구들을 제공한다. 최신 버전의 Android Gradle 플러그인을 사용하면 최신 빌드 시스템 기능을 사용할 수 있으며, 최신 버전의 Android Studio와의 호환성도 보장된다. 또한, 최신 버전을 사용함으로써 다양한 버그 수정과 성능 개선을 누릴 수 있다.

Android Gradle 플러그인의 최신 버전을 설정하려면 다음과 같은 절차를 따른다

  1. 최신 버전 확인: 먼저, Android Gradle 플러그인의 최신 버전을 확인한다. 이를 위해 Android Gradle Plugin Release Notes 페이지를 참고할 수 있다.

  2. 프로젝트 수준의 build.gradle 파일 수정: 프로젝트 루트 디렉토리에 있는 build.gradle 파일을 열어, classpath 'com.android.tools.build:gradle:XX.X.X' 라인을 최신 버전으로 수정한다.

    gradle
    buildscript {
        repositories {
            google()
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:8.2.2' // 최신 버전으로 업데이트
        }
    }
  1. Gradle Wrapper 업데이트: Gradle Wrapper도 최신 버전으로 업데이트해야 한다. 프로젝트 루트 디렉토리의 gradle/wrapper/gradle-wrapper.properties 파일을 열어, distributionUrl을 최신 Gradle 버전으로 수정한다.

    distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-all.zip

위와 같이 최신 버전을 입력하면 Gradle 빌드 시스템의 모든 최신 기능과 성능 개선을 누릴 수 있으며, Android Studio와의 호환성도 높아진다.

수정된 API 레벨 코드

apply plugin: 'com.android.application'

android {
    compileSdk 34
    buildToolsVersion '34.0.0'
    defaultConfig {
        applicationId "homebeleve.CU"
        minSdk 24  // 여기서 minSdk를 24로 수정함
        targetSdk 34
        versionCode 20
        versionName "20.1"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    namespace 'homebeleve.CU'
}

dependencies {
    ...
}

코드 수정 후

이제 코드를 수정한 후, 프로젝트를 다시 빌드해 보자. 빌드가 정상적으로 완료되면, 수정된 API 레벨이 제대로 적용된 것이다. 만약 빌드 중 오류가 발생한다면 오류 메시지를 잘 확인하고 필요한 부분을 추가로 수정해야 한다.
+ 나는 이후 안드로이드에서 HTML input 태그를 이용한 파일 업로드 기능이 자꾸 무반응이거나 꺼져서 이후 과정을 나중에 서술 하겠다.

그 다음 배포에 관해 쓸려고 했는데, 너무 간단히 개발자 콘솔에 올리고, 승인만 기다리면 되기 때문에 따로 쓰진 않겠다. 알아서 빌드해서 올리면 프로젝트의 버전을 콘솔이 자동으로 인식하고, 배포 가능 API 레벨이 된다면 승인 될 것이다.

자, 이렇게 API 버전을 올리는 과정을 그려봤다.
내 앱의 API 레벨을 최신으로 유지하면 당연하게도 최신 안드로이드 기능들을 사용할 수 있고 보안성도 높아진다. 물론 나는 구글 플레이스토어에서 요구하는 최소 API 레벨을 충족시켜야 앱을 배포할 수 있기 때문에 업그레이드 했지만은 구글은 API 레벨을 올리면서 보안성을 챙기려고 하니까 필수적으로 해야한다.

자바 문법만 알고 오랜만에 하니 간단했지만 조금 어려웠다^^

profile
코뿔소처럼 저돌적으로

0개의 댓글