0

Google의 앱에서 iOS 푸시 알림 용 프로덕션 인증서를 사용 중입니다.iOS 푸시 인증서가 '아니오'인 이유가 없음

우리는 푸시가 작동하는 몇 차례의 단계를 거쳤으며 그 다음에 작업을 중단합니다. 종종 "작동 중지"는 일부 서버 장애와 관련이 있습니다. 그러나 우리가 사용하고있는 서버는 certs를 만들 때 생성 된 p12와 동일한 p12를 여전히 고소하고 있다고 말합니다. 그러나 그들은 Apple에서 오류 코드 8을 얻고 있습니다. 이는 invalide 토큰임을 의미합니다.

나는 certs를 재생성하고 프로필/식별자가 서버의 p12를 다시로드하고 모든 것이 정상적으로 작동합니다 ... 잠시 동안. 그렇다면 그들은 마술처럼 "오류 코드 8"을 받기 시작하고 다시 시작해야합니다.

오늘 우리 앱의 이전 빌드가 잘 작동하지만 현재 빌드가 작동하지 않는 것으로 나타났습니다. 둘 다 동일한 프로비저닝 프로파일 및/또는 엔터프라이즈 배포 프로파일을 사용하여 제작되었으며, 둘 다 앱 ID에 동일한 인증서를 사용하고 있었으며 둘 다 정보 용으로 TestFlight에로드되었고 동일한 푸시 관련 코드가 포함되어있었습니다.

이상한 점은 오래된 빌드를 사용할 때 4xxxxx ... 장치 토큰 (일관되게 동일한 것)을 얻었고 새 빌드를 사용할 때 일관되게 5xxxxx ... 장치 토큰을 애플 (일관되게 동일).

이전 빌드가 5xxxx ... 장치 토큰을 얻고 있다는 사실을 알고 있습니다. 이전에 상당히 일관되게 확인했기 때문입니다.

그러나 테스터 중 일부는 기기가 있다고 말하기보다 장치 토큰을 많이 등록했기 때문에이 문제가 오랜 시간 지속될 수 있었고 실수로 다른 문제라고 생각했습니다.

장치 토큰의 일관성은 다르지만 다른 번호의 원인은 무엇입니까?

장치 토큰의 구조는 무엇입니까?

정확히 동일한 프로필/식별자가 정확히 동일한 푸시 인증서에 대해 작동을 멈추게하는 이유는 누구나 알 수 있습니까?

감사합니다.

답변

0

장치 토큰이 거의 변경되지 않습니다. iOS 버전을 업그레이드하거나 백업에서 기기를 복원 할 때 변경 사항을 알고있는 유일한 사례가 있습니다. 따라서 서로 다른 빌드에 대해 동일한 장치에 대해 서로 다른 토큰을 얻는 사실은 빌드 중 하나가 샌드 박스 인증서를 사용하고 다른 하나가 프로덕션 인증서를 사용한다는 것을 의미합니다. 내가 생각할 수있는 유일한 다른 설명은 이전 빌드를 테스트하기 위해 장치를 백업에서 복원하여 장치 토큰을 변경한다는 것입니다.

문제 설명에서 DB에 샌드 박스 장치 토큰과 프로덕션 장치 토큰이 혼합되어있는 것 같습니다. 그들은 잘 섞이지 않는다. 생산 환경에서는 샌드 박스 토큰이 유효하지 않으며 반대의 경우도 마찬가지입니다.

DB를 지우고 사용자로부터 장치 토큰을 수집하기 시작해야합니다. 그렇지 않으면 유효하지 않은 토큰 응답을 발생시키는 모든 토큰을 찾아 삭제해야합니다. 애플의 Technical Note에서

:

가장 일반적인 문제는 잘못된 장치 토큰입니다.토큰이 개발 빌드를 집에서 테스트하는 경우와 같이 샌드 박스 환경에서 으로 제공된 경우 프로덕션 푸시 서비스로 보낼 수 없습니다. 각 푸시 환경은 동일한 장치 또는 컴퓨터에 대해 다른 토큰을 발행합니다. 기기 토큰을 잘못된 환경으로 보내면 푸시 서비스에 잘못된 토큰으로 표시되고 알림을 무시합니다.

참고 : 장치 토큰을 잘못된 환경으로 보내는 문제를 피하려면 각 푸시 환경에 공급자의 별도 인스턴스를 실행하는 것이 좋습니다.

관련 문제