Flutter

[Flutter] null check 하는 법 & Android 앱으로 발행하기

hminor 2023. 8. 7. 19:04

null check 하는 법 & Android 앱으로 발행하기

  • Build 하기 전 체크 사항
    • Type check
      • 변수, 함수를 만들 시 타입 체크를 했는지
    • null check
      • 아래의 두 가지를 이용해서 확인 후 null 의 경우 다른 값을 보여주도록 하기
        • 삼항연산자
          • Text(person[i].givenName == null ? '무명': person[i].givenName)
          • 그런데 Dart 자체에서 null의 경우엔 삼항연산자 보다는 ??를 사용하기를 원하는 듯
        • ??
          • Text(person[i].givenName ?? ‘무명’)
  • 이렇게 Type과 Null 체크를 다 했다면 Build 하기!
    • Project Structure 버튼을 찾아 클릭하기!
      • 나는 안보여서 단축키로 접근
        • Ctrl + Alt + Shift + S
    • 이후 Project SDK가 No SDK 로 되어 있는 것을 원하는 버전의 Android API 로 변경해주기
      • 강사님은 Android API 31 Platform version 11.0.10 으로 되어있는데
      • 나는 Android API 34, extension level 7 Platform 으로 되어 있음
      • OK 누르고 나오기
    • 이후 Build → Flutter → Build APK 클릭
      • 만약 Note: Recompile with -Xlint:deprecation for details. 이런 에러가 발생한다면
        • 그냥 경고문으로 JDK 버전이 높아졌거나 보안등의 기타 이유로 사용하지 않게 된 메서드를 사용한 경우에 나오는 경고문이기에 당장은 문제 없을 듯?
    • 그리고 Google Play Store에 업로드 가능한 aab 파일 발행은
      • Build → Flutter → Build App Bundle을 클릭 후 발행하기
        • 여기서는 keyfile을 발행해서 사인해야 한다고 함
          • 21년 8월 이후 출시 앱들은 Key File이 필요하다고 함.
          • 순서
            • alt + F12로 터미널 오픈
            • flutter doctor -v를 입력 하면
              • Java binary at: 경로
                • Java binary라는 프로그램의 경로를 알려주는데 해당 경로를 bin 까지 복사해서 터미널에 붙이기
              • 그래서 Window의 경우엔 아래와 같다.
                • 저기뜨는bin까지경로\keytool -genkey -v -keystore c:\키파일저장할폴더경로\upload-keystore.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload
                • 만약 경로의 중간에 공백이 있다면 “” 안에 담기
                  • ex) Program Files → “Program Files”
                • 그리고 키 파일 저장할 폴더 경로에 대한 폴더 이름과 같은 폴더가 기존에 있을 경우 기존 폴더를 삭제하기에 조심하기!
            • 이후 android 폴더에 key.properties 파일을 생성 후 아래와 같이 입력
              • 여기서 백 슬래시가(\) 있다면 기본 슬래시(/)로 변경해주기
              storePassword=첫 번째 비밀번호
              keyPassword=두 번째 비밀번호
              keyAlias=upload
              storeFile=키파일경로/upload-keystore.jks
              
            • 그리고 android 폴더의 app → build.gradle 파일을 수정하기
              1. android 코드 문 위에 4줄의 코드 작성하기
              2. def keystoreProperties = new Properties() def keystorePropertiesFile = rootProject.file('key.properties') if (keystorePropertiesFile.exists()) { keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) }
              3. android 코드 문 안에 8줄의 코드 작성하기
              4. signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null storePassword keystoreProperties['storePassword'] } }
              5. buildTypes 코드의 release 코드 문 안에 .debug 대신 .release로 변경
              6. 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 } }
        • 이제 만들어진 파일을 구글 플레이 스토어에 등록을 하면 된다.
          • 다만 개발자 등록이 안되어 있다면 해야 함!