2011-11-08 2 views
3

먼저 몇 시간 동안 해결책을 찾기 위해 검색을 해왔다고합니다. 나는 이것에 관한 거의 모든 의문문을 읽었으며 어떤 해결책도 효과가 없었다. 필자는이 주제에 대한 공식 사과 문서와 몇 가지 다른 자습서도 읽었습니다. 기본적으로 나는 이것을 (샌드 박스 등이 아닌) 확실한 제안을 피하기 위해 말하고있다.iOS 푸시 알림은 dev에서 작동하지만 찌르지는 않습니다.

프로비저닝 포털에서 내 응용 프로그램에 대한 dev 및 prod 푸시 알림 인증서가 있습니다. 나는 dev와 proem 파일을 만들기위한 단계를 따랐다.

dev 및 ad hoc 배포 프로비저닝 프로파일이 모두이 응용 프로그램에 연결되어 있습니다.

개발자 프로필을 사용하여 xcode에서 장치로 직접 빌드하거나 임시 배포 프로필을 사용하여 패키지를 만들 수 있습니다. 그런 다음 베타 빌더를 사용하여 장치에 설치합니다.

직접 개발자 프로필을 만들거나 (베타 빌더를 통해) 임시 프로필을 사용하여 샌드 박스 + dev pem 파일을 사용할 때 밀어 넣기 알림이 작동합니다. 그러나 prod 서버 + prod pem 파일을 사용하여 테스트하자 마자 푸시 알림이 전송되지 않습니다.

저는 테스트 용으로 두 개의 PHP 스크립트가 있습니다. 하나는 dev 용이고 하나는 prod 용입니다. 서버 url (sandbox와 sandbox는 제외)과 참조되는 pem 파일 (dev 또는 prod)을 제외하고는 본질적으로 동일합니다.

임시 빌드를 사용하더라도 샌드 박스와 devpem을 사용하여 푸시 알림을 보낼 수 있다는 것이 이상한 일입니다.

dev에서 prod로 갈 때 내가해야 할 것이 있습니까? 나는이 시점에서 모든 것을 시도한 것처럼 느낍니다. 인증서와 프로필을 여러 번 다시 생성했습니다. 나는 거의 동일한 절차를 거쳐 dev를 생성하고 pem 파일과 php 스크립트를 만들었고 거의 동일했다 (prod와 dev).

이 문제가 서버 문제인지 클라이언트 (앱) 문제인지 잘 모르겠습니까? 내가 잊어 버린 곳이 있을까?

나를 미치게하기 시작하면서 누군가가 이것에 관해 밝힐 수 있기를 바랍니다.

건배.

답변

11

음, 문제가 발견되었습니다. 제 마지막에는 바보 같은 실수였습니다. 다른 사람이 실수 한 경우를 대비하여 여기에서 공유 할 것입니다.

내가 알지 못했던 핵심은 장치 토큰이 dev와 prod (동일한 장치의 경우)에 다르다는 것입니다. 내가 dev에 테스트 할 때 가지고있는 장치 토큰을 사용하고 있었다. 이것은 dev에서 잘 동작했지만, 내가 prod로 바꿨을 때 나는 php 스크립트에 동일한 장치 토큰을 유지했다. (틀린 것으로 가정하면, 장치 토큰은 같은 장치에 대해 동일 할 것이다.) 그러나 prod에 등록 된 실제 장치 토큰은 다른.

실제로 장치 토큰이 서버로 보내지기 때문에 이런 일은 일어나지 않을 것입니다.하지만 테스트 할 때 서버를 포함시키지 않으려 고 하드 코딩 된 장치 토큰을 사용하고있었습니다.

이렇게하면 누군가에게 불편을 덜어주기를 바랍니다.

+0

저는 지금 당장이 문제에 시달리고 있습니다. Dev 프로젝트에서 push notifs가 작동하는 프로젝트에 들어 왔지만 이제 AppStore에서 승인 된 애플리케이션을 얻었습니다. 이제는 더 이상 작동하지 않습니다. AppID는 전 세계 모든 사용자에게 동일합니까? 아니면 휴대 전화에서 생성되어 기기와 구체적으로 일치하는 항목입니까? –

0

내게 유사한 문제가 발생합니다. 기존의 앱에 푸시 알림을 추가하고 Xcode를 내 장치에서 실행하여 테스트 한 결과 제대로 작동했지만 iTunes를 통해 아카이브를 만들고 설치하면 푸시 알림을받지 못했습니다. . 푸시 알림에 대한 권한을 추가 할 때 프로비저닝 프로파일이 쓸모 없게 되었기 때문에 새로운 프로비저닝 프로파일을 생성하고 iTunes/phone에 적용해야합니다. 이제 앱을 설치할 때 제대로 작동합니다. .