테스터에게 새 빌드에 대해 알립니다.

옵션 중포 기지 앱 배포 iOS 및 Android SDK를 사용하면 새로운 앱 빌드 할 때 테스터의 인앱 경고를 표시 설치할 수 있습니다 할 수 있습니다. 이 가이드는 iOS 및 Android SDK를 생성 할 수있는 응용 프로그램 배포를 사용하고 테스터를위한 새로운 빌드 알림을 사용자 정의하는 방법에 대해 설명합니다.

시작하기 전에

당신이 이미하지 않은 경우, 귀하의 아이폰 OS 프로젝트에 중포 기지를 추가 .

1 단계 : 응용 프로그램 배포 테스터 API를 사용

  1. 에서 프로젝트 선택 Google 클라우드 콘솔 .

  2. 중포 기지 앱 테스터의 API 에서 클릭 활성화 합니다.

2 단계 : 앱에 앱 배포 추가

  1. (또는 실행 프로젝트 생성 Podfile 열고 pod init 를 다음 대상 섹션 내에서 다음 줄을 추가, 하나를 만들 수) :

    pod 'FirebaseAppDistribution'
  2. 당신의 podfile의 디렉토리에서 실행 pod install 후, 생성 된 열 .xcworkspace 의 파일을.

  3. ( 만 아이폰 OS 버전 9 및 10에 필요 )하여 Google 응용 프로그램 ID를 인코딩 :

    귀하의 Google 앱 ID를 인코딩

    추가 appdistribution-<encoded-google-app-id> 당신의 조각 포함하여 URL 방식 의 Info.plist file (참조 애플의 문서 엑스 코드에서 URL 방식을 추가하는 방법에 대한 지침) :

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>appdistribution-<encoded-google-app-id></string>
            </array>
        </dict>
    </array>
    

    그런 다음, (콜론을 대체 : 대시 (함께하여 Google 응용 프로그램 ID를 인코딩 -). 당신의 구글 앱 ID는 당신에 위치하고 있습니다 GoogleService-Info.plist 의 파일입니다. 예를 들어, Google 앱의 ID 인 경우 :

    7:77777777777:ios:123456789

    인코딩 된 Google 앱 ID는 :

    7-77777777777-ios-123456789
  4. 당신의 중포 기지 모듈을 가져 App 의 구조체 또는 UIApplicationDelegate :

    빠른

    import FirebaseCore
    

    오브젝티브-C

    @import FirebaseCore;
    
  5. 구성합니다 FirebaseApp 은 일반적으로 인스턴스를 공유 응용 프로그램 의 초기화 또는 App 대리인의 application(_:didFinishLaunchingWithOptions:) 방법

    빠른

    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    오브젝티브-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  6. 마지막으로, 응용 프로그램을 다시 컴파일.

3 단계 : 구성의 인앱 경고

앱 배포 SDK는 테스터에 - 응용 프로그램 빌드 경고를 설정하는 두 가지 방법을 제공 : 테스터에게 표시 할 사전 구축 된 응용 프로그램 업데이트 및 로그인 대화와 함께 제공되는 기본 경고 구성 및 수있는 고급 경고 구성, 당신은 당신의 자신의 사용자 인터페이스를 사용자 정의합니다. 우리는 당신이 응용 프로그램 배포 SDK를 처음 사용하는 경우 먼저 기본 경고 구성을 사용하는 것이 좋습니다.

기본 구성

사용 checkForUpdate 는 아직 알림을 사용하도록 설정하지 않은 테스터 경고 대화를 가능하게 사전 구축 된 표시 한 다음 새 빌드를 사용할 수 있는지 확인합니다. 라고하면, 방법은 다음과 같은 순서를 제정 :

  1. 테스터가 자신의 Google 계정으로 앱 배포에 로그인을하라는 메시지로 알림을 사용하도록 설정 한 경우를 확인합니다.

  2. 테스터는 아직 경고 표시 미리 빌드 된 대화를 활성화하지 않은 경우.

    알림을 사용하면 앱 업데이트를 통해 테스트 장치와이 지속에 일회성 과정이다. 경고는 두 응용 프로그램이 제거 될 때까지 테스트 장치에서 활성화 상태로 유지, 또는 때까지 signOutTester 의 메서드가 호출됩니다. 메소드의 참조 문서 (참조 스위프트 또는 목표 - C 을 자세한 정보).

  3. 테스터 설치를 위해 새로 사용할 수에 대한 점검 구축합니다.

당신은 호출 할 수 있습니다 checkForUpdate() 를 앱에서 언제든지. 예를 들어, 사용 가능한 새 포함하여 시작시 빌드 설치 테스터 메시지를 표시 할 수 checkForUpdate() 에서 onAppear(perform:) 앱의 루트 뷰의.

그렇다면 테스터 경고를 활성화하고 새로운 빌드에 대한 액세스 권한을 가지고 있으며 여부를 다음의 예를 확인, 표시 빌드가 설치 사용할 수있는 대화 :

빠른

참고 : 이 제품은 맥 OS, 맥 촉매, tvOS 또는 watchOS 대상에 사용할 수 없습니다.
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
  if error != nil {
      // Handle error
      return
  }

  guard let release = release else {
    return
  }

  // Customize your alerts here.
  let title = "New Version Available"
  let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
  let uialert = UIAlertController(title: title,message: message, preferredStyle: .alert)

  uialert.addAction(UIAlertAction(title: "Update", style: UIAlertAction.Style.default) {
    _ in
    UIApplication.shared.open(release.downloadURL)
  })
  uialert.addAction(UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel) {
    _ in
  })

  // self should be a UIViewController.
  self.present(uialert, animated: true, completion: nil)
})

오브젝티브-C

참고 : 이 제품은 맥 OS, 맥 촉매, tvOS 또는 watchOS 대상에 사용할 수 없습니다.
[[FIRAppDistribution appDistribution]
  checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                 NSError *_Nullable error) {
  if (error) {
    // Handle error
    return;
  }

  if (release) {
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"New Version Available"
message:[NSString stringWithFormat:@"Version %@ (%@) is available.", release.displayVersion,
release.buildVersion] preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction *updateAction = [UIAlertAction actionWithTitle:@"Update"
style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
      [[UIApplication sharedApplication] openURL:release.downloadURL options:@{}
completionHandler:nil];
    }];
    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel"
style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {}];
    [alert addAction:updateAction];
    [alert addAction:cancelAction];
    [self presentViewController:alert animated:YES completion:nil];
  }
}];

고급 구성

방법 signInTester()isTesterSignedIn 는 더 나은 앱의 모양과 느낌을 일치시킬 수 있도록하여 테스터의 로그인 경험을 사용자 정의 당신에게 더 많은 유연성을 제공합니다.

당신은 아직 로그인하지 않은 테스터에 대한 귀하의 로그인 UI를 표시하도록 선택할 수 있도록 테스터는 이미 자신의 중포 기지 앱 배포 테스터 계정에 로그인했는지 여부를 다음의 예를 확인합니다. 테스터가 로그인 한 후 다음 수 전화 checkForUpdate() 를 테스터가 새로운 빌드에 액세스 할 수 있는지 여부를 확인합니다.

빠른

참고 : 이 제품은 맥 OS, 맥 촉매, tvOS 또는 watchOS 대상에 사용할 수 없습니다.
// Sign in a tester without automatically checking for update
if (!AppDistribution.appDistribution().isTesterSignedIn) {
  AppDistribution.appDistribution().signInTester (completion: { error in
    // completion block for signInTester
     if (error != nil) {
       // handle failed sign in
      return
     }
    // handle successful sign in
  })
}

// Only check for update if tester is already signed in - do not prompt
if (AppDistribution.appDistribution().isTesterSignedIn) {
  AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
      // completion block for check for update
  })
}

오브젝티브-C

참고 : 이 제품은 맥 OS, 맥 촉매, tvOS 또는 watchOS 대상에 사용할 수 없습니다.
// Sign in a tester without automatically checking for update
if(![[FIRAppDistribution appDistribution] isTesterSignedIn]) {
  [[FIRAppDistribution appDistribution]
    signInTesterWithCompletion:^(NSError *_Nullable error) {
      // completion block for signInTester
     if (error) {
       // handle failed sign in
       return;
     }
      // handle successful sign in
  }];
}

// only check for update if tester is already signed in - do not prompt
if([[FIRAppDistribution appDistribution] isTesterSignedIn]) {
  [[FIRAppDistribution appDistribution]
        checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                       NSError *_Nullable error) {
     // completion block for check for update
  }];
}

비롯한 추가 방법에 대해서는 signOutTester() 에 대한 애플리케이션 배포 참조 문서 참조 스위프트오브젝티브 C 를 .

4 단계 : 빌드 및 테스트 구현을

마지막으로, 응용 프로그램을 구축하여 구현을 테스트 빌드 배포 중포 기지 콘솔을 사용하여 테스터를.

방문 응용 프로그램 배포 문제 해결 가이드 와 같은 일반적인 문제에 대한 도움말을 :

  • 테스터의 인앱 알림을 수신하지
  • 테스터가 한 번 이상 Google에 로그인하라는 메시지가 표시되고