
애플의 weatherKit을 이용 해서 작업 중에 문득 파일 목록을 보니

제일 상단의 무슨 카드 모양 같은 파일이 생성 된걸 목격했다.
파일 명은 Capeng.entitlements 이였다. 형식은 xcode의 info 파일과 같았다. 안의 내용은

weatherKit을 사용 할 때 쓸법한 내용을 담고 있다. 분명 weatherKit을 사용 할 때 필요한 파일인데...
갑자기 생겨버리니 이 파일의 존재가 궁금해졌다.
우선 파일을 삭제 해보았다. 어떤 문제가 생길까.

파일을 삭제하고 실행을 하면 이런 경고가 뜬다. 이 경고는 한국어론 이 프로젝트 파일이 .entitlements 파일을 참고 있다는 뜻이었다.
그렇다면 이 파일은 왜 생길까? 이 파일이 생긴 순서를 생각해보자.
난 weatherKit을 사용 해보려 했었고 weatherKit의 사용 순서를 통해 아래의 사진 처럼 빌드 타겟 셋팅에서 Capability에서 weatherKit을 추가 했다. 그러니 .entitlements이 생성 되었다. 
그렇기 때문에 weatherKit을 사용 하지 않아 파일을 삭제 하려면

이 설정도 삭제를 해줘야 하는 것이다.
그렇지만 삭제를 함에도 계속 에러가 뜬다.

여전히 빌드 셋팅이 .entitlements을 참고 하고 있기 때문인데, 이건

이 부분을 제거해주면 셋팅이 .entitlements 파일을 참고 하고 있는 부분을 제거 할 수 있다. 이렇게 해야 .entitlements 파일의 올바른 삭제법 인 것이다.
그럼 이 파일은 왜 생성 되는 것일까?

우선 단어의 뜻은 "권리", "자격"이라는 뜻이다. 그렇다면 어떤 증명이나 자격을 위해 존재 한다고 생각 할 수 있겠다.
Capeng.entitlements 파일은 앱 개발 과정에서 특별한 자격이나 권리를 설정하는 데 사용된다. 이 파일은 개발자가 특정 시스템 기능에 대한 액세스 권한을 앱에 부여하고자 할 때 필요하다. 예를 들어, WeatherKit과 같은 서비스를 사용하기 위해서는, 해당 서비스에 접근할 수 있는 권한을 entitlements 파일을 통해 명시해야 한다.
entitlements 파일은 앱이 운영 체제의 보호된 부분에 접근하거나, 특정 데이터를 사용하고자 할 때 중요한 역할을 한다. 이 파일은 앱이 사용자의 개인 정보에 접근하거나, 푸시 알림, iCloud 서비스 등을 사용하려고 할 때 필요한 권한을 정의한다. 앱이 시스템의 이러한 기능을 사용하려면, entitlements 파일에 해당 권한이 명시되어 있어야 한다.
Xcode에서 WeatherKit 같은 기능을 추가하면, 관련 권한을 설정하기 위해 자동으로 Capeng.entitlements 파일이 생성된다. 이 파일은 앱의 권한 설정을 관리하는 중요한 부분이며, 앱이 제대로 작동하려면 이 파일이 필요하다. 따라서, entitlements 파일은 앱이 특정 기능을 사용할 수 있도록 해주는 중요한 역할을 한다.
만약 이 파일을 삭제하고 싶다면, Xcode 프로젝트 설정에서 해당 기능을 제거하고, Build Settings에서도 entitlements 파일에 대한 참조를 삭제해야 한다. 이렇게 하면, entitlements 파일 없이도 앱을 빌드하고 실행할 수 있다. 그러나, entitlements 파일에 정의된 권한이나 기능이 앱에서 필요한 경우, 해당 기능이 제대로 작동하지 않을 수 있으니, 파일을 삭제하기 전에 필요한 기능을 고려해야 한다.