애플의 도도한 업데이트

Programming/Xcode 2016. 9. 29. 20:39

이번에 Xcode가 7에서 8로 업데이트되면서, Swift가 2.2에서 2.3과 3.0으로 converting을 해야 빌드가 가능하다. 프로그래밍 언어의 변경은 호환을 유지하기 어렵다는 것은 알지만, 너무 개발자들을 혹사하는 것은 아닌가 싶다. 2.x로 넘어가면서는 어느 정도 정착이 되나 싶었는데… 


이번에 프로젝트 심사를 요청하는 과정에서 바이너리를 재전송하라는 내용을 전달받았다. 아래 내용은 기존에 plist에 설정하지 않았다면 벨리데이션 체크에서도 걸러내지 못한다. 앱스토어에 올려줘야 확인이 가능한 부분이다.



애플에서 전달한 내용 >

-----------------

This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.

이 응용 프로그램은 사용 설명 없이 개인 정보 보호에 민감한 데이터에 접근을 시도합니다. 해당 데이터를 사용하는 설명과 함께 NSPhotoLibraryUsageDescription 키를 앱의 Info.plist에 포함해야 합니다. 

-----------------


기존에는 앨범에 접근을 허용하는 메시지를 개발자가 임의로 처리하지 않았지만 Xcode8(iOS10)에서는 iOS에서 기본 메시지는 예전과 같이 노출하고 그 하단에 어떤 이유에서 허용을 요청하는지를 명시적으로 설명해야 한다. (기존에도 있었지만, 권장이었지 필수 설정은 아니었음) 


Xcode8에서 NSPhotoLibraryUsageDescription키가 없어서 에러가 발생하는 것을 확인했다. 기본 접근 허용 description이 노출되기에 키만 입력하고 별도로 description을 넣지 않았었는데 이게 문제가 되어 위와 같은 메시지를 애플에서 전달했던 것이다. description을 넣지 않아도 빌드는 제대로 되며 벨리데이션 체크에서도 성공으로 처리되었기에 문제가 없는 것으로 인지하고 있었는데 이런 함정이 있을 줄이야. 


NSPhotoLibraryUsageDescription 키와 이에 대응하는 description를 넣어서 ipa파일을 올려주니 정상적으로 처리가 되었다. 이 밖에도 개인 정보에 관련한 권한 설정이 강화되어 선택이 아니라 필수가 되었다. 따라서 plist에 키와 함께 description을 꼭 작성해야 한다. 자칫 놓치기 쉬운 부분이니 개발자들은 참고하시라.

    

설정

트랙백

댓글