반응형
Firebase 셋팅 (다수 에러 해결 과정)
- 설치하기
- pubspec.yaml
dependencies:
flutter:
sdk: flutter
http: ^0.13.4
image_picker: ^0.8.4+4
shared_preferences: ^2.0.11
provider: ^6.0.1
flutter_local_notifications: ^9.1.5
# firebase
firebase_core: ^1.10.6
firebase_auth: ^3.3.4
cloud_firestore: ^3.1.5
- firebase console 검색 → 프로젝트 생성
- IOS 앱 추가
- 앱 등록
- Apple 번들: android → app → build.gradle 파일의 하단에 defaultConfig 부분에 applicationId 라고 값이 있는데 해당 값을 추가해주면 됨.
- 여기서 보통 com.회사명.프로젝트명 으로 작명하게 되니 편하게 작성하면 될 듯.
defaultConfig { // TODO: Specify your own unique Application ID (<https://developer.android.com/studio/build/application-id.html>). applicationId "com.example.instagram" // You can update the following values to match your application needs. // For more information, see: <https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration>. minSdkVersion flutter.minSdkVersion targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName }
- 만약 프로젝트 생성시 회사명을 작성하지 않아 example로 기입되어 있을 경우 변경하는 방법
- 터미널 창을 열어서 (View → Tool Windows → Terminal)
- dart pub global activate rename (rename 설치)
- dart pub global run rename --bundleId com.회사명.instagram
- 위와 같은 과정을 거치면 작성한 대로 변경되는 것을 확인할 수 있다.
- 터미널 창을 열어서 (View → Tool Windows → Terminal)
- 해당 ID를 Apple 번들 ID에 기입하기
- 앱 닉네임
- 원하는 대로 기입
- App Store ID
- 있다면 기업 없다면 그냥 나와있는 대로 작성하면 됨.
- Apple 번들: android → app → build.gradle 파일의 하단에 defaultConfig 부분에 applicationId 라고 값이 있는데 해당 값을 추가해주면 됨.
- 구성 파일 다운로드
- 그냥 다음 계속 누르면서 진행하면 됨 (요즘은 해당 방식대로 안한다고 함)
- 다음 단계
- 콘솔로 이동 클릭
- 앱 등록
- Android 앱 추가
- 앱 등록
- Android 패키지 이름
- 아까 변경한 ID 기입
- 앱 닉네임
- 원하는 대로
- 디버그 서명 인증서
- 모르겠으면 그냥 그대로 두기
- Android 패키지 이름
- 이후 그냥 다음 클릭
- 앱 등록
- 웹 등록
- 앱 닉네임 기입 후 다음 클릭하기
- IOS 앱 추가
- 사용하기
- Flutter에 Firebase 셋팅 과정이 조금 복잡해서 쉽게 해주는 패키지를 설치
- 터미널 → dart pub global activate flutterfire_cli
- 이후 Warning에 나오는 Pub installs executables into 경로, which is not on your path.에서
- 경로를 환경변수에 등록하기
- (윈도우)
- Window → 시스템 환경 변수 편집 → 환경 변수 → user에 대한 사용자 변수 → Path 더블 클릭 → 새로 만들기 → 경로 붙여넣기 → 확인
- (맥)
- terminal → open ~/.zshrc or open ~/.bash_profile → 생성된 곳에 경로를 붙여넣기 → 저장
- (윈도우)
- 경로를 환경변수에 등록하기
- android Studio 재시작
- 다시 터미널을 켜고 flutterfire configure 입력
- 여기서 에러가 계속 발생하는 경우
- 확인할 것!
- NodeJS가 설치 되어있는지 확인
- 안되어 있다면 nodeJS 페이지에서 LTS 버전 설치
- 설치 이후 윈도우 → cmd → npm install -g firebase-tools 입력 후 설치
- 이후 다시 flutterfire configure 입력
- 에러 발생하고 firebase login 라는 문구가 있다면
- firebase login 입력
- firebase: 이 시스템에서 스크립트를 실행할 수 없으므로 라는 에러가 발생한다면
- 윈도우 → PowerShell (관리자권한) → get-ExecutionPolicy 실행
- Restricted 가 나온다면 아래의 코드로 권한 변경 (현재는 권한이 제한 되어있어서 실행 불가 에러 발생)
- Set-ExecutionPolicy RemoteSigned 입력 후 y 입력
- 다시 get-ExecutionPolicy 실행 후 확인
- 위의 과정을 거친 후 다시 firebase login 입력
- Firebase에서 권한 확인 후 완료
- firebase login 입력
- 에러 발생하고 firebase login 라는 문구가 있다면
- 이후 다시 flutterfire configure 입력 (끝)
- NodeJS가 설치 되어있는지 확인
- 확인할 것!
- 여기서 에러가 계속 발생하는 경우
- 이후 원하는 거 선택 후 완료가 되면 아래의 코드를 main.dart의 import 부분과 main()함수 내에 추가하기
- Flutter에 Firebase 셋팅 과정이 조금 복잡해서 쉽게 해주는 패키지를 설치
// firebase
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';
void main() async{
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
- 이후 사용하기 위해 minSdkVersion을 올리기 위해 android → app → build.gradle의 defaultConfig를 아래처럼 수정하기
- 21 → Android 5.0 Lollipop 버전을 의미한다고 함.
defaultConfig { applicationId "com.작명.instagram" minSdkVersion 21 // 19 or 21 targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName }
- 만약 맥북으로 한다면 ios → Podfile의 상단에 있는 platform을 수정하기
- platform: ios, '10.0'
- 이제 휴대폰으로 실행하게 되면 됨.
- 근데 여기서 엄청나게 많은 에러들이 발생하게 되는데
- 대부분 구글링 하면 잘 해결이 된다.
- 다만 내가 겪은 에러들을 나열하자면 아래와 같다.
- 첫째
FirebaseAppPlatform.verifyExtends(_delegate); ^^^^^^^^^^^^^
- 위와 같은 에러가 발생하게 되면 터미널에 아래의 코드를 입력
- flutter pub upgrade --major-versions
- 둘째
Method not found: 'IOSInitializationSettings'. var iosSetting = IOSInitializationSettings
- 위와 같은 에러가 발생하게 되면 기존에는 문제 없었던 알림에 해당하는 코드를 아래와 같이 수정해야함
- IOSInitializationSettings() ⇒ DarwinInitializationSettings()
- IOSNotificationDetails() ⇒ DarwinNotificationDetails()
- 이후 다른 빨간 줄로 되어 있는 부분은 우선 임시로 주석 처리했음.
- 셋째
AndroidManifest.xml Error:
- 위의 경우엔 기존에 변경했었던 android → app → build.gradle의 minSdkVersion 변경 코드를 저장하지 않아서 발생하게 된 점으로
- 아래와 같이 변경
- 근데 여기서 엄청나게 많은 에러들이 발생하게 되는데
defaultConfig {
applicationId "com.작명.instagram"
minSdkVersion 21
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
'Flutter' 카테고리의 다른 글
[Flutter] Firebase 회원 인증기능 (0) | 2023.08.16 |
---|---|
[Flutter] Firebase에 데이터 저장 & 조회 & 삭제 & 수정 (0) | 2023.08.15 |
[Flutter] 특정 시간 알림 & 주기적인 알림 띄우기 (0) | 2023.08.15 |
[Flutter] Local notification 알림 주는 법 (0) | 2023.08.14 |
[Flutter] GridView, CustomScrollView 프로필 페이지 만들기 (0) | 2023.08.14 |