Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

C++ 프로젝트에 Firebase 추가

iOS 및 Android용 Firebase 위에 C++ 인터페이스를 제공하는 Firebase C++ SDK로 C++ 게임을 강화하세요.

플랫폼 네이티브 코드를 작성할 필요 없이 C++ 코드에서 Firebase에 완전히 액세스할 수 있습니다. Firebase SDK는 또한 Firebase에서 사용하는 많은 언어별 관용구를 C++ 개발자에게 더 친숙한 인터페이스로 변환합니다.

Firebase 게임 페이지 에서 Firebase로 게임을 강화하는 방법에 대해 자세히 알아보세요.

C++ 프로젝트에 Firebase를 이미 추가했습니까? 최신 버전의 Firebase C++ SDK 를 사용하고 있는지 확인합니다.

전제 조건

  • 다음을 설치합니다.

    • Xcode 13.3.1 이상
    • CocoaPods 1.10.0 이상
  • 프로젝트가 다음 플랫폼 버전 이상을 대상으로 하는지 확인하십시오.

    • iOS 11
  • 실제 iOS 기기를 설정하거나 iOS 시뮬레이터를 사용하여 앱을 실행합니다.

  • Google 계정을 사용하여 Firebase에 로그인 합니다.

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

Firebase를 C++ 프로젝트에 추가하려면 먼저 C++ 프로젝트에 연결할 Firebase 프로젝트를 만들어야 합니다. Firebase 프로젝트에 대해 자세히 알아보려면 Firebase 프로젝트 이해 를 방문하세요.

3단계 : Firebase에 앱 등록

Apple 앱에서 Firebase를 사용하려면 Firebase 프로젝트에 앱을 등록해야 합니다. 앱을 등록하는 것을 종종 프로젝트에 앱을 "추가"라고 합니다.

  1. Firebase 콘솔 로 이동합니다.

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

    Firebase 프로젝트에 이미 앱을 추가한 경우 앱 추가 를 클릭하여 플랫폼 옵션을 표시합니다.

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

  4. (선택 사항) 기타 앱 정보 입력: 앱 닉네임앱 스토어 ID .

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

4단계 : Firebase 구성 파일 추가

  1. GoogleService-Info.plist 다운로드 를 클릭하여 Firebase Apple 플랫폼 구성 파일을 가져옵니다.

  2. IDE에서 C++ 프로젝트를 연 다음 구성 파일을 C++ 프로젝트의 루트로 끌어다 놓습니다.

  3. 메시지가 표시되면 구성 파일을 모든 대상에 추가하도록 선택합니다.

Firebase 콘솔에서 설정 작업이 완료되었습니다. 아래에서 계속해서 Firebase C++ SDK를 추가 하세요.

5단계 : Firebase C++ SDK 추가

이 섹션의 단계는 지원되는 Firebase 제품 을 Firebase C++ 프로젝트에 추가하는 방법의 예입니다.

  1. Firebase C++ SDK 를 다운로드한 다음 편리한 위치에 SDK의 압축을 풉니다.

    Firebase C++ SDK는 플랫폼별 라이브러리가 아니지만 플랫폼별 라이브러리가 포함되어 있습니다.

  2. 압축을 푼 SDK에서 Firebase 포드 를 추가합니다.

    1. 아직 없는 경우 Podfile을 만듭니다.

      cd your-app-directory
      pod init

    2. Podfile에 앱에서 사용하려는 Firebase 포드를 추가합니다.

      분석 사용

      # Add the Firebase pod for Google Analytics
      pod 'FirebaseAnalytics'
      # Add the pods for any other Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'

      분석이 활성화되지 않음

      # Add the pods for the Firebase products you want to use in your app
      # For example, to use Firebase Authentication and Firebase Realtime Database
      pod 'FirebaseAuth'
      pod 'FirebaseDatabase'
    3. 포드를 설치한 다음 Xcode에서 .xcworkspace 파일을 엽니다.

      pod install
      open your-app.xcworkspace

  3. 압축을 푼 SDK에서 Firebase 프레임워크 를 추가합니다.

    이러한 프레임워크를 추가하는 가장 쉬운 방법은 일반적으로 Finder 창에서 Xcode의 프로젝트 네비게이터 창(기본적으로 맨 왼쪽 창, 또는 Xcode의 왼쪽 상단에 있는 파일 아이콘 클릭)으로 직접 끌어오는 것입니다.

    1. Firebase 제품을 사용하는 데 필요한 firebase.framework C++ 프레임워크 firebase.framework 를 추가합니다.

    2. 사용하려는 각 Firebase 제품에 대한 프레임워크를 추가합니다. 예를 들어 firebase_auth.framework 인증을 사용하려면 firebase_auth.framework 를 추가하세요.

  4. Firebase 콘솔로 돌아가서 설정 워크플로에서 다음 을 클릭합니다.

  5. Analytics를 추가한 경우 앱을 실행하여 Firebase를 성공적으로 통합했다는 확인을 Firebase에 보냅니다. 그렇지 않으면 이 확인 단계를 건너뛸 수 있습니다.

    기기 로그에는 초기화가 완료되었다는 Firebase 확인이 표시됩니다. 네트워크 액세스 권한이 있는 에뮬레이터에서 앱을 실행한 경우 Firebase 콘솔 에서 앱 연결이 완료되었음을 알려줍니다.

준비가 완료되었습니다! C++ 앱이 Firebase 제품을 사용하도록 등록 및 구성되었습니다.

사용 가능한 라이브러리

참조 문서GitHub 의 오픈 소스 SDK 릴리스에서 C++ Firebase 라이브러리에 대해 자세히 알아보세요.

iOS에서 사용 가능한 라이브러리

Android용 C++ 라이브러리 는 이 설정 페이지의 Android 버전에 나열되어 있습니다.

Firebase 제품마다 종속 항목이 다릅니다. 원하는 Firebase 제품에 대해 나열된 모든 종속성을 Podfile 및 C++ 프로젝트에 추가해야 합니다.

Firebase 제품 프레임워크 및 포드
AdMob (필수) firebase.framework
firebase_admob.framework
(필수) firebase_analytics.framework

pod 'FirebaseAdMob', '10.1.0'
(필수) pod 'FirebaseAnalytics', '10.1.0'
해석학 (필수) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '10.1.0'
입증 (필수) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '10.1.0'
클라우드 파이어스토어 (필수) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '10.1.0'
pod 'FirebaseAuth', '10.1.0'
클라우드 함수 (필수) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '10.1.0'
클라우드 메시징 (필수) firebase.framework
firebase_messaging.framework
(권장) firebase_analytics.framework

pod 'FirebaseMessaging', '10.1.0'
(권장) pod 'FirebaseAnalytics', '10.1.0'
클라우드 스토리지 (필수) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '10.1.0'
동적 링크 (필수) firebase.framework
firebase_dynamic_links.framework
(권장) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '10.1.0'
(권장) pod 'FirebaseAnalytics', '10.1.0'
실시간 데이터베이스 (필수) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '10.1.0'
원격 구성 (필수) firebase.framework
firebase_remote_config.framework
(권장) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '10.1.0'
(권장) pod 'FirebaseAnalytics', '10.1.0'

모바일 설정에 대한 추가 정보

메소드 스위즐링

iOS에서 일부 애플리케이션 이벤트(예: URL 열기 및 알림 수신)는 애플리케이션 대리자가 특정 메소드를 구현해야 합니다. 예를 들어 알림을 수신하려면 애플리케이션 대리자가 application:didReceiveRemoteNotification: 을 구현해야 할 수 있습니다. 각 iOS 애플리케이션에는 고유한 앱 대리자가 있기 때문에 Firebase는 한 메서드를 다른 메서드로 교체할 수 있는 메서드 swizzling 을 사용하여 구현했을 수 있는 핸들러 외에 자체 핸들러를 연결합니다.

동적 링크 및 클라우드 메시징 라이브러리는 메소드 스위즐링을 사용하여 애플리케이션 대리자에 핸들러를 연결해야 합니다. 이러한 Firebase 제품을 사용하는 경우 로드 시 Firebase가 AppDelegate 클래스를 식별하고 필요한 메서드를 해당 클래스에 혼합하여 기존 메서드 구현에 대한 호출을 다시 연결합니다.

데스크톱 워크플로 설정( 베타 )

게임을 만들 때 먼저 데스크톱 플랫폼에서 게임을 테스트한 다음 나중에 개발 단계에서 모바일 장치에 배포하고 테스트하는 것이 훨씬 더 쉽습니다. 이 워크플로를 지원하기 위해 Windows, macOS, Linux 및 C++ 편집기 내에서 실행할 수 있는 Firebase C++ SDK의 하위 집합을 제공합니다.

  1. 데스크톱 워크플로의 경우 다음을 완료해야 합니다.

    1. CMake용 C++ 프로젝트를 구성합니다.
    2. Firebase 프로젝트 만들기
    3. Firebase에 앱(iOS 또는 Android) 등록
    4. 모바일 플랫폼 Firebase 구성 파일 추가
  2. Firebase 구성 파일의 데스크톱 버전을 만듭니다.

    • Android google-services.json 파일을 추가한 경우 — 앱을 실행할 때 Firebase는 이 모바일 파일을 찾은 다음 데스크톱 Firebase 구성 파일( google-services-desktop.json )을 자동으로 생성합니다.

    • iOS GoogleService-Info.plist 파일을 추가한 경우 — 앱을 실행하기 전에 이 모바일 파일을 데스크톱 Firebase 구성 파일로 변환해야 합니다. 파일을 변환하려면 GoogleService-Info.plist 파일과 동일한 디렉토리에서 다음 명령어를 실행하세요.

      generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist

    이 데스크톱 구성 파일에는 Firebase 콘솔 설정 워크플로에서 입력한 C++ 프로젝트 ID가 포함되어 있습니다. 구성 파일에 대해 자세히 알아보려면 Firebase 프로젝트 이해 를 방문하세요.

  3. C++ 프로젝트에 Firebase SDK를 추가합니다.

    아래 단계는 지원되는 Firebase 제품 을 C++ 프로젝트에 추가하는 방법의 예입니다. 이 예에서는 Firebase 인증 및 Firebase 실시간 데이터베이스를 추가하는 과정을 안내합니다.

    1. FIREBASE_CPP_SDK_DIR 환경 변수를 압축을 푼 Firebase C++ SDK의 위치로 설정합니다.

    2. 프로젝트의 CMakeLists.txt 파일에 사용하려는 Firebase 제품의 라이브러리 를 포함하여 다음 콘텐츠를 추가합니다. 예를 들어 Firebase 인증 및 Firebase 실시간 데이터베이스를 사용하려면 다음 안내를 따르세요.

      # Add Firebase libraries to the target using the function from the SDK.
      add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL)
      
      # The Firebase C++ library `firebase_app` is required,
      # and it must always be listed last.
      
      # Add the Firebase SDKs for the products you want to use in your app
      # For example, to use Firebase Authentication and Firebase Realtime Database
      set(firebase_libs firebase_auth firebase_database firebase_app)
      target_link_libraries(${target_name} "${firebase_libs}")
      
  4. C++ 앱을 실행합니다.

사용 가능한 라이브러리(데스크톱)

Firebase C++ SDK에는 일부 기능에 대한 데스크톱 워크플로 지원 이 포함되어 있어 Firebase의 특정 부분을 Windows, macOS, Linux의 독립 실행형 데스크톱 빌드에서 사용할 수 있습니다.

Firebase 제품 라이브러리 참조(CMake 사용)
입증 firebase_auth
(필수) firebase_app
클라우드 파이어스토어 firebase_firestore
firebase_auth
firebase_app
클라우드 함수 firebase_functions
(필수) firebase_app
클라우드 스토리지 firebase_storage
(필수) firebase_app
실시간 데이터베이스 firebase_database
(필수) firebase_app
원격 구성 firebase_remote_config
(필수) firebase_app

Firebase는 Windows, macOS, Linux용으로 빌드할 때 편의를 위해 나머지 데스크톱 라이브러리를 스텁(비작동) 구현으로 제공합니다. 따라서 데스크톱을 대상으로 하기 위해 조건부로 코드를 컴파일할 필요가 없습니다.

실시간 데이터베이스 데스크탑

데스크톱용 실시간 데이터베이스 SDK는 REST를 사용하여 데이터베이스에 액세스하므로 데스크톱에서 Query::OrderByChild() 와 함께 사용 하는 인덱스를 선언 해야 합니다. 그렇지 않으면 리스너가 실패합니다.

데스크탑 설정에 대한 추가 정보

Windows 라이브러리

Windows의 경우 다음을 기반으로 라이브러리 버전이 제공됩니다.

  • 빌드 플랫폼: 32비트(x86) 및 64비트(x64) 모드
  • Windows 런타임 환경: 다중 스레드 / MT 대 다중 스레드 DLL /MD
  • 대상: 릴리스 대 디버그

다음 라이브러리는 Visual Studio 2015 및 2017을 사용하여 테스트되었습니다.

Windows에서 C++ 데스크톱 앱을 빌드할 때 다음 Windows SDK 라이브러리를 프로젝트에 연결합니다. 자세한 내용은 컴파일러 설명서를 참조하십시오.

Firebase C++ 라이브러리 Windows SDK 라이브러리 종속성
입증 advapi32, ws2_32, crypt32
클라우드 파이어스토어 advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
클라우드 함수 advapi32, ws2_32, crypt32, rpcrt4, ole32
클라우드 스토리지 advapi32, ws2_32, crypt32
실시간 데이터베이스 advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
원격 구성 advapi32, ws2_32, crypt32, rpcrt4, ole32

macOS 라이브러리

macOS(Darwin)의 경우 64비트(x86_64) 플랫폼용 라이브러리 버전이 제공됩니다. 편의를 위해 프레임워크도 제공됩니다.

macOS 라이브러리는 Xcode 13.3.1을 사용하여 테스트되었습니다.

macOS에서 C++ 데스크탑 앱을 빌드할 때 다음을 프로젝트에 연결하십시오.

  • pthread 시스템 라이브러리
  • CoreFoundation macOS 시스템 프레임워크
  • Foundation macOS 시스템 프레임워크
  • Security macOS 시스템 프레임워크
  • GSS macOS 시스템 프레임워크
  • Kerberos macOS 시스템 프레임워크
  • SystemConfiguration macOS 시스템 프레임워크

자세한 내용은 컴파일러 설명서를 참조하십시오.

리눅스 라이브러리

Linux의 경우 32비트(i386) 및 64비트(x86_64) 플랫폼용 라이브러리 버전이 제공됩니다.

Linux 라이브러리는 Ubuntu에서 GCC 4.8.0, GCC 7.2.0 및 Clang 5.0을 사용하여 테스트되었습니다.

Linux에서 C++ 데스크탑 앱을 빌드할 때 pthread 시스템 라이브러리를 프로젝트에 연결하십시오. 자세한 내용은 컴파일러 설명서를 참조하십시오. GCC 5 이상으로 빌드하는 경우 -D_GLIBCXX_USE_CXX11_ABI=0 을 정의하십시오.

다음 단계