Xcode8에서 APNs의 Entitlements 설정 필수

2016-09-23
61 Views

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

You may be interested

[Swift3] 폐쇄(Closure)에 대해 살짝 이해할 수 있는 팁
Swift 3.0
shares10 views
Swift 3.0
shares10 views

[Swift3] 폐쇄(Closure)에 대해 살짝 이해할 수 있는 팁

MJ Kim - 4월 29, 2017

몇몇 개발자를 만나 개발을 하다보면, 폐쇄(Closure)에 대해 이해를 하지 못해서 간단하게 바로 이해할 수 있는 팁을 정리해본다. 앱을 개발하다보면 https통신을…

[Swift3] UITextview의 keyboard 닫기
Swift 3.0
shares2 views
Swift 3.0
shares2 views

[Swift3] UITextview의 keyboard 닫기

MJ Kim - 4월 29, 2017

스토리보드에서 델리게이트를 선언하고 class에 UITextViewDelegate를 상속받아서 delegate=self를 viewDidLoad에서 설정하면 간단하게 해결되는데 가끔 헷깔려 하는 경우가 있어 적어본다. [crayon-590462f3c96cd344468117/] [crayon-590462f3c96d2066933341/] [crayon-590462f3c96d4382285005/]…

스토리보드에서 다국어 지원 및 Xcode 8.3이상에서 이슈
Swift 3.0
shares5 views
Swift 3.0
shares5 views

스토리보드에서 다국어 지원 및 Xcode 8.3이상에서 이슈

MJ Kim - 4월 29, 2017

다국어 지원은 우선 Localizable.strings파일을 생성한 다음 언어를 지정한다. 그리고 필자가 자주 사용하는 일부 컨트롤들에 대한 확장(extension)을 추가한 다음 스토리보드에서 사용하는…