APN Device Token은 각 앱마다 고유합니까?
iTunes 스토어에 두 개의 앱이 있습니다. 둘 다 푸시 알림을 구현합니다.이러한 프로덕션 앱에 알림을 보내는 것을 테스트하던 중 A 앱을 위한 푸시 제목이 지정되어 B 앱을 열었다는 것을 알게 되었습니다.
이 두 앱은 모두 같은 전화기에 설치되어 있습니다.장치 표를 보니 두 앱에 대해 나열된 장치 토큰(및 물론 장치 ID)이 모두 동일합니다.
필요에 따라 서버에서 각 앱에 하나씩 두 개의 서로 다른 인증서를 사용하고 있습니다.저는 토큰이나 인증서 장치가 올바른 앱으로 메시지를 전달할 것이라고 생각했지만 분명히 그렇지 않습니다.
NSLog에서 각 앱에서 전송되는 토큰이 실제로 동일하다는 것을 확인할 수 있습니다.
장치 토큰은 각 앱마다 고유해야 합니까?만약 그렇다면, 내 테스트 폰이 어떻게 두 앱 모두에 대해 동일한 장치 토큰을 내 서버로 보낼 수 있는지 알고 싶습니다.이것은 현재 앱 스토어에 있는 두 개의 앱에서 나온 것임을 명심하세요.
도와주셔서 감사합니다!
메모이것은 iOS <= 6에 대해서만 해당되는 오래된 답변입니다.현재 접근법은 사용자 1641761의 답변을 참조하십시오.
알았어요.단말기 토큰은 전화 앱 쌍에 고유하지 않습니다.전화기에만 고유합니다.동일한 전화기에서 푸시 기능이 있는 앱이 여러 개 있는 경우 모두 동일한 장치 토큰을 사용합니다.알림을 보내는 데 사용하는 인증서는 알림이 어떤 앱으로 이동하는지를 결정합니다.
iOS 7은 이를 다르게 처리합니다.그것은 이제 독특합니다.
이 기사의 포인트 1을 참조하십시오. http://urbanairship.com/blog/2013/10/03/how-ios-7-handles-push-differently
"iOS 7 이전에는 장치 토큰이 특정 장치의 모든 앱 설치에서 동일했습니다.Tap Tap Reverse 또는 USA Today와 같은 전화기의 다른 앱은 동일한 주소(즉, 장치 토큰)를 사용하여 푸시 알림을 전달합니다.메시지와 쌍을 이루는 보안 자격 증명을 사용하면 올바른 앱에 도달할 수 있습니다.iOS 7에서 Apple은 한 걸음 더 나아가 모든 앱 설치에서 장치 토큰이 서로 다르다는 것을 확인했습니다.이렇게 하면 다른 전화 수준 식별자를 제거하여 사용자의 개인 정보를 더욱 보호할 수 있습니다."
참고 항목ios 7 디바이스 토큰은 동일한 디바이스에 대해 다릅니다.
Apple Developers의 이해와 몇 가지 답변을 공유합니다.
- 장치 토큰
- 장치 토큰은 장치의 고유 식별자입니다.
- APN은 고유한 장치 인증서를 사용하여 장치 토큰을 생성합니다(프로비저닝 프로파일을 사용할 수 있음).
- 장치 토큰이 변경될 수 있습니다.따라서 매번 업데이트된 장치 토큰을 서버로 전송해야 합니다.
- 장치 토큰은 장치의 모든 앱에 대해 동일합니다.
- 장치별로 다르며 앱별로 다릅니다.
- 장치 토큰은 샌드박스와 프로덕션에 따라 다를 수 있습니다.
- 프로비저닝 프로파일(샌드박스 또는 프로덕션)에 따라 APN은 샌드박스 및 프로덕션용으로 동일한 디바이스에 대해 서로 다른 디바이스 토큰을 생성할 수 있습니다.
- 그렇다면 푸시 알림은 기기에서 어떻게 차별화됩니까?어떤 앱입니까?
- 서버에 설치된 앱 식별자와 SSL 인증서를 기반으로 이 작업을 수행합니다(알림을 APN 서버에 푸시하는 데 사용).
- 레퍼런스
즉, Apple은 APToken이 적합하다고 판단되는 기기를 변경할 권리가 있으므로 기기/사용자를 고유하게 식별하는 데 사용하지 마십시오.
푸시 알림을 위한 장치 토큰은 앱마다 다릅니다.장치별이 아닙니다. 즉, 장치 토큰은 동일한 장치에 있는 여러 앱에 대해 서로 다르고 고유합니다.
사과에 따르면,
원격 알림을 지원함으로써 앱이 실행되지 않는 경우에도 앱 사용자에게 최신 정보를 제공할 수 있습니다.원격 알림을 수신하고 처리하려면 앱에서 다음 작업을 수행해야 합니다.
원격 통보를 사용합니다.
APN(Apple Push Notification) 서비스에 등록하고 앱별 장치 토큰을 받습니다.
장치 토큰을 알림 공급자 서버로 보냅니다.
수신되는 원격 알림 처리 지원을 구현합니다.
앱별 장치 토큰은 전역적으로 고유하며 하나의 앱-장치 조합을 식별합니다.앱에서 APN으로부터 장치 토큰을 받으면 공급자에 대한 네트워크 연결을 여는 것은 사용자의 책임입니다.앱에서 제공자에게 보낼 다른 관련 데이터와 함께 장치 토큰을 전달하는 것도 사용자의 책임입니다.공급자는 나중에 원격 통보 요청을 APN으로 보낼 때 통보 페이로드와 함께 장치 토큰을 포함해야 합니다.이에 대한 자세한 내용은 APN 개요를 참조하십시오.
앱에서 장치 토큰을 캐시하지 마십시오. 대신 필요할 때 시스템에서 토큰을 가져옵니다.APN은 특정 이벤트가 발생하면 앱에 새 장치 토큰을 발급합니다.예를 들어 사용자가 백업에서 장치를 복원할 때, 사용자가 새 장치에 앱을 설치할 때, 사용자가 운영 체제를 다시 설치할 때 장치 토큰은 서로 다를 수 있습니다.캐시에 의존하지 않고 토큰을 가져오면 공급자가 APN과 통신하는 데 필요한 현재 장치 토큰이 확보됩니다.장치 토큰을 가져오려고 하지만 토큰이 변경되지 않으면 가져오기 방법이 빠르게 반환됩니다.
로컬 및 원격 알림 프로그래밍 가이드에서 애플 문서를 참조할 수 있습니다.
토큰을 고유 식별자로 사용할 수는 없지만 키젠에서 저장(아이템의 도움말)을 사용하여 이전 토큰을 제거하고 이전 토큰을 삭제하고 데이터베이스에 새 토큰을 추가할 수 있습니다.
언급URL : https://stackoverflow.com/questions/2338267/is-the-apn-device-token-unique-to-each-individual-app
'programing' 카테고리의 다른 글
'Entries' 속성이 'ObjectConstructor' 유형에 없습니다. (0) | 2023.08.10 |
---|---|
JQuery UI 대화 상자의 내용에 맞게 자동으로 확장 또는 축소 (0) | 2023.08.10 |
Angular 9 + CLI(TypeScript) - .spec.ts 테스트 파일 생성을 중지하는 방법 (0) | 2023.08.10 |
.net 응용 프로그램이 사용자 입력을 통해 SQL 쿼리를 수락하지 않는 이유는 무엇입니까? (0) | 2023.08.10 |
iPhone 브라우저암호 첫 글자 필드에 대해 대문자로 기본 설정 (0) | 2023.08.10 |