iOS 13용 Azure Notification Hubs 업데이트
게시된 날짜: 10월 21, 2019
Apple은 최근 자사의 퍼블릭 푸시 서비스를 업데이트했으며, 이로 인해 Azure Notification Hubs 고객에게 영향이 미치게 되었습니다. 이 변경 사항이 Azure Notification Hubs에 미치는 영향을 자세히 알아보세요. 구체적으로 보면, Apple은 이제 개발자가 APNS API의 새로운 ‘apns-push-type’ 헤더를 통해 알림을 경고와 백그라운드 알림 중 하나로 식별할 것을 요구합니다.
Apple의 설명서에 따르면 “이 헤더의 값은 알림 페이로드의 콘텐츠를 정확하게 반영해야 합니다. 불일치가 존재하거나 요구되는 시스템에서 헤더가 누락된 경우 APN이 오류를 반환하거나 알림의 배달을 지연시키거나 알림을 아예 전달하지 않을 수 있습니다.”
이제부터 개발자들은 Azure Notification Hubs를 통해 알림을 전송하는 애플리케이션에서 이 헤더를 설정해야 합니다. 기술 제한으로 인해, 고객은 이 특성을 포함하는 요청에서 APNS 자격 증명으로 토큰 기반 인증을 사용해야 합니다. APNS 자격 증명으로 인증서 기반 인증을 사용하는 경우 토큰 기반 인증을 사용해야 합니다.
이번 전환을 지원하기 위해 Azure Notification Hubs에서 apns-push-type이 설정되지 않은 알림을 감지하면 서비스가 알림 요청으로부터 푸시 유형을 유추하여 자동으로 값을 설정합니다. 필수 헤더를 설정하려면 토큰 기반 인증을 사용하도록 Azure Notification Hubs를 구성해야 한다는 사실을 기억하세요. 자세한 내용은 APNS에 대한 토큰 기반(HTTP/2) 인증을 참조하세요.
그 밖에도 사소하긴 하지만 알림을 전송하는 백엔드 애플리케이션을 변경해야 하는 변경 사항이 있습니다. 바로 백그라운드 알림에 대해서는 apns-priority 헤더가 5로 설정되어야 한다는 요구 사항입니다. 많은 애플리케이션에서 apns-priority 헤더를 ‘즉시 전송’을 나타내는 10으로 설정하거나 아무 값으로도 설정하지 않아서 기본값인 10이 사용되도록 합니다. 앞으로는 더 이상 백그라운드 알림에 대해 아무 값도 설정하지 않는 것이 허용되지 않습니다. 이 값이 누락되어 있는 경우 Apple이 백그라운드 알림을 전송하지 않으므로 각 요청에 대해 값을 설정해야 합니다.
지금까지 수년 동안 iOS 개발자들은 백엔드 애플리케이션이 디바이스에 알림을 보내는 데 사용하는 푸시 토큰을 추출하기 위해 푸시 토큰 대리자로 전송된 deviceToken 데이터의 설명 특성을 사용해 왔습니다. Xcode 11부터 이 설명 특성이 다른 형식으로 변경되었습니다. 개발자들이 이를 위해 사용하던 기존 코드는 이제 작동하지 않습니다. Azure Notification Hubs SDK가 이 변경 사항을 수용하여 업데이트되었으니 애플리케이션에서 사용하는 SDK를 Azure Notification Hubs iOS SDK의 버전 2.0.4 이상으로 업데이트하시기 바랍니다.