Swifter {Swift Developer}

메뉴

Xcode8에서 APNs의 Entitlements 설정 필수

Xcode8과 Swift 3.0기반으로 코드를 변환작업을 끝낸 앱을 빌드하여 제출하였는데 Apple로부터 아래와 같은 이메일로 편지가 왔다.  아마도 Privacy쪽 내부 API를 자동검색해서 리뷰수고를 줄이고 있는듯 보여진다.

push1

이에 대한 대응 방법

APNs의 API가 포함되어 있는 경우, Push Notification의 Entitlements가 설정되어 있지 않기 때문이라는 것으로 이에 대해서는 프로젝트의 [Capabilities]탭을 선택하고 “Push Notifications”를 ON으로 값을 변경해주면 자동으로 AppName.entitlements파일이 생성된다.

push2

이와 같이 설정되면 아래와 같은 파일이 생성된다.

AppName.entitlements

하지만 만드는 것은 실제 서비스중인 앱이기 떄문에 애플 공식 사이트에서 나와 있듯이 Provisionning Portal에서 만든 파이레 맞게 production하기 위해 아래와 같이 처리한다. (참고링크)

appName.entitlements

위와 같이 고치면 Capabilities에서 Fix issue라고 뜬다. 이 버튼을 누르면 production이 다시 development로 변경된다.

현재 Xcode8의 버그같은데 해결방법은 Code Signing과 일치한 entitlements를 Build Settings를 설정해주면 해당 이슈가 해결되네요. 그래서 자동으로 생성된 파일은 선택한 파일만 Target으로 설정되어 있어 변경하기 어렵기 때문에 property list를 알맞은 이름으로 하나 만든다.

push3

여기서 development.entitlements와 production.entitlements를 만들고 아래와 같이 구성한다.

development.entitlements

production.entitlements

대상 변경은 Build Settings에서 Code Signing Entitlements를 검색하고 해당 파일의 대상을 변경한다.

필자 환경에서는 Release/AdHoc에서는 release를 빌드하기 때문에 production.entitlements로 구성했다.

이렇게 처리하면 오류가 없었기 때문에 참고하길 바란다.

 

Facebook Comments

카테고리:   Xcode

댓글

죄송하지만 댓글은 닫혀 있습니다.