[iOS] Firebase 공지를 통해 푸시 알림 보내기

이게 뭐야?


이것은 Firebase의 공고에서 추송 통지를 보낼 때의 필기다.나는 필요한 최소한의 일만 썼다.

운영 환경

  • Xcode 7.3.1
  • Swift 2.2
  • CocoaPods 1.0.0
  • Firebase/Messaging 3.2.0
  • 준비물

  • 구글 계정(계정이 있으면 바로 Firebase를 사용할 수 있음)
  • iOS 실제 컴퓨터(아날로그 불가능)
  • APNS 인증서를 p12 형식으로 내보내는 파일
  • 인증서 작성 방법은 아래 문서를 참조하십시오.
    Provisioning APNs SSL Certificates  |  Firebase

    새 항목 만들기


    ※ 여기서 말하는 항목은 Xcode 항목이 아니라 Firebase 항목입니다.
    Firebase 콘솔을 열고 "새 프로젝트 만들기"를 누르십시오.

    항목 이름 등을 입력하고 [프로젝트 만들기] 를 클릭합니다.

    응용 프로그램의 세부 정보 입력


    프로젝트를 만든 후 "iOS 응용 프로그램에 Firebase 추가"를 누르십시오.

    iOS 응용 프로그램의 번들 ID (예: com.yourapp.ios) 를 입력합니다.App Store ID는 임의입니다.나중에 여기에 저장된 구성 파일(Google Service-Info.plist)이 사용됩니다.

    Xcode를 사용하여 항목 만들기


    Bundle Identifier가 Firebase 콘솔에 입력한 번들 ID와 동일하게 만듭니다.

    프로젝트를 만들면 Xcode가 일시적으로 종료됩니다.

    Firebase SDK 설치


    .xcodeproj 파일이 있는 디렉터리에서 다음 명령을 실행합니다.
    1) pod init
    2) Podfile 편집
    pod 'Firebase/Messaging'
    
    3) pod install
    설치가 완료되면 열기 .xcworkspace.

    푸시 공지 열기


    용량 푸시 공지를 활성화합니다.

    프로필 복사


    방금 만든 구성 파일(Google Service-Ifo.plist)을 프로젝트에 복사합니다.

    구현 코드


    import Firebase.import Firebase그런 다음 AppDelegate에서 호출됩니다FIRApp.configure().공식 문서에는 이것만으로 설치가 끝났다고 쓰여 있지만 왠지 내 환경에서는 순조롭지 못하다.(장치 토큰을 가져올 수 없음)
    ios - Cloud messaging handing terminate app - Stack Overflow
    위의 QA를 참고하여 다음과 같은 설치를 통해 순조롭게 동작합니다.Info.plist의 FirebaseAppDelegateProxyEnabledNO 입니다.
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.
        let notificationSettings = UIUserNotificationSettings(
            forTypes: [.Badge, .Sound, .Alert], categories: nil)
        application.registerUserNotificationSettings(notificationSettings)
        application.registerForRemoteNotifications()
        FIRApp.configure()
        return true
    }
    
    func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {
        if notificationSettings.types != .None {
            application.registerForRemoteNotifications()
        }
    }
    
    func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
        let tokenChars = UnsafePointer<CChar>(deviceToken.bytes)
        var tokenString = ""
    
        for i in 0..<deviceToken.length {
            tokenString += String(format: "%02.2hhx", arguments: [tokenChars[i]])
        }
    
        FIRInstanceID.instanceID().setAPNSToken(deviceToken, type: FIRInstanceIDAPNSTokenType.Unknown)
    }
    

    푸시 알림 보내기


    열기 Firebase 콘솔 방금 만든 항목을 선택하십시오.

    등록증


    항목 설정 화면을 엽니다.

    미리 준비한 p12 파일과 비밀번호를 등록하세요.

    밀어서 보내다


    콘솔 왼쪽의 메뉴에서 공지를 선택하고 첫 번째 메시지 보내기를 클릭합니다.

    메시지 문구 등을 입력하고'메시지 보내기'를 누르십시오.

    순조롭게 통지를 보냈다!

    링크

  • Firebase
  • Send a Notification to a User Segment on iOS  |  Firebase
  • Provisioning APNs SSL Certificates  |  Firebase
  • 좋은 웹페이지 즐겨찾기