[iOS/Swift] Apple 프로젝트에 Firebase 추가

술술·2025년 9월 16일

소셜 로그인

목록 보기
1/3
post-thumbnail

개발 환경

  • Tuist 4.55.6
  • Xcode 16.4
  • macOS Sequoia 15.6
  • Swift 6.1.2
  • iOS 18

기본 요건

  • Xcode 16.2 이상
  • 프로젝트에서 다음 플랫폼 버전 이상을 타겟팅해야 합니다.
    • iOS 13
    • macOS 10.15
    • tvOS 13
    • watchOS 7

1단계: Firebase 프로젝트 만들기

Firebase를 Apple 앱에 추가하려면 먼저 앱에 연결할 Firebase 프로젝트를 만드세요.

→ 이미 데이터베이스를 만들면서 프로젝트를 만들어 둠
https://velog.io/@surisuri/iOSSwift-Firebase-Firestore-Database-연동

2단계: Firebase에 앱 등록

Apple 앱에서 Firebase를 사용하려면 Firebase 프로젝트에 앱을 등록해야 합니다. 앱 등록이란 보통 프로젝트에 앱을 '추가'하는 것을 의미합니다.

  1. Firebase 콘솔로 이동

  2. 프로젝트 개요 페이지 중앙에 있는 iOS+ 아이콘을 클릭하여 설정 워크플로를 시작합니다.

  3. 번들 ID 필드에 앱의 번들 ID를 입력합니다.

  4. (선택사항) 다른 앱 정보(앱 닉네임 및 App Store ID)를 입력합니다.

  5. 앱 등록을 클릭합니다.

3단계: Firebase 구성 파일 추가

  1. GoogleService-Info.plist 다운로드를 클릭하여 앱의 Firebase 구성 파일(GoogleService-Info.plist)을 가져옵니다.

  2. 구성 파일을 Xcode 프로젝트의 루트로 이동합니다. 메시지가 표시되면 모든 대상에 구성 파일을 추가하도록 선택합니다.

    Resources에 추가한 이유: Derived-infoPlist 폴더는 빌드 중간 산출물이라, 앱에 포함되지 않고, Firebase SDK가 찾지도 못한다.

4단계: 앱에 Firebase SDK 추가

  1. 앱 프로젝트를 연 상태로 Xcode에서 File(파일) > Add Packages(패키지 추가)로 이동합니다.

  2. 메시지가 표시되면 Firebase iOS SDK 저장소 URL을 입력합니다.

    https://github.com/firebase/firebase-ios-sdk

    저는 이전에 사용한 적이 있어서 최근 사용에 뜨네요 Add Package를 눌러줍니다. 뜨지 않는다면 왼쪽 위에 검색 창에 URL을 붙여넣기 하면 뜰거예요.

    진행중~,~

    Add Package!

    프로젝트에 이렇게 뜹니다. 근데 지금 tuist에 설정을 해주지 않았기 때문에 끄면 사라짐!

    tuist에서 설정을 해줍니다.

    // Package.swift
    
    let package = Package(
        name: "Jip-coon",
        dependencies: [
            // dependencies에 추가해줍니다.
          .package(url: "https://github.com/firebase/firebase-ios-sdk", from: "12.1.0")
        ]
    )

    여기서 궁금한 점

    🤔 packageSettings의 productTypes는 건들지 않아도 되는건가?

    따로 코드를 추가하지 않아도 됩니다. productTypes은 선택적인 부분으로 특정 패키지의 제품 타입 바꾸기 등을 수행해요. 따로 productTypes를 변경하지 않았을 때 기본 설정은 .staticFramework 입니다.

    // App/Project.swift
    
    dependencies: [
        .project(target: "Feature", path: .relativeToRoot("Projects/Feature")),
        .external(name: "FirebaseCore")    // 이 부분 추가
        ]

    https://docs.tuist.dev/ko/guides/quick-start/add-dependencies

    tuist install 을 통해 설치해줍니다.

    tuist generate를 하면 아래에 Dependencies 폴더가 추가되어 있습니다.

5단계: 앱에서 Firebase 초기화

// AppDelegate.swift

import UIKit
import FirebaseCore // 이부분

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
      FirebaseApp.configure()  // 이부분 추가 ✅
        return true
    }

설정 끝

데이터 읽기/쓰기

ViewController에서 테스트해보기

// ViewController.swift

let db = Firestore.firestore()

public override func viewDidAppear(_ animated: Bool) {
        Task {
            await addData()
            await readData()
        }
    }

func addData() async {
        // Add a new document with a generated ID
        do {
          let ref = try await db.collection("users").addDocument(data: [
            "first": "Ada",
            "last": "Lovelace",
            "born": 1815
          ])
          print("Document added with ID: \(ref.documentID)")
        } catch {
          print("Error adding document: \(error)")
        }
    }
    
    func readData() async {
        do {
          let snapshot = try await db.collection("users").getDocuments()
          for document in snapshot.documents {
            print("\(document.documentID) => \(document.data())")
          }
        } catch {
          print("Error getting documents: \(error)")
        }
    }

데이터베이스 콘솔에서 확인하면


참고 자료

기존 프로젝트에 tuist 적용하기 1편
Tuist v4 기준 SPM 설치 및 실행 가이드 : config 파일 추가 방법
Apple 프로젝트에 Firebase 추가
Cloud Firestore 시작하기
Firebase 보안 규칙
기본 보안 규칙
Firebase용 API키 사용 및 관리에 대해 알아보기

profile
Hello

0개의 댓글