출처 : http://cafe.naver.com/appforge/811

 

APNS(Apple Push Notification Service) 개발시 유의 사항을 정리해 봅니다.

알고보면 별 시덥잖은 내용인데... 첨 할땐 엄청 삽질합니다. (물론 제가 삽질을 즐거하는 편이기도 하지많서도...)

1. APNS는 두 가지 타입을 제공합니다. (개발용, 배포용)

2. 물론 디바이스에서만 확인 가능합니다.

3. 각 디바이스는 고유의 ID외에 토크값을 가지고 있습니다. 이 토크값을 가지고 애플 APNS 서버에 전달하면 해당 디바이스로
    메시지가 전달됩니다.
   (여기서 유의사항... 배포용으로 빌드 했을 때와 개발용으로 빌드 했을 때의 토큰 값이 다릅니다! 요건 꼭 유의하세요.)

4. APNS 기능을 사용할 때 일반적으로 자체 서버를 이용합니다. 앱을 실행하는 사용자의 토큰 값을 DB에 저장해 두고...
서버의 (웹)프로그램이 DB를 읽어서 보낼 토큰 값을 가져오고 루프를 돌면서 전달할 메시지를 보냅니다.
(메시지를 보내는 대상은 애플 서버랍니다. 요건 주소가 정해져 있어요... 정해진 서버로, 정해진 포맷의 데이터를 쏩니다.)

5. 개발용 APNS 서버 주소 : ssl://gateway.sandbox.push.apple.com:2195
    배포용 APNS 서버 주소 : ssl://gateway.push.apple.com:2195

6. APNS를 처리하기 위한 서버용 코드는 인터넷에 굴러다닙니다. 참고하시고...
   (PHP, Java, ASP.NET 용이 있구요... asp 용은 못 봤습니다.)

7. 처음 할 때 가장 어려운 부분이 인증서 만드는 부분입니다. 이 인증서 역시 개발용, 배포용 두 가지가 있습니다.
   만드는 방법은 추후 정리를 해볼까 합니다. 여기서 주의 사항은 인증서를 새로 만들었다거나 변경했으면...
   반드시 Provisioning Profile을 새로 갱신해야 합니다.
   (요것 때매 삽질 좀 했음...)

8. 그리고!!! 서버단에서는 애플 서버로 데이터를 보낼 때 커넥션을 맺은 후 많은량의 데이터를 한번에 보낼 수 없습니다.
   확실치는 않으나... 테스트를 해본바로는 140명에게 메시지를 보내니깐 연결이 끊겨버립니다.
  (커넥션 타임아웃 등 설정 값의 차이가 있을 수 있습니다...)
  결론은 일정 단위로 끊어서 데이터를 보내고... 다시 접속 해서 보내고... 요런 과정을 거쳐야 합니다.
 
9. 배포용 버전은 AdHoc 버전을 만들어서 확인하시면 됩니다. 개발 버전은 디바이스에 올려서 바로 확인 가능합니다.

10. 마지막으로 웹 프로그램을 직접하지 않는다면... 똑똑한 개발자를 구하십시요!!!

+ Recent posts