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 이상
- 코코아팟 1.10.0 이상
프로젝트가 다음 플랫폼 버전 이상을 대상으로 하는지 확인하십시오.
- 아이폰 OS 11
실제 iOS 기기를 설정하거나 iOS 시뮬레이터를 사용하여 앱을 실행합니다.
Apple 플랫폼의 클라우드 메시징에 대한 전제 조건은 다음과 같습니다.
- 실제 Apple 기기 를 설정합니다.
- Apple 개발자 계정 에 대한 Apple 푸시 알림 인증 키를 얻습니다.
- App > Capabilities 아래의 Xcode에서 푸시 알림을 활성화합니다.
Google 계정을 사용하여 Firebase에 로그인 합니다.
2단계 : Firebase 프로젝트 생성
C++ 프로젝트에 Firebase를 추가하려면 C++ 프로젝트에 연결할 Firebase 프로젝트를 만들어야 합니다. Firebase 프로젝트에 대해 자세히 알아보려면 Firebase 프로젝트 이해 를 방문하세요.
3단계 : Firebase에 앱 등록
Apple 앱에서 Firebase를 사용하려면 Firebase 프로젝트에 앱을 등록해야 합니다. 앱을 등록하는 것을 종종 프로젝트에 앱을 "추가"라고 합니다.
Firebase 콘솔 로 이동합니다.
프로젝트 개요 페이지 중앙에서 iOS+ 아이콘을 클릭하여 설정 워크플로를 시작합니다.
Firebase 프로젝트에 앱을 이미 추가한 경우 앱 추가 를 클릭하여 플랫폼 옵션을 표시합니다.
번들 ID 필드에 앱의 번들 ID를 입력합니다.
번들 ID 는 Apple 생태계에서 애플리케이션을 고유하게 식별합니다.
번들 ID 찾기: Xcode에서 프로젝트를 열고 프로젝트 탐색기에서 최상위 앱을 선택한 다음 일반 탭을 선택합니다.
번들 식별자 필드의 값은 번들 ID(예:
com.yourcompany.yourproject
)입니다.번들 ID 값은 대소문자를 구분하며 Firebase 프로젝트에 등록한 후에는 이 Firebase 앱에 대해 변경할 수 없습니다.
(선택사항) 기타 앱 정보 입력: 앱 닉네임 및 App Store ID .
앱 닉네임 : Firebase 콘솔에서 나에게만 표시되는 내부 편의 식별자
App Store ID : Firebase Dynamic Links에서 사용자를 App Store 페이지로 리디렉션 하고 Google Analytics에서 전환 이벤트를 Google Ads로 가져오기 위해 사용합니다. 앱에 아직 App Store ID가 없는 경우 나중에 프로젝트 설정 에서 ID를 추가할 수 있습니다.
앱 등록 을 클릭합니다.
4단계 : Firebase 구성 파일 추가
GoogleService-Info.plist 다운로드 를 클릭하여 Firebase Apple 플랫폼 구성 파일을 가져옵니다.
Firebase 구성 파일에는 고유하지만 비밀이 아닌 프로젝트 식별자가 포함되어 있습니다. 이 구성 파일에 대해 자세히 알아보려면 Firebase 프로젝트 이해 를 방문하세요.
언제든지 Firebase 구성 파일 을 다시 다운로드할 수 있습니다.
구성 파일 이름에
(2)
와 같은 추가 문자가 추가되지 않았는지 확인하십시오.
IDE에서 C++ 프로젝트를 연 다음 구성 파일을 C++ 프로젝트의 루트로 드래그합니다.
메시지가 표시되면 구성 파일을 모든 대상에 추가하도록 선택합니다.
Firebase 콘솔에서 작업 설정이 완료되었습니다. 아래에서 계속해서 Firebase C++ SDK를 추가 하세요.
5단계 : Firebase C++ SDK 추가
이 섹션의 단계는 지원되는 Firebase 제품 을 Firebase C++ 프로젝트에 추가하는 방법의 예입니다.
Firebase C++ SDK 를 다운로드한 다음 편리한 위치에 SDK의 압축을 풉니다.
Firebase C++ SDK는 플랫폼별로 다르지만 플랫폼별 라이브러리가 포함되어 있습니다.
압축을 푼 SDK에서 Firebase 포드 를 추가합니다.
아직 없는 경우 Podfile을 만듭니다.
cd your-app-directory
pod init
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'
포드를 설치한 다음 Xcode에서
.xcworkspace
파일을 엽니다.pod install
open your-app.xcworkspace
압축을 푼 SDK에서 Firebase 프레임워크 를 추가합니다.
이러한 프레임워크를 추가하는 가장 쉬운 방법은 일반적으로
Finder
창에서 Xcode의 프로젝트 네비게이터 창(기본적으로 맨 왼쪽 창 또는 Xcode의 왼쪽 상단에 있는 파일 아이콘 클릭)으로 프레임워크를 직접 드래그하는 것입니다.Firebase 제품을 사용하는 데 필요한
firebase.framework
C++ 프레임워크 firebase.framework 를 추가합니다.사용하려는 각 Firebase 제품의 프레임워크를 추가합니다. 예를 들어
firebase_auth.framework
인증을 사용하려면 firebase_auth.framework 를 추가합니다.
Firebase 콘솔로 돌아가서 설정 워크플로에서 다음 을 클릭합니다.
애널리틱스를 추가한 경우 앱을 실행하여 Firebase를 성공적으로 통합했다는 확인을 Firebase에 보냅니다. 그렇지 않으면 이 확인 단계를 건너뛸 수 있습니다.
기기 로그에 초기화가 완료되었다는 Firebase 확인이 표시됩니다. 네트워크 액세스 권한이 있는 에뮬레이터에서 앱을 실행한 경우 Firebase 콘솔 에서 앱 연결이 완료되었음을 알립니다.
설정이 완료되었습니다. C++ 앱이 Firebase 제품을 사용하도록 등록 및 구성되었습니다.
사용 가능한 라이브러리
참조 문서 및 GitHub 의 오픈 소스 SDK 릴리스에서 C++ Firebase 라이브러리에 대해 자세히 알아보세요.
iOS용으로 사용 가능한 라이브러리
Android용 C++ 라이브러리 는 이 설정 페이지의 Android 버전에 나열되어 있습니다.
각 Firebase 제품에는 서로 다른 종속성이 있습니다. 원하는 Firebase 제품에 대해 나열된 모든 종속 항목을 Podfile 및 C++ 프로젝트에 추가해야 합니다.
Firebase 제품 | 프레임워크 및 포드 |
---|---|
애드몹 | (필수) firebase.framework firebase_admob.framework (필수) firebase_analytics.framework pod 'FirebaseAdMob', '10.3.0' (필수) pod 'FirebaseAnalytics', '10.3.0' |
해석학 | (필수) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '10.3.0' |
입증 | (필수) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '10.3.0' |
클라우드 파이어스토어 | (필수) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '10.3.0' pod 'FirebaseAuth', '10.3.0' |
클라우드 기능 | (필수) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '10.3.0' |
클라우드 메시징 | (필수) firebase.framework firebase_messaging.framework (권장) firebase_analytics.framework pod 'FirebaseMessaging', '10.3.0' (권장) pod 'FirebaseAnalytics', '10.3.0' |
클라우드 스토리지 | (필수) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '10.3.0' |
동적 링크 | (필수) firebase.framework firebase_dynamic_links.framework (권장) firebase_analytics.framework pod 'FirebaseDynamicLinks', '10.3.0' (권장) pod 'FirebaseAnalytics', '10.3.0' |
실시간 데이터베이스 | (필수) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '10.3.0' |
원격 구성 | (필수) firebase.framework firebase_remote_config.framework (권장) firebase_analytics.framework pod 'FirebaseRemoteConfig', '10.3.0' (권장) pod 'FirebaseAnalytics', '10.3.0' |
모바일 설정에 대한 추가 정보
메서드 스위즐링
iOS에서 일부 애플리케이션 이벤트(예: URL 열기 및 알림 수신)는 특정 메서드를 구현하기 위해 애플리케이션 대리자가 필요합니다. 예를 들어 알림을 받으려면 애플리케이션 대리자가 application:didReceiveRemoteNotification:
을 구현해야 할 수 있습니다. 각 iOS 애플리케이션에는 자체 앱 대리자가 있기 때문에 Firebase는 한 메서드를 다른 메서드로 교체할 수 있는 메서드 스위즐링 을 사용하여 구현한 핸들러 외에 자체 핸들러를 추가합니다.
동적 링크 및 클라우드 메시징 라이브러리는 메서드 재구성을 사용하여 애플리케이션 대리자에 핸들러를 연결해야 합니다. 이러한 Firebase 제품을 사용하는 경우 로드 시 Firebase는 AppDelegate
클래스를 식별하고 여기에 필요한 메서드를 혼합하여 콜백을 기존 메서드 구현에 연결합니다.
데스크톱 워크플로 설정( 베타 )
게임을 만들 때 먼저 데스크톱 플랫폼에서 게임을 테스트한 다음 나중에 개발 단계에서 모바일 장치에 배포하고 테스트하는 것이 훨씬 쉬운 경우가 많습니다. 이 워크플로를 지원하기 위해 Windows, macOS, Linux 및 C++ 편집기 내에서 실행할 수 있는 Firebase C++ SDK의 하위 집합을 제공합니다.
데스크톱 워크플로의 경우 다음을 완료해야 합니다.
- CMake용 C++ 프로젝트를 구성합니다.
- Firebase 프로젝트 만들기
- Firebase에 앱(iOS 또는 Android) 등록
- 모바일 플랫폼 Firebase 구성 파일 추가
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 프로젝트 이해 를 방문하세요.
C++ 프로젝트에 Firebase SDK를 추가합니다.
아래 단계는 지원되는 Firebase 제품 을 C++ 프로젝트에 추가하는 방법의 예입니다. 이 예에서는 Firebase 인증 및 Firebase 실시간 데이터베이스를 추가하는 과정을 안내합니다.
FIREBASE_CPP_SDK_DIR
환경 변수를 압축 해제된 Firebase C++ SDK의 위치로 설정합니다.프로젝트의
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}")
C++ 앱을 실행합니다.
사용 가능한 라이브러리(데스크탑)
Firebase C++ SDK에는 일부 기능에 대한 데스크톱 워크플로 지원 이 포함되어 있어 Windows, macOS, Linux의 독립형 데스크톱 빌드에서 Firebase의 특정 부분을 사용할 수 있습니다.
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
을 정의합니다.
다음 단계
샘플 Firebase 앱 을 살펴보세요.
GitHub에서 오픈 소스 SDK를 살펴보세요.
앱 실행 준비:
- Google Cloud Console에서 프로젝트에 대한 예산 알림 을 설정하세요.
- Firebase Console에서 사용량 및 결제 대시보드 를 모니터링하여 여러 Firebase 서비스에서 프로젝트 사용량을 전체적으로 파악하세요.
- Firebase 출시 체크리스트 를 검토하세요.