반응형

요즘 앱이 아닌 웹 위주로 개발을 하다보니 이젠 앱 만드는 법도 가물가물해진 상황에서 늘 그러하듯 애플의 엿같은 인증서 체계로 인해 또한번 골탕을 먹었다.

정확히 하자면 인증서 문제인줄 알고 매번 애매한 오류를 내뱉어 버리는 애플의 푸쉬 인증서 문제인줄 알고 인증서 다 갈아버리고 새로 만들어 돌려도 저렇게 계속 


오류내용 : Error Domain=3000 "응용 프로그램을 위한 aps-environment 인타이틀먼트 문자열을 찾을 수 없습니다.(NSCocoaErrorDomain Code=3000) 라는 오류를 내뱉어 버렸다.

진심 빡친다.

가뜩이나 꽈놓은 인증서 체계인데 도무지 어디서부터 해결을 해야할지....




정말 삥삥 돌아서 얻은 정답


xcode8부터 괴상한 파일 두개가 생겨있다.

이게 또 웃긴게 어떤 프로젝트엔 프로젝트명.entitlements로 하나만 생성되어 있다. 

어처구니 없는 애플짓

내가 만들지도 않았는데 entitlements파일을 재수없어서 일단 삭제 후 다시 만들거나 아니면 복사해서 문자열만 바꾸거나 등등을 해야 하는데

난 깔끔하게 삭제하고 새로 만든다.


만약 없을경우 만드는 방법은 프로젝트를 눌러 나오는 메뉴에서 iCloud나 Push Notifications 등을 설정할 수 있는 capabilities에서 Push Notifications를 보면 이렇게 되어있을것이다. Fix issue를 누르면 앞서 entitlements파일이 생성됨을 알 수 있다.


그리고 편집모드에서 (plist파일처럼) APS Environment을 추가하고 production 으로 넣어준다.



끝으로 Build Settings에 가서 code signing entitlements 부분에 debug와 release에 각각 좀전에 만든 environment를 지정해줘야 오류가 안생긴다.

이부분이 가장 중요하다.

워낙 많은 Setting항목들 때문에 All로 해둔 상태에서만 보이기 때문에 자칫 못찾을 가능성도 존재한다.

루트에 있으면 저렇게 루트 그대로 루트 밑에 다른 폴더에 만들었으면 경로를 적어주면 잘된다.



그리고 빌드하면 예전처럼 오류없이 푸시가 잘 받아진다.


3줄요약

1.Capabilities에서 push notification의 fix issue하자

2.entitlements생기면 value에 production을 입력하고 Build Settings에서 code signing entitlements에 경로 제대로 잡혀있는지 확인

3.망할 애플








반응형
Posted by Hippalus
,