Apple 플랫폼에서 디버그 제공자와 함께 앱 체크 사용

App Check에 앱을 등록한 후 App Check가 일반적으로 유효한 것으로 분류하지 않는 환경의 앱 예를 들어 개발 중 시뮬레이터나 기기, 또는 연속된 통합 (CI) 환경에서 완전 관리형 SDK를 사용하여 실제 증명 제공자 대신 App Check 디버그 제공자를 사용합니다.

개발 시 디버그 제공자 사용

앱을 대화형으로 실행하는 동안(예: 개발 중에) 디버그 제공자를 사용하려면 다음을 수행합니다.

  1. Firebase 백엔드 서비스를 사용하기 전에 디버그 빌드에서 App Check 디버그 제공자 팩토리를 설정합니다.

    Swift

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    Objective-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];
  2. Xcode 프로젝트(v11.0 이상)에서 디버그 로깅을 사용 설정합니다.

    1. Product(제품) > Scheme(스키마) > Edit scheme(스키마 수정)을 엽니다.
    2. 왼쪽 메뉴에서 Run(실행)을 선택한 다음 Arguments(인수) 탭을 선택합니다.
    3. Arguments Passed on Launch(실행 시 인수 전달) 섹션에 -FIRDebugEnabled를 추가합니다.
  3. 앱을 실행합니다. SDK가 백엔드로 요청을 보내려고 하면 로컬 디버그 토큰이 로깅됩니다. 예를 들면 다음과 같습니다.

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. App Check 섹션에서 Firebase 콘솔의 앱 메뉴에서 디버그 토큰 관리를 선택합니다. 더보기 메뉴 그런 다음 이전 단계에서 로깅한 디버그 토큰을 등록합니다.

    디버그 토큰 관리 메뉴 항목 스크린샷

토큰을 등록하면 Firebase 백엔드 서비스에서 토큰을 유효한 것으로 간주합니다.

이 토큰은 유효한 기기 없이도 Firebase 리소스에 액세스를 허용하므로 비공개로 유지하는 것이 중요합니다. GCP에 커밋하지 마세요 등록된 토큰이 손상된 경우 Firebase 콘솔에서 즉시 확인할 수 있습니다.

CI 환경에서 디버그 제공자 사용

지속적 통합(CI) 환경에서 디버그 제공자를 사용하려면 다음 단계를 따르세요.

  1. App Check 섹션에서 Firebase 콘솔의 앱 메뉴에서 디버그 토큰 관리를 선택합니다. 더보기 메뉴 그런 다음 새 디버그 토큰을 만듭니다. 다음 단계에서 토큰이 필요합니다.

    이 토큰은 유효한 기기 없이도 Firebase 리소스에 액세스를 허용하므로 비공개로 유지하는 것이 중요합니다. GCP에 커밋하지 마세요 등록된 토큰이 손상된 경우 Firebase 콘솔에서 즉시 확인할 수 있습니다.

    디버그 토큰 관리 메뉴 항목 스크린샷

  2. 방금 만든 디버그 토큰을 CI 시스템의 보안 키 저장소에 추가합니다(예: GitHub 작업의 암호화된 보안 비밀 또는 Travis CI의 암호화된 변수).

  3. 필요한 경우 CI 환경 내에서 디버그 토큰을 환경 변수로 사용하도록 CI 시스템을 구성합니다. 변수의 이름을 APP_CHECK_DEBUG_TOKEN_FROM_CI와 같이 지정합니다.

  4. Xcode에서 이름이 FIRAAppCheckDebugToken이며 $(APP_CHECK_DEBUG_TOKEN)과 같은 값으로 환경 변수를 테스트 스키마에 추가합니다.

  5. 디버그 토큰을 환경 변수로 전달하도록 CI 테스트 스크립트를 구성합니다. 예를 들면 다음과 같습니다.

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Firebase 백엔드 서비스를 사용하기 전에 디버그 빌드에서 App Check 디버그 제공자 팩토리를 설정합니다.

    Swift

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    Objective-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];

앱이 CI 환경에서 실행되면 Firebase 백엔드 서비스는 전송된 토큰을 유효한 것으로 수락합니다.