우리는 완전히 고물났습니다. 제발 도와주세요.사과 푸시 알림이 프로덕션 환경에서 작동하지 않습니다.
본인과 팀원이 iPhone 응용 프로그램을 만들었으며, iOS를 처음 시도합니다.
우리의 앱을 제출하고 app-store에서 사용할 수있게 될 때까지 모든 것이 정상입니다. 푸시 알림 서비스가 작동하지 않습니다. 웹에서 검색 한 후 사람들의 조언을 통해 앱에 대한 이중 체크를 시도했지만 잘못된 정보를 찾을 수 없었습니다. 그래서이 질문은 여기에 게시됩니다.
이들은
우리가 무슨 짓을했는지 있습니다 : 우리는 응용 프로그램을 빌드, 그것은 "AppMaster"라는 것 같아요.
iOS 프로비저닝 포털에서 AppId를 생성했습니다 : "pushtest". 이 ID는 개발 및 프로덕션 모두에서 푸시 알림을 활성화했습니다.
위의 appId에서 "AppMasterPushTest"라는 개발 용 프로비저닝을 만들었습니다. 이 프로비저닝은 내부 테스트 용으로, 팀원 모두가 Mac에 설치했습니다.
우리 서버는 Java로 구현되었으며 java-apn 패키지를 사용했습니다. 테스트 도중 개발 용 인증 파일을 다운로드하고 .p12 파일을 작성한 다음 패키지의 api - withSandboxDestination()에 해당 .p12 파일을 사용하여 "sandbox"서버에 메시지를 보냈습니다. 테스트가 잘 진행되고 알림이 수신됩니다.
나는 우리가 "AppMaster"라고하는 또 다른 AppId를 만들었고 제작을 위해서만 푸시 알림을 사용할 수 있다고 생각했습니다. 이 ID는 앱의 번들 식별자에 기록됩니다.
"App Store"로 설정된 배포 방법으로 5 단계에서 AppId에서 "appMaster"라는 프로덕션을위한 다른 프로비저닝을 만들었습니다. 그것을 다운로드하고 응용 프로그램을 다시 작성하십시오. 이것은 사과에 제출되었고 app-stroe에서 살아납니다.
서버 측에서 프로덕션 용으로 인증을 다운로드하고 .p12 파일을 다시 작성합니다. .p12가 방금 작성된 api - withProductionDestination()을 사용하여 프로덕션 서버로 메시지를 푸시하도록 프로그램을 만들었습니다.
앱 스토어에서 앱을 설치했습니다. 슬프게도 그 통보는 전달되지 않았습니다.
뭔가 빠졌습니까? BTW, 5 단계에서 생성 한 ID는 "XXX.com.company.appname"과 유사하지만 앱의 번들 식별자에서 접두어없이 "com.company.appname"부분 만 설정합니다. 이것이 문제가 될 수 있습니까?
어떤 아이디어라도 환영합니다.
제발 우리의 보호자하십시오. 감사.
당신이 직접 말했습니다. 푸시 앱 ID와 실제 번들 ID는 동일해야합니다. 인증서에 문제가있을 수도 있습니다. 주 배포 인증서와 푸시 인증서가 동일한 SSH RSA 키 쌍으로 서명되었는지 확인하십시오. –
.p12 파일에서 pem 파일을 만든 다음 PHP를 통해 파일 전송을 시도해 볼 수 있습니까? 여기에 링크가 있습니다 - http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12 –
감사합니다. 앱 ID에 대해서, 나는 Eran이 옳았다 고 생각한다. 우리 서버는 순수한 자바이기 때문에 PHP를 추가하기에는 너무 많은 작업이 필요합니다. –