App/Android

[Android] Playstore에 어플 출시하기

sanadoing_ 2023. 8. 31. 18:41
728x90

 

 

 

 

[ 목차 ]

1. Flutter app 이미지 변경

2. Flutter app 이름 변경

3. Package 이름 변경

4. App 버전 확인

5. 앱 권한 설정 (필요시!)

6. 키스토어 서명서 생성

7. key.properties 파일 생성

8. key.properties 파일 참조를 위한 app/build.gradle 파일 수정

9. 앱 난독화를 위한 proguard 파일 생성

10. 마지막 ' 앱 번들 생성 ' !

 

 

 

 

 

 

 

(1) flutter app 이미지 변경 🐻

android > app > src > main > res > mipmap-* 로 이동

 

위에 표시된 mipmap-* 파일들의 이미지들을 바꿔줍니다.

변경할 이미지의 이름을 'ic_launcher.png' 로 바꾸어

원래 있던 플러터 이미지와 적용할 이미지를 대체해주는 것 ! (⭐️ 이름은 동등하게 !)

위의 파일들은 같은 파일 같지만,

72x72, 48x48, 96x96, 144x144, 192x192 로

각각 크기가 다르기 때문에, 대체할 이미지 또한 5개의 사이즈에 맞추어 기존 파일의 이미지 크기와 맞는지 확인하며 잘 대체해줍니다.

 

 

 


 

 

(2)  Flutter app 이름 변경 🐻

android > app > src > main > AndroidManifest.xml 로 이동

 

 

android:label = "어플 이름" 으로 바꿔주세요 .

1번에서 바꿨던 이미지의 이름이 android:icon="@mipmap/이미지이름" 에 들어갑니다.

기존 ic_launcher로 이름을 같게 파일만 위와같이 대체한다면,

여기서 이미지 이름을 굳이 바꿀 필요 없겠죠 ?


 

 

(3) Package 이름 변경 🐻

 

android > app > build.gradle 로 이동

 

 

 

 

 

defaultConfig 및 applicationId에 package 이름을

com.example.(패키지 이름)에서 보통 "com.(회사 이름).(어플 이름)" 으로 변경 합니당 !

⭐️ 어플 출시를 위해 중간과 끝 위치의 이름은 무조건 바꾸어 주어야 합니다. 무 조 건 !

그리고 한번 이 패키지 이름을 플레이스토어에 올리면 수정이 불가하기 때문에 잘 변경해주세요

 

 


 

 

(4) App 버전 확인 🐻

 

 

1) android > app > build.gradle 로 이동

3번에서의 파일과 동일.

 

 

 

 

flutterVersionCode와 flutterVersionName 을 확인합니다.

flutterVersionCode은 출시후 업데이트 할 때마다 1,2,3,4,로 1씩 늘려주어야 업데이트가 됩니다. 따라서 출시할 때에는 1로 해두면 되고,

flutterVersionName은 보통 대규모 업데이트를 하게 되면 1.0.0 -> 2.0.0 식으로 늘리고

그렇지 않다면 0.1(보통 기능 개발 시) 이나 0.0.1(보통 작은 업데이트 시 예를 들어, ui 수정) 씩 늘려가며 업데이트를 진행합니다.

이건 각자 규칙을 정해두고 하시면 될 것 같습니당 :)

저는 처음 출시 시 위의 이미지와 같이 flutterVersionCode = 1, flutterVersionName = 0.0.1로 정했어요.

 

 

 

2) 프로젝트 파일>pubspec.yaml 파일로 이동

위에서 설정한 flutterVersionName과 똑같이 적어줍니다.

 

 

 


 

 

(5) 앱 권한 설정 (필요시 !) 🐻

 

android > app > src > main > AndroidManifest.xml 로 이동

 

 

앱에서 사용할 권한이 필요한 경우. manifest tag안에 uses-permission 값을 넣어주면 됩니다.

 

 


 

 

 

(6) 키스토어 서명서 생성 🐻

 

 

 

for mac.

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
 

 

 

for windows.

keytool -genkey -v -keystore c:/Users/USER_NAME/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
 

 

 

키스토어 서명서 생성 시, 암호, 이름, 조직, 지역명 을 입력하는데

저는 보통 까먹을 까봐 똑같은 입력값으로 다 입력 해준 후,

지역만 KR로 해서 만들었습니당. (암호 입력하면 입력 값이 안보이지만 써지고 있다는 것 주의 !)

그리고 Y를 입력하여 최종적으로 입력된 값이 맞다고 입력하면 key.jks 파일 생성 완료 !

/Users/(유저 명)/key.jks 파일이 생성 되었을 것.

(중요 ⭐️)이 파일을 잘 보관해둬야 합니다 ! !

그 후, ⭐️ key.jks 파일을 android/app 경로에 복붙 !


 

 

 

(7) key.properties 파일 생성 🐻

 

배포용 앱 빌드시 참조하기 위해 android/app에 key.properties 파일 생성.

 

 

storePassword=키생성시 입력한 암호
keyPassword=키생성시 입력한 암호
keyAlias=key
storeFile=./key.jks

 

  

저는 여기서 storePassword나 keyPassword에 암호 입력시,

"" 안에 적어야 하나 헷갈렸는데, 그냥 딱 ! 암호만 입력하면 됩니다.

또한 storeFile 에 key.jks 의 위치 경로를 꼭 저렇게 정확히 적어주셔야 합니다.

(위에서 복붙한 android/app/key.jks = ./key.jks)

 

 

그리고,

key.properties 파일이 노출되지 않게 혹여나 github나 다른 곳으로 파일이 올라가지 않도록, .gitignore파일을 확인해주는 것도 필수 !

 

 

 

 

 


 

 

 

(8) key.properties 파일 참조를 위한 app/build.gradle 파일 수정 🐻

 

이제는 위에서 만든 key.properties 파일을 참조하기 위해

android > app > build.gradle 로 이동

 

 

 

 

1) 4줄을 복사 붙여넣기 합니다. 

 

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('app/key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {

 

 

 

 

그리고 key.properties의 내용들을 참조할 수 있도록

2) 6줄 코드도 넣어줍니다.

 

android {
  ....
     signingConfigs {
       release {
           keyAlias keystoreProperties['keyAlias']
           keyPassword keystoreProperties['keyPassword']
           storeFile file(keystoreProperties['storeFile'])
           storePassword keystoreProperties['storePassword']
       }
   }
...
 

 

 

 

 

3) 위의 한줄 코드도 넣어주면, release 빌드에서 자동으로 서명이 될 것.

 

   buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
         //   signingConfig signingConfigs.debug
            signingConfig signingConfigs.release
}
}

 


 

 

 

(9) 앱 난독화를 위한 proguard 파일 생성 🐻

 

android > app 로 이동하여 proguard-rules.pro 파일을 생성합니다.그리고 위의 코드를 추가.

## Flutter wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.**  { *; }
-keep class io.flutter.util.**  { *; }
-keep class io.flutter.view.**  { *; }
-keep class io.flutter.**  { *; }
-keep class io.flutter.plugins.**  { *; }
-dontwarn io.flutter.embedding.**

 

또한 이 코드들을 release 빌드 시에 참조 할 수 있도록

android > app > build.gradle 로 이동하여

 

 

android {

    ...

    buildTypes {

        release {

            signingConfig signingConfigs.release

            minifyEnabled true
            useProguard true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
    }
}

 

 

위의 세 줄 코드를 추가해줍니다.


 

 

 

(10) 마지막 ' 앱 번들 생성 ' ! 🐻

 

 

을 하기 전에 ⭐️마지막 점검⭐️

 

android > app > src > main > res > mipmap-* 에 있는

1) 어플 이미지 5개 변경

 

android > app > src > main > AndroidManifest.xml 에 있는

2) android:label 이 어플 이름으로 잘 변경되었는지

 

android > app > build.gradle 로 이동

3) flutterVersionCode, flutterVersionName 이 출시 버전에 따라 잘 변경 되었는지

 

프로젝트 > pubspec.yaml 로 이동

4) version: 이 위의 flutterVersionName과 같은지

 

android/app 로 이동

5) key.jks파일이 android/app 에 있는지

 

6) android/app 에 key.properties 파일 생성

 

android > app > build.gradle 로 이동

7) key.properties파일 첨부를 위한 내용이 포함되었는지

 

android > app 로 이동

8) proguard-rules.pro 파일이 생성 되었는지

 

android > app > build.gradle 로 이동

9) proguard-rules.pro 파일 첨부를 위한 내용이 포함되었는지

에 대한 내용을 한번씩 점검한 후, 앱 번들 생성 명령어를 통해 최종 단계로 넘어 갑니다 !

보통 다들,

 

flutter build appbundle

 

의 명령어를 사용하라고 하지만 저는 빌드 오류가 나서

아래의 코드를 입력하여 abb 파일을 생성.

flutter build appbundle --no-tree-shake-icons --no-sound-null-safety

 

 

 

요즘 playstore 출시에서는 APK 파일이 아닌 ABB 파일만을 받아 주기 때문에 abb 파일만 생성하면 됩니다.

만약 위의 내용들이 잘 점검해서, 빌드 오류 없이 appbundle 파일이 잘 만들어졌다면,

 

 

렇게

build > app > outputs > bundle > release 폴더에 app-release.aab 파일이 만들어졌을 것입니당 !

이 파일을

 

https://wp.swing2app.co.kr/knowledgebase/playstore-apprelease/

 

위와 같이 플레이 스토어 앱 게시를 위한 준비를 한 후, 파일을 첨부하여

앱 게시를 기다리면 끗 ✨

 

 

 

처음부터 abb 파일 생성까지, 또 앱 출시를 위한 playstore에서의 세팅까지

복잡한 과정이지만 차근차근 하다보면

어느새 playstore 앱 출시 장인이 되어있으실 것이라 믿씀니다 😉 💭

참고

https://jacobko.info/flutter/flutter-12/

 

Flutter App PlayStore App 등록 / 배포하기

flutter

jacobko.info

https://wp.swing2app.co.kr/knowledgebase/playstore-apprelease/

 

플레이스토어 앱 출시하기 – 스윙 도우미

*플레이스토어 앱 등록을 위해서는, 먼저 구글 개발자 계정을 만들어주셔야 합니다. 해당 사이트에서 계정을 등록한 뒤, 이용료 25$ 를 결제해주세요.(한번 결제시 평생 이용) 결제가 완료 된 후

wp.swing2app.co.kr

 

728x90