답변

10

만료 된 기기 토큰을 한 번도 본 적이 없으므로 개인적인 경험으로 말할 수 없습니다. 그들이 APNS 문서를 여러 번 읽었을 때도 귀하의 질문에 대답하지 않았기 때문에 Apple의 APNS 문서에서 귀하에게 말할 수 없습니다.

귀하의 앱과 서버가 귀하의 질문에 대한 답변에 관계없이 기기 토큰 만료를 처리 할 수 ​​있어야합니다.

  1. 항상 앱이 실행될 때 registerForRemoteNotificationTypes를 호출하고 마지막 장치는 다른의 경우 서버에 장치 토큰을 보내 앱이 해당 장치에있어 토큰.

  2. 앱을 사용하는 각 장치에 다른 고유 식별자를 서버에 할당하십시오. 앱이 해당 식별자를 기기 토큰과 함께 서버에 전송하게합니다. 이렇게하면 기기 토큰이 변경되면 서버가 앱이 설치된 새 기기가 아니라 기존 기기의 새로운 기기 토큰임을 서버에서 알게됩니다.

  3. 다음 # 1 및 # 2는 앱이 최근에 실행 된 각 기기 (사용자의 앱이 최근에 실행되지 않은 기기에서 현재 기기 토큰을 보유하고 있음을 보장합니다. 앱에 대해 많은 것을 신경 써야하므로 푸시 알림을 보내면 어떤 차이가 있는지 확실하지 않습니다.

  4. 이전 장치 토큰에 알림을 보내면 제대로 작동하면 모두 정상입니다. 그렇지 않으면 무효화 된 토큰 오류 응답을 받거나 피드백 서비스에서 해당 장치 토큰을 얻게됩니다. 이 두 경우 중 하나에서 해당 토큰에 대한 알림을 보내지 않아야합니다.

  5. APNS는 만료 된 토큰을 다른 장치에 재사용하지 않을 것이라고 생각하지만, 그렇다면 서버는 # 2에서 제안한 고유 식별자를 사용하여 APNS에서 식별 할 수 있습니다. 이 경우 서버가 다른 장치에만 장치 토큰을 할당하는지 확인하십시오.

+4

이 고유 식별자가 어떻게 유지되고 있습니까? 사용자가 앱을 설치/제거하면이 고유 식별자가 손실됩니다. OS가 업데이트되면이 고유 식별자 (위의 링크에 대한 장치 토큰)가 손실됩니다. 기기에 변경되지 않고이 기기에 고유하게 남아있는 고유 한 키가 기기에 있습니까? – user960567

+0

@ user960567 고유 식별자는 앱을 제거 할 때 지워지지 않고 다시 설치 될 때 다시 사용할 수있는 외부 저장소에 저장해야합니다 (Android에서는 가능하지만 iOS는 알 수 없음). 나는 애플이 당신이 장치의 유일한 키를 사용할 수 있다고 생각하지 않는다. – Eran

+0

Android에서이 작업을 수행하는 방법은 무엇입니까? – user960567

관련 문제