단순히 데이터를 읽어오는 앱이 아니라면 앱배포에 필수적인 작업이 바로 디버그용/배포용 분리이다. (왠만하면 이 작업은 프로젝트 초반에 셋팅을 해주는 것이 정신건강에 이롭다). 과정을 3줄 요약하자면 iOS 에서는 Scheme에 접근해서 나누어 줄 수 있고, AOS는 Gradle 파일을 수정해서 분리해줄 수 있다. 마지막으로 플러터 프로젝트안에서 디버그용/배포용 파일을 따로 만들어 시작점을 분리시킨다. 구체적인 진행방법은 아래와 같다.
1. iOS 디버그용/배포용 분리
1-1. ios 폴더를 눌러 XCode를 열어준다.
1-2. 상단에 플러터 아이콘을 선택하고 Edit Sceme을 누르면 위와 같은 창이 뜨는 데 엔터를 누르고 Runner를 prod(배포용)으로, 하단에 "+" 를 눌러 dev(디버깅용)도 추가해준다.
1-3. 위와같이 Buildinfo 에 가서 Configuration을 아래와 같이 셋팅해준다
Debug-prod
Debug-dev
Release-prod
Release-dev
Profile-prod
Profile-dev
1-4 빌드 scheme을 맞추어준다. 만약 dev scheme인데 prod일 경우 dev로 위와 같이 바꿔준다. (prod도 마찬가지) 이때 build, run, test, profile analyze, achieve 모두 일치하는지 확인해준다.
1-5 Targets 의 Runner -> Build Setting -> Package 로 가면 하나의 주소 id로 되어있음을 확인할 수 있는데 이를 dev에는 .dev 로 수정해준다. (엔터누르면 수정할 수 있음)
1-6 같은 빌드셋팅에서 productName을 검색한뒤에 dev에는 "프로젝트 이름"-dev, prod에는 Runner 대신 "프로젝트 이름"으로 수정해준다.
1-7 info.plist 파일에 가서 번들 디스플레이 네임을 위와같이 수정해준다.
2. AOS 디버그용/배포용 분리
android/app/build.gralde 파일에 flavordimensions 와 productFlavor 위와같이 수정
android/app/src/main/AndroidManifest.xml 파일에서 android label 위와 같이수정한다.
3. 시작 파일 분리
디버깅용과 배포용을 구분해줄 파일 및 클래스를 생성한다.
기존 메인 파일에서는 시작점 역할을 하는 메인메서드를 지워준다.
디버그용(dev)과 배포용(prod) 파일을 각각 만들어 키값을 부여해준다음에 기존 메인 파일에 있던 MyApp() 을 실행시키는 메인 메서드를 넣어준다.
마지막으로 lauch.jason 파일로가서 위와같이 디버그용/배포용 시작을 지정해준다.
사실 이 한 줄 쓰고싶어서 블로그글을 작성했다. 반드시 반드시 반드시 program에는 정확한 파일명 및 파일 위치가 들어가야한다!! 헷갈린다면 터미널로 pwd 입력후 정확한 파일 위치를 복붙해야한다!! 이것 때문에 3시간 삽질했다ㅠ
이제 dev용과 prod용을 따로 실행시키면 각각의 앱이 생기면서 잘 동작한다 ^^
'Flutter' 카테고리의 다른 글
Sliver 에 대해 알아보자 (0) | 2024.05.30 |
---|---|
Throw 안쓰고 에러 의미있게 처리하기 (0) | 2024.05.29 |
fatal error: module 'cloud firestore' not found 이슈 (0) | 2024.05.24 |
PreferredSize 란? (0) | 2024.05.21 |
VSCode가 플러터 프로젝트 인식을 못하는 문제 (0) | 2024.05.19 |