-
프로젝트 초기 생성 시:
flutter create --org com.mydomain appname
으로 진행- 안 그러면
com.example.appname
으로 생성되는데, 찾아서 바꾸기가 생각보다 까다로움 - https://stackoverflow.com/questions/51534616/how-to-change-package-name-in-flutter
- 파이어베이스 편하게 연동하기 - https://firebase.google.com/docs/flutter/setup?hl=ko&platform=android
- 안 그러면
-
iOS 앱 제출 전:
- 앱 이름 바꿔주기 - https://velog.io/@adbr/flutter-앱-이름-설정 참조.
-
ios/Runner/Info.plist
에 암호화 규정 관련 항목 추가하기 - 추가 안 하면 앱 빌드 올릴 때마다 App Store Connect 들어가서 뭔가 설정해줘야 함<dict> <key>ITSAppUsesNonExemptEncryption</key> <false/> </dict>
-
맞춤형 광고 설정했으면, IDFA 수집 전 ATT 물어봐야 함 - 안 물어보면 심사 리젝,
ios/Runner/Info.plist
에 커스텀한 문구 넣지 않으면 심사 리젝으로 들음<dict> <key>NSUserTrackingUsageDescription</key> <string>대충 맞춤형 광고를 제공하기 위해 뭐시기</string> </dict>
-
이 메시지를 다국어화 하려면 https://zeddios.tistory.com/369 참조.
-
앱스토어 페이지에서 나오는 지원 언어는
en.lproj
같은 것들을 파싱해서 보여준다고 함 - https://stackoverflow.com/questions/1896269/iphone-app-available-languages-in-appstore“The list of languages supported by the app, as shown in the iTunes store screenshot you sent, is automatically determined by inspecting the submitted application bundle. Typically, this comes from the .lproj folders in a bundle, as the process (and iOS) use this to determine what languages the application can support. However, it is also possible to provide your own localization support system in the application without using .lproj folders (although this is typically much more work) — in this scenario, the list of supported languages is specified in the application’s plist file, via the CFBundleLocalizations key. See the following docs (and the guide linked to in the docs) for more info on this: http://developer.apple.com/library/ios/#documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html%23//apple_ref/doc/uid/TP40009249-109552-TPXREF111 ”
-
-
Admob 설정
- https://pub.dev/packages/googlemobileads README 따라하면 됨
- 앱스토어의 경우 “마케팅 URL” 에다가 사이트 URL 넣어줘야 app-ads.txt 긁어간다.
-
import 'package:flutter/foundation.dart';
필요;kReleaseMode
여부로 디버그 여부를 확인할 수 있다. 디버그 모드인 경우 테스트 Ad Unit ID 사용하자. -
실기기 ADID / IDFA 알아내서 애드몹에 등록해두기. 실수 여지 제거.
- 아이폰은 앱스토어에 idfa 치면 나오는 My Device ID by AppsFlyer 앱 다운받아서 확인
- https://support.google.com/admob/answer/9691433?hl=ko
- https://apps.apple.com/us/app/simple-bmi-calculator-advisor/id1575131972 와 같이 앱스토어 URL을 두 번 검색하면 앱이 나온다.
-
Android 앱 제출 전:
- 앱 이름 바꿔주기 - https://velog.io/@adbr/flutter-앱-이름-설정 참조.
android/app/build.gradle
에 릴리즈 빌드 시 디버그 키 사용하게 되어 있는 거 제거, 업로드키 생성 후 등록하기. - https://flutter-ko.dev/docs/deployment/android 참조. 또한 minSdkVersion 19로 설정해줘야 애드몹 추가가능. -> minSdkVersion 21로 설정해야 Multi Dex 오류가 발생하지 않는다.
-
앱스토어/플레이스토어 업로드용 스크린샷 자동 생성하기
- https://github.com/tim-smart/dart_emulators 사용; 언어 설정은 스크립트 간단히 짜서 돌리면 됨
-
CI/CD 설정:
- https://codemagic.io/
- 버튼만 눌러주면 알아서 테스트하고 알아서 빌드하고 알아서 플레이스토어 출시해주고 알아서 앱스토어 TestFlight 올려준다. 설정이 다소 복잡하지만 문서가 아주 잘 되어 있어서 따라만 하면 된다.
- 빌드 아티펙트의 빌드 넘버를 빌드 넘버로 설정하려면 Build arguments에
--build-number=$BUILD_NUMBER
설정 -
빌드 캐싱 설정
-
스토어 자동 배포 설정 문서