처음 배포하려면 

keystore를 생성해야한다

 

window

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

 

mac 

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

 

주황색 부분은 key를 위치할 경로로 바꿔주고 

*노란색부분은 추가해줘야 빌드시 에러가 안난다 

(2048은 키 사이즈고  10000은 서명서의 유효기간 )

 

이름과 성을 입력하십시오. : COMPANY

조직 단위 이름을 입력하십시오. : COMPANY

조직 이름을 입력하십시오. : COMPANY

구/군/시 이름을 입력하십시오? : Seoul

시/도 이름을 입력하십시오. : Seoul

이 조직의 두 자리 국가 코드를 입력하십시오 : KR

 

마지막에 y눌르고 엔터치고 비번한번더 입력하면 원하는경로에 key생성된다

 

 

 

그 키를 

android - app 단위안에 넣는다 

 

 

keystore 참조 

android 폴더안에 key.properties 생성

storePassword=비밀번호
keyPassword=비밀번호
keyAlias=key
storeFile=./key.jks

 

 

 

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.**

 

build gradle 셋팅

android 위에다가 추가 

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

   android {

 

buildTypes 부분에 signingConfigs.debug 를 release로 변경 후 아래 내용 추가 

*useProguard true빼야함 넣으면 에러남 업데이트됨 

    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.release

            minifyEnabled true
            //useProguard true *넣으면 에러남 업데이트됨 빼야함
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

아랫부분 android 안에 추가 

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }

이런모양

 

이제 terminal에 

flutter build appbundle 
flutter build apk

or 

android studio에서 

 

 

bundle,apk 선택해서 만들면 

해당 경로에 파일이 있다  (flutter 프로젝트 위치 내의 경로)

 

 

 

 

참고 : https://flutter-ko.dev/docs/deployment/android

https://asufi.tistory.com/entry/Flutter-Flutter-%EC%95%B1-%EC%B6%9C%EC%8B%9C-%ED%95%98%EA%B8%B0-release-build-apk-1

반응형

'flutter > android' 카테고리의 다른 글

firebase setting(android)  (0) 2021.07.25

앱추가 선택->android선택

 

 

 

패키지이름과 디버그 서명인증서 sha-1 입력하자

 

 

 

 

앱 패키지는 플러터 프로젝트 ->android ->app ->build.gradle 에 defaultConfig 안의 applicationId 이다 

 

 

 

sha-1은 android -> build.gradle 오른쪽 클릭 후 Open in Terminal 클릭

 

 

 

아래 터미널에 gradlew signingReport 입력 후 엔터 치고 debug release 등 많은데 선택해서 sha1 복사 후 홈페이지에 입력 

안되면 ./gradlew signingReport

 

 

 

json파일 다운받은 후

 

 

 

 

android -> app 디렉토리안에 넣는다 

 

 

 

 

그리고 android ->build.gradle의 dependencies 안에

classpath 'com.google.gms:google-services:4.3.8' 입력

 

 

 

다시 android ->app -> build.gradle에 가서 

apply 근처에 apply plugin: 'com.google.gms.google-services' 입력

 

dependencies 안에 아래 두개 입력 

implementation platform('com.google.firebase:firebase-bom:28.3.0')

implementation 'com.google.firebase:firebase-analytics'

 

 

 

======================================================================

Firebase CLI를 이용하면 이런거 다필요없다 알아서됨

반응형

'flutter > android' 카테고리의 다른 글

android release 배포하기  (0) 2021.10.13

+ Recent posts