[iOS] Firebase 공지를 통해 푸시 알림 보내기
이게 뭐야?
이것은 Firebase의 공고에서 추송 통지를 보낼 때의 필기다.나는 필요한 최소한의 일만 썼다.
운영 환경
준비물
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의 FirebaseAppDelegateProxyEnabled
는 NO
입니다.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 파일과 비밀번호를 등록하세요.
밀어서 보내다
콘솔 왼쪽의 메뉴에서 공지를 선택하고 첫 번째 메시지 보내기를 클릭합니다.
메시지 문구 등을 입력하고'메시지 보내기'를 누르십시오.
순조롭게 통지를 보냈다!
링크
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의
FirebaseAppDelegateProxyEnabled
는 NO
입니다.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 파일과 비밀번호를 등록하세요.
밀어서 보내다
콘솔 왼쪽의 메뉴에서 공지를 선택하고 첫 번째 메시지 보내기를 클릭합니다.
메시지 문구 등을 입력하고'메시지 보내기'를 누르십시오.
순조롭게 통지를 보냈다!
링크
Reference
이 문제에 관하여([iOS] Firebase 공지를 통해 푸시 알림 보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koogawa/items/ca8cce019b4ff7ce2576텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)