6

을 정확히 모르는 것을 용서해주십시오. Android 용어입니다. 나는 iOS 배경에서 왔기 때문에 안드로이드 세계에서 두 가지 일을 올바르게 수행하는 방법을 배우려하고 있습니다. 안드로이드 안드로이드 메시지 - 배포본 대 배포

  • 에 대한

    1. 제어 "배지"Development"푸시 알림"Distribution (생산)을 통해를 보냅니다.

  • 다행히 나는 this questionStatus Bar Notifications 감사를 사용하는 것입니다있는 # 1에 대한 답을 발견했다.

    지금 # 2입니다. 이미 GCM 설정이 있으며 등록 된 모든 기기에 알림을 보낼 수 있습니다. 그러나 때로는 모든 사용자의 전화에 알림을 보내고 싶을 때가 있습니다. 때로는 '개발'기기에만 알림을 보낼 수도 있습니다. iOS의 경우 App Store/Ad-Hoc 환경 (Distribution)에서 다운로드 한 장치와 해당 장치에 원본을 준수하는 컴퓨터 (Development)에 물리적으로 연결된 장치로 구별됩니다. Android와 비슷한 기능이 있습니까?

    답변

    7

    Google Cloud Messaging의 개발 및 배포에는 차이가 없습니다. 모든 메시지는 서버에서 동일한 GCM 엔드 포인트로 전송됩니다. 개발 장치와 비 개발 장치를 구별하려면 서버의 DB에서 관리해야합니다 (서버에 저장하는 각 등록 ID에 대해 개발 장치인지 여부를 나타내는 플래그를 추가하십시오) .

    편집 :

    사실이, 당신이 할 수있는 다른 뭔가 잘 모르겠어요 비록 좋은 생각입니다. 앱이 GCM에 등록하면 sender ID (Google API project ID)을 제공합니다. 개발 릴리스 및 프로덕션 릴리스에는 서로 다른 두 가지 project IDs을 사용할 수 있습니다. 등록 과정에서 반환 된 registration IDsproject ID에 연결됩니다. 이제 서버에서 GCM 메시지를 보내면 project ID에 연결된 API key을 사용하여 메시지를 보냅니다. 개발 project ID에 연결된 API key을 사용하는 경우 registration IDs에만 해당되며 project ID에 연결됩니다 (예 : 개발 빌드가있는 기기에서 발생). '프로덕션'으로 메시지를 보내려면 이 표시되고 MismatchSenderId 오류가 발생합니다. 프로덕션 환경에서 샌드 박스 장치 토큰이 유효하지 않은 방식으로 APNS와 유사하며 그 반대의 경우도 마찬가지입니다. 귀하의 논리에 대해 Google의 오류에 의존하고 싶지 않기 때문에 좋은 생각 인 것 같습니다. 클라이언트의 하위 집합에만 메시지를 보내려면 DB에서이 하위 집합을 관리해야합니다.