iOS의 Google 프로젝트에서 이전

Google은 Google I/O 2016에서 모바일 앱 제작을 위한 새 도구인 Firebase를 발표했습니다. Firebase는 기존의 여러 Google 개발자 기술을 대체할 뿐 아니라 많은 새 서비스를 추가합니다. 이 가이드에서는 기존 설정 도구 또는 Google API 콘솔을 사용하여 만든 프로젝트에서 앱을 업데이트하는 과정을 안내합니다.

Firebase의 자세한 내용은 문서를 참조하세요. 기존 Firebase.com 프로젝트에서 업그레이드하는 경우 업그레이드 가이드를 참조하세요. 이전하는 데 문제가 있으면 개발자 지원에 문의하시기 바랍니다.

콘솔 프로젝트 이전

Firebase는 하나의 구성 파일을 통해 모든 API 설정 및 사용자 인증 정보를 관리합니다. 이 파일의 이름은 Android에서는 google-services.json이고 iOS에서는 GoogleService-Info.plist입니다. 다음 단계를 따라 다운로드할 수 있습니다.
  • Firebase 콘솔로 이동하고 프로젝트 추가를 선택합니다.
  • 기존 프로젝트를 선택합니다.
  • 앱 초대도구를 사용하는 경우 동적 링크 패널을 선택하고 경고를 허용합니다. 이렇게 하여 Firebase 초대를 사용합니다.
  • Firebase에서 다음과 같이 프로젝트를 구성합니다.
    1. 왼쪽 메뉴에서 톱니바퀴 아이콘을 클릭하고 프로젝트 설정을 클릭합니다.
    2. 각 iOS 앱의 경우 각 앱을 선택하고 App Store ID팀 ID를 추가합니다.
    3. 프로젝트의 각 앱의 경우 Firebase 콘솔에서 google-service.json 또는 GoogleService-Info.plist 파일을 다운로드합니다. 여기에는 Google 애널리틱스, 클라우드 메시징, Google 로그인의 필수 정보가 포함됩니다.

Cocoapods 구성 업데이트

대부분의 서비스는 Google 포드에서 Firebase 포드로 이동하지만 Google/SignInGoogle/Analytics는 그대로입니다. 다음과 같이 podfile을 업데이트해야 합니다.

이전 종속 항목 새 종속 항목
Google/Core pod 'Firebase/Core'
Google/SignIn Google/SignIn
Google/Analytics Google/Analytics
Google/CloudMessaging pod 'Firebase/Messaging'
Google/AppInvite pod 'Firebase/Invites'
Google/AdMob pod 'Firebase/AdMob'

Firebase SDK 구성

AppDelegate에서 사용된 구성 코드를 Google 포드 버전에서 Firebase 포드 버전으로 업데이트해야 합니다. 업데이트하면 Firebase 및 Google 포드 라이브러리가 둘 다 구성됩니다.

이전
  1. Firebase 헤더 파일을 가져옵니다.

    Swift

    
    // In Bridging header.
    #import <Google/YOUR_SERVICE.h>
    

    Objective-C

    
    #import <Google/YOUR_SERVICE.h>
    
  2. Swift

    
    var configureError:NSError?
    GGLContext.sharedInstance().configureWithError(&configureError)
    assert(configureError == nil, "Error configuring Google services: \(configureError)")
    

    Objective-C

    
    NSError* configureError;
    [[GGLContext sharedInstance] configureWithError:&configureError];
    NSAssert(!configureError, @"Error configuring Google services: %@", configureError);
    
이후
  1. UIApplicationDelegate에서 Firebase 모듈을 가져옵니다.

    Swift

    
    import Firebase
    

    Objective-C

    
    @import Firebase;
    
  2. 일반적으로 애플리케이션의 application:didFinishLaunchingWithOptions: 메소드에서 FirebaseApp 공유 인스턴스를 구성합니다.

    Swift

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

    Objective-C

    
    // Use Firebase library to configure APIs
    [FIRApp configure];
    

앱 초대도구를 Firebase 초대로 업그레이드

Podfile을 업데이트합니다.

이전

pod 'Google/AppInvite'
이후

pod 'Firebase/Invites'

초대 수신 코드 업데이트

application:didFinishLaunchingWithOptions 메소드의 AppDelegate에서

이전

Swift


GINInvite.applicationDidFinishLaunching()

Objective-C


  [GINInvite applicationDidFinishLaunching];
이후

Swift


FIRInvites.applicationDidFinishLaunchingWithOptions(launchOptions)

Objective-C


  [FIRInvites applicationDidFinishLaunchingWithOptions:launchOptions];

application:openURL:sourceApplication:annotation: 메소드의 AppDelegate에서

이전

Swift


 let invite = GINInvite.handleURL(url, sourceApplication:sourceApplication, annotation:annotation)

      if (invite != nil) {
        GINInvite.completeInvitation()
        let matchType =
            (invite.matchType == GINReceivedInviteMatchType.Weak) ? "Weak" : "Strong"
         // ... process invite.

Objective-C


GINReceivedInvite *invite = [GINInvite handleURL:url
                                 sourceApplication:sourceApplication
                                        annotation:annotation];
  if (invite) {
    [GINInvite completeInvitation];
    NSString *matchType =
        (invite.matchType == kGINReceivedInviteMatchTypeWeak) ? @"Weak" : @"Strong";
    // ... process invite
이후

Swift


if let invite = FIRInvites.handleURL(url, sourceApplication:sourceApplication, annotation:annotation) as? FIRReceivedInvite {
        let matchType =
            (invite.matchType == FIRReceivedInviteMatchType.Weak) ? "Weak" : "Strong"
            // ... process invite

Objective-C


FIRReceivedInvite *invite =
      [FIRInvites handleURL:url sourceApplication:sourceApplication annotation:annotation];
  if (invite) {
    NSString *matchType =
        (invite.matchType == FIRReceivedInviteMatchTypeWeak) ? @"Weak" : @"Strong";
    // ... process invite.
  }

초대 전송 코드 업데이트

UIViewController 구현 프로토콜 업데이트

이전

GINInviteDelegate
이후

FIRInviteDelegate

실제 콜백 메소드는 그대로입니다.

초대 보내기

이전

Swift


GINInvite.inviteDialog()

Objective-C


[GINInvite inviteDialog];
이후

Swift


FIRInvites.inviteDialog()

Objective-C


[FIRInvites inviteDialog];

Google의 AdMob 업그레이드

CocoaPods 종속 항목 업데이트

이전

pod 'Google/AdMob'
이후

pod 'Firebase/AdMob'

코드 변경도 필요하지 않습니다.

Google 클라우드 메시징(GCM)을 Firebase 클라우드 메시징(FCM)으로 업그레이드

기존 GCM 통합을 계속 사용해도 되지만 알림 작성기 GUI를 활용하려면 FCM으로 업데이트해야 합니다. FCM을 사용하려면 iOS GCM 앱 업그레이드에 대한 전체 가이드를 참조하세요.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.