일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- rxswift
- uiscrollview
- RxCocoa
- swift documentation
- uitableview
- map
- Protocol
- Refactoring
- tableView
- 클린 코드
- HIG
- ios
- 리펙터링
- UITextView
- combine
- Clean Code
- 애니메이션
- collectionview
- Xcode
- swiftUI
- 스위프트
- clean architecture
- Observable
- 리팩토링
- UICollectionView
- 리펙토링
- ribs
- MVVM
- Human interface guide
- SWIFT
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 1. DeepLink (딥 링크) - 앱 푸시, APNs (Apple Push Notification service) 기초 개념 본문
[iOS - swift] 1. DeepLink (딥 링크) - 앱 푸시, APNs (Apple Push Notification service) 기초 개념
jake-kim 2021. 10. 7. 01:411. DeepLink (딥 링크) - 앱 푸시, APNs (Apple Push Notification service ) 개념
2. DeepLink (딥 링크) - URL Scheme, URLComponents, Foreground, Background, Not Running 기초 개념
3. DeepLink (딥 링크) - FCM(Firebase Cloud Messaging) remote 푸시 사용 방법
4. DeepLink (딥 링크) -Dynamic Link (다이나믹 링크) 사용 방법 (Firebase, 공유하기 기능)
5. DeepLink (딥 링크) - URL Scheme과 Dynamick Link를 이용한 딥 링크 처리 방법
cf) Push Notification 처리 관련 메소드 총 정리 글은 이 포스팅 글 참고
iOS에서 앱이 푸시를 원리
- Firebase, braze와 같은 서비스 푸시를 설정하고 사용자에게 푸시를 전송하는 Push Provider들은 곧바로 앱에다가 push정보를 날리지 않고 애플의 APNs(Apple PushNotification service)에다 전송하면 APNs에서 인증 후 앱에 push를 보내는 것
- APNs에서 어떤 디바이스, 어떤 앱인지 주소를 알아야 해당 디바이스, 앱에 push를 전송할 수 있으므로 따로 앱에서 device token을 APNs에 등록 요청 후 Push Provider에도 등록하는 과정이 필요
푸시 구현
1) Xcode에서 Push Notification 기능 활성화
Target > Signing & Capabilities > +Capability > Push Notification
2) APNs에 device token 등록 및 Provider Server에도 생성된 device token 전달
①. App에서 Device token 등록을 APNs에 요청
// AppDelegate.swift
UIApplication.shared.registerForRemoteNotifications()
②. APNs에서 Device token이 등록되면 AppDelegate의 델리게이트 메소드 실행
③. AppDelegate의 델리게이트 메소드 application(_:didRegisterForRemoteNotificationWithDeviceToken) 실행되면 Provider Server에도 받은 device token 전달
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
// Provider Server로 Braze를 사용할 때의 예시
Appboy.sharedInstance()?.registerDeviceToken(deviceToken)
}
3) Push 전송
①. Provider Server에서 사용자에게 특정 push를 보내기 위해 값을 세팅하고 device token을 함께 APNs에 POST로 request
(Provider Server - Braze 솔루션 예시)
②. APNs에서 위 내용을 수신하면, Auth token이나 Provider Server의 Certificate를 인증하고 유효하다면 위에서 등록했었던 device token을 다시 인증 시도 후 response값을 Provider에게 전달
③. 위 2번에서 Response값을 주고난 다음 바로 device token 인증까지 유효하다면 해당 device token에 해당되는 디바이스 앱에 푸시 전송
* 참고
- Registering Your App with APNs: https://developer.apple.com/documentation/usernotifications/registering_your_app_with_apns
- Sending Notification Requests to APNs:
- Handling Notification Responses from APNs: https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/handling_notification_responses_from_apns
- Setting Up a Remote Notification Server: https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server