아이폰 어플리케이션을 개발하는데 있어서 Push Notification 기능을 개발하기 위해서는 애플 개발자 계정을 등록하고, Provisioning 파일을 받아야 한다. 이때 참고한 사이트는 아래와 같다.


그런데 위 두 포스트에 자세히 설명되어 있는대로 그대로 따라서 했으나, device token을 계속해서 받아오지 못하는 것이다! 


Error: Error Domain=NSCocoaErrorDomain Code=3000 "응용 프로그램에 대해 발견된 'aps-environment' 인타이틀먼트 문자열 없음"


이라는 오류가 나왔는데 구글링을 해보니, 이는 프로비저닝 파일이 잘못되었기 때문이니 프로비저닝 파일을 지우고 다시 다운로드 해보라는 답들을 얻었다. 이러한 답을 얻은 곳들 중 대표적인 사이트는 아래와 같다.


http://blog.jidolstar.com/725


그런데 프로비저닝 파일을 지우고 다시 설치하기를 4~5번을 해도 같은 에러만 반복해서 나오고 device token은 받아오지 못한다. 빡쳐서 인증서까지 싹 다 지우고 처음부터 다시 하기도 3번 정도 반복했는데도 같은 에러... 인내심의 한계를 느끼며 좌절하다가 주말을 보내고 나서 상쾌한 마음으로 월요일 아침 출근! 역시 산틋한 마음으로 살펴봐서 그런지 문제를 드디어 해결했다.



1) App IDs를 생성할 때 Bundle Identifier (App ID Suffix) 를 입력하는 곳이 있다. 애플에서는 예로 com.domain.appname을 들어줬는데, 이때 domain부분과 appname 부분을 그냥 꼴리는대로 입력하면 안 되고, 잘 입력해야 한다.


2) xcode의 좌측 메뉴에서 프로젝트를 클릭해보면 Summary를 볼 수 있다. 여기에서 Bundle Identifier가 있는데 이를 위에서 생성한 App IDs의 Bundle Identifier와 동일하게 입력해준다.(만약 수정이 불가하게 되어있다면, 이에 맞추어 App IDs를 다시 생성해야겠지?)


3) xcode에서 summary 옆옆에 있는 Build Settings를 클릭하여 검색창에서 Code Signing을 검색해보면 해당 부분이 나온다. 이 부분에서 Code Signing Identity를 비롯한 아래에 선택할 수 있는 부분들을 자기가 받았던 프로비저닝으로 잘 선택이 되어있는지 확인하고, 잘 되어있지 않다면 제대로 선택해준다.



이 3단계를 거치니깐 드디어 device token 을 받아오게 되었다. 


이제 device token을 받아왔으니 본격적으로 push 기능 개발 고고싱!