Apple의 App Store 데이터 공개 요건에 대비

Apple은 App Store에 앱을 게시하는 개발자에게 앱의 데이터 사용과 관련된 특정 정보를 공개하도록 요구합니다. Apple은 2020년 12월 8일부터 새로운 앱 및 앱 업데이트에 이러한 공개 요구사항을 적용한다고 발표했습니다.

이 문서에는 Apple 가이드라인에 따라 공개가 필요할 수 있는 Firebase Apple 플랫폼 라이브러리 동작에 대해 설명합니다. Firebase를 설치할 때 원하는 종속 항목 관리자가 앱에 설치한 빌드 대상을 기록해 둡니다. 종속 항목 관리자가 나열하는 각 대상마다 이 문서의 상응하는 섹션을 검토하여 어떤 데이터 수집을 공개해야 하는 확인하세요. 일부 Firebase 빌드 대상은 다른 대상에 일시적인 종속 항목이 있으므로 설치한 Firebase 빌드 대상 수가 예상한 값보다 클 수 있습니다.

추가 데이터가 수반되는 제품 기능(선택사항)을 사용하거나 추가 데이터가 수반되는 새로운 제품 기능의 테스트에 참여하는 경우 해당 기능이나 테스트에서 추가 데이터 공개가 필요한지 확인해야 합니다.

앱에서 데이터가 정확하게 공개되도록 항상 각 Firebase SDK의 최신 버전을 사용하는 것이 좋습니다.

Firebase 사용자 에이전트

Firebase 사용자 에이전트는 대부분의 Firebase SDK에서 수집되는 정보 번들로서 기기, OS, App Bundle ID, 개발자 플랫폼을 포함합니다. 사용자 에이전트는 사용자나 기기 식별자에 연결되지 않으며 Firebase팀에서 Firebase 기능 결정에 필요한 정보를 얻기 위해 플랫폼과 버전 채택을 확정할 때 사용됩니다.

Core

FirebaseCore

  • 데이터를 수집하지 않습니다.

GoogleUtilities

  • 데이터를 수집하지는 않지만 다른 SDK에서 데이터 수집에 사용할 수 있는 네트워킹 유틸리티를 포함합니다.

GoogleDataTransport

다른 SDK에서 데이터 수집에 사용할 수 있는 네트워킹 유틸리티를 포함합니다.

항상 수집

  • 클라이언트 로그 이벤트 캐시의 크기, 다양한 이유로 삭제된 클라이언트 로그 이벤트 수와 같은 SDK 성능에 대한 메타데이터를 수집하여 제품 품질을 모니터링하고 유지합니다.

A/B 테스팅

FirebaseABTesting

A/B 테스팅에서는 데이터를 수집하지 않습니다.

Firebase A/B 테스팅 SDK는 Firebase 원격 구성과 Firebase 인앱 메시지의 실험 그룹에 멤버십을 지정하기 위해 Google 애널리틱스 사용자 속성을 설정하고 사용합니다.

Google 애널리틱스

Google 애널리틱스 데이터 수집 정보는 이 지원 도움말에서 확인할 수 있습니다.

앱 체크

FirebaseAppCheck

용도에 따라 다름

앱 배포

앱 배포 SDK는 베타 테스트 용도로만 사용됩니다. App Store에 제출할 때 애플리케이션에 앱 배포 SDK를 포함하지 마세요.

인증

FirebaseAuthentication

항상 수집

  • 사용자 인증 용도로 식별자를 생성하고 저장합니다.

용도에 따라 다름

  • 개발자가 사용자의 표시 이름을 제공하는 경우 표시 이름을 수집합니다.
  • 이메일 비밀번호 또는 이메일 링크 인증을 사용할 때 개발자가 제공하는 사용자 이메일 주소 또는 개발자가 제휴 ID를 사용하는 경우 제휴 제공업체의 응답에 포함된 사용자 이메일 주소를 수집합니다.
  • 전화 인증을 사용할 때 개발자가 사용자 전화번호를 제공하거나 사용자 전화번호가 인증 방법으로 추가된 경우 사용자 전화번호를 수집합니다. SMS 2단계 인증 과정 중에도 수집합니다.
  • 개발자가 Firebase 인증을 통해 서드 파티 인증 제공업체를 사용하는 경우 서드 파티 인증 제공업체와 관련된 연락처 정보를 수집합니다. 예를 들어 부여된 범위에 따라, 개발자가 Facebook 인증을 사용하는 경우 사용자의 식별자가 Facebook 프로필에 연결될 수 있습니다. 자세한 내용은 인증 제공업체의 문서를 참조하세요.
  • 앱이 Game Center에 연결되어 있는 경우 사용자의 Game Center ID를 저장합니다.
  • 앱에서 인증 흐름을 보호하기 위해 reCAPTCHA Enterprise를 사용하는 경우 이 토큰을 수집합니다. 자세한 내용은 reCAPTCHA Enterprise의 Apple 개인 정보 보호 세부정보를 참조하세요.
  • 데이터 수집이 사용 설정되면 Firebase 사용자 에이전트를 수집합니다.

Crashlytics

FirebaseCrashlytics

항상 수집

  • 애플리케이션이 비정상 종료될 때 스택 트레이스 및 관련 애플리케이션 상태를 수집합니다.
  • 비정상 종료 디버깅을 지원하기 위해 기기 및 OS 정보를 수집합니다.

용도에 따라 다름

  • 개발자가 비정상 종료 보고서에 첨부하는 커스텀 키, 로그, 자유 텍스트 사용자 ID를 수집합니다. 또한 커스텀 스택 트레이스로 개발자가 정의한 심각하지 않은 이벤트를 모두 수집합니다.
  • Crashlytics가 Google 애널리틱스와 함께 사용되는 경우 '탐색경로' 로그를 수집합니다. 이러한 로그에서는 비정상 종료 횟수와 함께 비정상 종료 직전의 사용자 작업을 식별합니다.

실시간 데이터베이스

FirebaseDatabase

항상 수집

항상 수집

  • 지연된 딥 링크(앱 설치 후 딥 링크)를 위해 기기의 화면 크기, 언어, OS 버전, 번들 ID, IP 주소, Firebase SDK 버전을 포함한 기기 데이터를 일시적으로 수집합니다.

기본적으로 수집

  • FirebaseAnalytics 프레임워크가 있는 경우 Google 애널리틱스를 통해 링크 상호작용 이벤트를 자동으로 로깅합니다. 자동 이벤트 로깅을 사용 중지하려면 앱에서 FirebaseAnalytics를 삭제합니다.
  • 앱을 처음 시작할 때 기기 페이스트보드에서 동적 링크 URL을 일시적으로 수집합니다(가능한 경우). 개발자가 앱의 Info.plist 파일에서 FirebaseDeepLinkPasteboardRetrievalEnabled 속성을 NO로 설정하면 페이스트보드의 사용을 중지할 수 있습니다.

Cloud Firestore

FirebaseFirestore

항상 수집

Cloud Functions

FirebaseFunctions

항상 수집

  • 함수 호출자의 함수 이름 및 IP 주소를 포함한 함수 호출 메타데이터를 수집합니다.

인앱 메시지

FirebaseInAppMessaging

항상 수집

  • 인앱 메시지와의 상호작용을 기록합니다. 이러한 상호작용(노출, 클릭, 닫기)은 Google 애널리틱스를 통해 기록됩니다. 개발자가 메시지 캠페인의 효과를 평가하는 데 도움이 되도록 Firebase에서도 상호작용을 기록합니다.

Firebase 설치

FirebaseInstallations

항상 수집

  • 사용자 또는 실제 기기를 고유하게 식별하지 않는 설치당 식별자를 생성합니다. 다양한 제품에서 이러한 설치 식별자를 사용하는 방법에 대한 자세한 내용은 Firebase 설치 가이드 관리를 참조하세요.
  • Firebase 사용자 에이전트를 수집합니다.

FirebaseInstanceID(지원 중단됨)

FirebaseInstanceID가 지원 중단되었습니다.

항상 수집

  • 사용자 또는 실제 기기를 고유하게 식별하지 않는 설치당 식별자를 생성합니다.
  • FirebaseMessaging에서 푸시 알림을 위해 사용하는 앱 인스턴스 ID인 FCM 등록 토큰을 생성하고 수집합니다.
  • APN 토큰을 기록하고 Firebase 인스턴스 ID(FCM 등록 토큰)와 연결합니다.
  • 기기 모델, 언어, 시간대, OS 버전, 애플리케이션 식별자, 애플리케이션 버전을 수집하여 FCM 등록 토큰을 생성합니다.

클라우드 메시징

FirebaseMessaging

항상 수집

  • 주제 구독과 구독 취소가 이루어진 애플리케이션 식별자 및 애플리케이션 버전을 수집합니다.

기본적으로 수집

  • FirebaseAnalytics 프레임워크가 있는 경우 Google 애널리틱스를 통해 알림 상호작용을 자동으로 로깅합니다. 이 동작을 사용 중지하려면 앱에서 FirebaseAnalytics를 삭제합니다.

용도에 따라 다름

Firebase ML

FirebaseMLCommon

  • 어떠한 데이터도 수집하지 않습니다.

FirebaseMLModelDownloader

항상 수집

  • 다운로드 이벤트, 삭제 이벤트, 오류와 같은 ML 모델 다운로드 메타데이터를 수집합니다.

FirebaseMLModelInterpreter

기본적으로 수집

  • 추론 기간 및 오류율과 같은 ML 추론 메타데이터를 수집합니다. 사용 중지하려면 ModelInterpreter.isStatsCollectionEnabled 속성을 false로 설정합니다.

FirebaseMLVision

기본적으로 수집

  • 생성 및 감지 이벤트와 같은 ML Vision 모델 메타데이터를 수집합니다. 사용 중지하려면 Vision.isStatsCollectionEnabled 속성을 false로 설정합니다.

Performance Monitoring

FirebasePerformance

항상 수집

  • IP 주소를 수집하여 지역을 기준으로 세분화된 성능 데이터를 제공합니다.
  • 앱 시작 시간, 네트워크 요청 지연 시간 등의 앱 성능 측정항목은 물론 개발자가 지정한 커스텀 trace를 수집하여 앱 성능을 측정합니다.
  • 애플리케이션의 CPU/메모리 사용량을 수집하여 앱 성능의 타임라인 뷰를 제공합니다.
  • 기기 정보, OS 정보, 애플리케이션 정보를 수집하여 다양한 기기 세그먼트를 기준으로 성능 데이터를 필터링합니다.

원격 구성

FirebaseRemoteConfig

항상 수집

  • Firebase 사용자 에이전트를 수집합니다.
  • 이 데이터를 기반으로 하는 매개변수를 타겟팅하기 위해 기기의 국가 코드, 언어 코드, 시간대, OS 버전, Firebase Apple 앱 ID, 번들 ID를 수집합니다. OS 버전과 SDK 버전도 수집 및 집계되어 사용 트렌드를 이해하고 제품 방향을 파악할 수 있습니다.

용도에 따라 다름

원격 구성을 Google 애널리틱스와 함께 사용하는 경우 다음을 수집합니다.

  • 사용자 속성 조건을 기반으로 하는 매개변수를 타겟팅하기 위해 Google 애널리틱스용 Firebase SDK에서 획득한 사용자 속성을 수집합니다.
  • 처음 열 때를 기준으로 매개변수를 타겟팅하기 위해 Google 애널리틱스용 Firebase SDK에서 획득한 first_open 이벤트 타임스탬프를 수집합니다.

원격 구성 맞춤설정을 사용하는 경우:

  • Firebase 원격 구성 SDK에서 얻은 데이터와 Google 애널리틱스용 Firebase SDK에서 얻은 이벤트를 사용하여 예측 모델을 구성하고 이러한 모델의 성능을 측정할 수 있습니다.

Firebase 세션

FirebaseSessions

항상 수집

  • 번들 ID, OS 정보, SDK 버전, 네트워크 연결 유형과 같은 앱 성능에 관한 메타데이터를 수집하여 앱 품질을 모니터링합니다.
  • 세션별로 사용량을 필터링하기 위해 앱이 백그라운드에서 실행된 시간과 같은 사용 데이터를 수집하여 성능 측정항목을 사용자 세션으로 그룹화합니다.

Cloud Storage

FirebaseStorage

항상 수집