null check 하는 법 & Android 앱으로 발행하기
- Build 하기 전 체크 사항
- Type check
- 변수, 함수를 만들 시 타입 체크를 했는지
- null check
- 아래의 두 가지를 이용해서 확인 후 null 의 경우 다른 값을 보여주도록 하기
- 삼항연산자
- Text(person[i].givenName == null ? '무명': person[i].givenName)
- 그런데 Dart 자체에서 null의 경우엔 삼항연산자 보다는 ??를 사용하기를 원하는 듯
- ??
- Text(person[i].givenName ?? ‘무명’)
- 삼항연산자
- 아래의 두 가지를 이용해서 확인 후 null 의 경우 다른 값을 보여주도록 하기
- Type check
- 이렇게 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 버전이 높아졌거나 보안등의 기타 이유로 사용하지 않게 된 메서드를 사용한 경우에 나오는 경고문이기에 당장은 문제 없을 듯?
- 만약 Note: Recompile with -Xlint:deprecation for details. 이런 에러가 발생한다면
- 그리고 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”
- 그리고 키 파일 저장할 폴더 경로에 대한 폴더 이름과 같은 폴더가 기존에 있을 경우 기존 폴더를 삭제하기에 조심하기!
- Java binary at: 경로
- 이후 android 폴더에 key.properties 파일을 생성 후 아래와 같이 입력
- 여기서 백 슬래시가(\) 있다면 기본 슬래시(/)로 변경해주기
storePassword=첫 번째 비밀번호 keyPassword=두 번째 비밀번호 keyAlias=upload storeFile=키파일경로/upload-keystore.jks
- 그리고 android 폴더의 app → build.gradle 파일을 수정하기
- android 코드 문 위에 4줄의 코드 작성하기
- def keystoreProperties = new Properties() def keystorePropertiesFile = rootProject.file('key.properties') if (keystorePropertiesFile.exists()) { keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) }
- android 코드 문 안에 8줄의 코드 작성하기
- signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null storePassword keystoreProperties['storePassword'] } }
- buildTypes 코드의 release 코드 문 안에 .debug 대신 .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.release } }
- 이제 만들어진 파일을 구글 플레이 스토어에 등록을 하면 된다.
- 다만 개발자 등록이 안되어 있다면 해야 함!
- 여기서는 keyfile을 발행해서 사인해야 한다고 함
- Build → Flutter → Build App Bundle을 클릭 후 발행하기
- Project Structure 버튼을 찾아 클릭하기!
'Flutter' 카테고리의 다른 글
[Flutter] 프로젝트 설치 & ThemeData로 스타일 분리하는 방법 (0) | 2023.08.08 |
---|---|
[Flutter] 글자 입력란 TextField에 스타일주는 법 (0) | 2023.08.08 |
[Flutter] 휴대폰에 저장된 연락처 가져오는 법 & 타입 시스템 (0) | 2023.08.07 |
[Flutter] 유저에게 앱 권한 요청하기 & A dependency may only have one source 에러 해결 (0) | 2023.08.07 |
[Flutter] 자식 위젯이 부모 위젯의 state 사용 2 (0) | 2023.07.31 |