관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] 1. DeepLink (딥 링크) - 앱 푸시, APNs (Apple Push Notification service) 기초 개념 본문

iOS 응용 (swift)

[iOS - swift] 1. DeepLink (딥 링크) - 앱 푸시, APNs (Apple Push Notification service) 기초 개념

jake-kim 2021. 10. 7. 01:41

1. 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:

https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/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

 

Comments