iOS 자격

iOS에서 .NET 다중 플랫폼 앱 UI(.NET MAUI) 앱은 앱과 시스템 리소스 또는 사용자 데이터 간의 액세스를 제한하는 규칙 집합을 제공하는 샌드박스에서 실행됩니다. 자격은 Siri와의 통합과 같은 추가 기능을 앱에 제공하기 위해 샌드박스 확장을 요청하는 데 사용됩니다. 앱에서 사용하는 모든 자격은 앱의 Entitlements.plist 파일에 지정해야 합니다. 자격에 대한 자세한 내용은 developer.apple.com 대한 자격을 참조하세요.

자격 지정 외에도 Entitlements.plist 파일을 사용하여 앱에 코드를 서명합니다. 앱에 코드를 서명할 때 권한 파일은 Apple 개발자 계정의 정보 및 기타 프로젝트 정보와 결합하여 앱에 최종 자격 집합을 적용합니다.

자격은 기능 개념과 밀접한 관련이 있습니다. 둘 다 추가 기능을 제공하기 위해 앱이 실행되는 샌드박스의 확장을 요청합니다. 권한은 일반적으로 앱을 개발할 때 추가되지만, 일반적으로 배포를 위해 앱에 서명하는 코드를 사용할 때 기능이 추가됩니다. 그러나 자동 프로비저닝을 사용하도록 설정하면 앱에 특정 자격을 추가하면 해당 프로비저닝 프로필에서 앱의 기능도 업데이트됩니다. 자세한 내용은 Visual Studio를 사용하여 기능 추가를 참조 하세요.

Important

Entitlements.plist 파일은 Apple 개발자 계정에 연결되지 않습니다. 따라서 앱에 대한 프로비저닝 프로필을 만들 때 앱에서 사용하는 모든 자격도 프로비저닝 프로필의 기능으로 지정되어야 합니다. 자세한 내용은 기능을 참조하세요.

Entitlements.plist 파일 추가

.NET MAUI 앱 프로젝트에 새 권한 파일을 추가하려면 앱 프로젝트의 Platforms\iOS 폴더에 Entitlements.plist라는 새 XML 파일을 추가합니다. 그런 다음 파일에 다음 XML을 추가합니다.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
</dict>
</plist>

자격 설정

Entitlements.plist 파일을 두 번 클릭하여 권한 편집기에서 열어 Visual Studio에서 권한을 구성할 수 있습니다.

  1. 솔루션 탐색기 .NET MAUI 앱 프로젝트의 Platforms iOS 폴더에서 Entitlements.plist > 파일을 두 번 클릭하여 권한 편집기에서 엽니다.

  2. 권한 편집기에서 앱에 필요한 모든 자격을 선택하고 구성합니다.

    Visual Studio iOS entitlements editor.

  3. Entitlements.plist 파일에 변경 내용을 저장하여 자격 키/값 쌍을 파일에 추가합니다.

특정 자격에 대해 Info.plist에서 개인 정보 키를 설정해야 할 수도 있습니다.

자격 사용

.NET MAUI iOS 앱은 Entitlements.plist 파일에 정의된 자격을 사용하도록 구성해야 합니다.

  1. 솔루션 탐색기 .NET MAUI 앱 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 그런 다음, iOS > 번들 서명 탭으로 이동합니다.

  2. 번들 서명 설정에서 사용자 지정 권한 필드에 대한 찾아보기... 단추를 클릭합니다.

  3. 사용자 지정 권한 대화 상자에서 Entitlements.plist 파일이 포함된 폴더로 이동하여 파일을 선택하고 열기 단추를 클릭합니다.

  4. 프로젝트 속성 에서 사용자 지정 권한 필드는 자격 파일로 채워집니다.

    Visual Studio custom entitlements field set.

  5. 프로젝트 속성을 닫습니다.

참고 항목

Visual Studio는 디버그 및 릴리스 빌드 모두에 대한 사용자 지정 권한 필드를 설정합니다.

자동 프로비저닝을 사용하도록 설정하면 권한의 하위 집합도 앱의 프로비저닝 프로필에 기능으로 추가됩니다. 자세한 내용은 Visual Studio를 사용하여 기능 추가를 참조 하세요.

키 참조

자격 키/값 쌍은 참조를 위해 아래에 나열되어 있습니다. Visual Studio에서 Entitlements.plist 파일을 XML 파일로 편집하여 추가할 수 있습니다. Mac용 Visual Studio 권한 편집기의 원본 보기를 통해 추가할 수 있습니다.

WiFi 정보 액세스

이 액세스 WiFi 정보 자격을 통해 앱은 현재 연결된 WiFi 네트워크에 대한 정보를 얻을 수 있습니다.

자격은 다음 형식Booleancom.apple.developer.networking.wifi-info 키를 사용하여 정의됩니다.

<key>com.apple.developer.networking.wifi-info</key>
<true/>

자세한 내용은 developer.apple.com 대한 액세스 WiFi 정보 권한을 참조하세요.

앱 테스트

앱 증명 자격을 사용하면 디바이스에서 특별한 암호화 키를 생성하고 이를 사용하여 서버에서 중요한 데이터에 대한 액세스를 제공하기 전에 앱의 무결성을 확인할 수 있습니다.

자격은 다음 형식Stringcom.apple.developer.devicecheck.appattest-environment 키를 사용하여 정의됩니다.

<key>com.apple.developer.devicecheck.appattest-environment</key>
<string>development</string>

자세한 내용은 developer.apple.com App Attest Environment 를 참조하세요.

앱 그룹

앱 그룹 자격을 사용하면 앱이 여러 관련 앱 간에 공유되는 그룹 컨테이너에 액세스하고 앱 간에 프로세스 간 통신을 수행할 수 있습니다.

자격은 다음 형식 ArrayStringcom.apple.security.application-groups 키를 사용하여 정의됩니다.

<key>com.apple.security.application-groups</key>
<array>
  <string>group.MyAppGroups</string>
</array>

자세한 내용은 developer.apple.com 앱 그룹 권한을 참조하세요.

Apple Pay

Apple Pay 자격을 통해 사용자는 장치에 저장된 결제 정보를 사용하여 식료품, 의류, 티켓 및 예약과 같은 물리적 인 좋은 서비스와 서비스를 쉽고 안전하게 지불 할 수 있습니다.

자격은 다음 형식 ArrayStringcom.apple.developer.in-app-payments 키를 사용하여 정의됩니다.

<key>com.apple.developer.in-app-payments</key>
<array>
  <string>merchant.your.merchantid</string>
</array>

자세한 내용은 developer.apple.com 가맹점 ID 자격을 참조하세요.

연결된 do기본s

관련 do기본s 권한은 Safari 액세스, 저장된 암호 및 활동 연속과 같은 특정 서비스에 대한 특정 할 일기본와 앱을 연결할 수 있도록 합니다.

자격은 다음 형식 ArrayStringcom.apple.developer.associated-domains 키를 사용하여 정의됩니다.

<key>com.apple.developer.associated-domains</key>
<array>
  <string>webcredentials:example.com</string>
</array>

자세한 내용은 developer.apple.com 관련 Do기본s 권한을 참조하세요.

자격 증명 공급자 자동 채우기

자동 채우기 자격 증명 공급자 자격을 사용하면 사용자 권한이 있는 앱이 앱 및 Safari에 자동 채우기에 대한 사용자 이름과 암호를 제공할 수 있습니다.

자격은 다음 형식Booleancom.apple.developer.authentication-services.autofill-credential-provider 키를 사용하여 정의됩니다.

<key>com.apple.developer.authentication-services.autofill-credential-provider</key>
<true/>

자세한 내용은 developer.apple.com 자격 증명 공급자 권한 자동 채우기를 참조하세요.

ClassKit

ClassKit 자격을 통해 앱은 학교 관리 환경에서 책의 장을 읽거나 퀴즈를 풀는 등 할당된 활동에 대한 교사와 학생 진행 상황을 사적으로 안전하게 공유할 수 있습니다.

자격은 다음 형식Stringcom.apple.developer.ClassKit-environment 키를 사용하여 정의됩니다.

<key>com.apple.developer.ClassKit-environment</key>
<string>development</string>

자세한 내용은 developer.apple.com ClassKit 환경 자격을 참조하세요.

드라이버와 통신

드라이버 권한과 통신하면 앱과 DriverKit 드라이버 간의 통신이 가능합니다.

자격은 다음 형식Booleancom.apple.developer.driverkit.communicates-with-drivers 키를 사용하여 정의됩니다.

<key>com.apple.developer.driverkit.communicates-with-drivers</key>
<true/>

자세한 내용은 developer.apple.com 드라이버와 통신을 참조하세요.

통신 알림

통신 알림 자격을 통해 앱은 한 사람 또는 여러 사람에게 통신 알림을 보낼 수 있습니다.

자격은 다음 형식Booleancom.apple.developer.usernotifications.communication 키를 사용하여 정의됩니다.

<key>com.apple.developer.usernotifications.communication</key>
<true/>

자세한 내용은 developer.apple.com 알림 서비스 권한 요청을 참조하세요.

데이터 보호

데이터 보호 자격을 통해 앱은 지원되는 디바이스에서 기본 제공 암호화를 사용할 수 있습니다. 보호된 파일로 지정하면 시스템에서 파일을 암호화된 형식으로 저장합니다.

자격은 다음 형식Stringcom.apple.developer.default-data-protection 키를 사용하여 정의됩니다.

<key>com.apple.developer.default-data-protection</key>
<string>NSFileProtectionComplete</string>

자세한 내용은 developer.apple.com 데이터 보호 권한을 참조하세요.

확장된 가상 주소 지정

확장된 가상 주소 지정 자격을 사용하면 앱에서 더 많은 주소 공간을 사용할 수 있습니다.

자격은 다음 형식Booleancom.apple.developer.kernel.extended-virtual-addressing 키를 사용하여 정의됩니다.

<key>com.apple.developer.kernel.extended-virtual-addressing</key>
<true/>

자세한 내용은 developer.apple.com 확장 가상 주소 지정 권한을 참조하세요.

패밀리 컨트롤

가족 제어 권한은 앱에서 자녀 보호 기능을 사용하도록 설정하여 ScreenTime API에서 관리되는 설정 및 디바이스 활동 프레임워크에 대한 액세스 권한을 부여합니다. 가족 컨트롤을 사용하려면 사용자 등록을 위해 가족 공유가 필요합니다. 앱 제거를 방지하고 네트워크 확장에서 디바이스 내 콘텐츠 필터를 사용하도록 설정합니다.

자격은 다음 형식Booleancom.apple.developer.family-controls 키를 사용하여 정의됩니다.

<key>com.apple.developer.family-controls</key>
<true/>

자세한 내용은 developer.apple.com 가족 컨트롤 권한을 참조하세요.

FileProvider 테스트 모드

FileProvider 테스트 모드 자격은 테스트 중에 파일 공급자 확장이 시스템의 동작을 더 많이 제어할 수 있도록 하는 테스트 모드를 사용하도록 설정합니다.

자격은 다음 형식Booleancom.apple.developer.fileprovider.testing-mode 키를 사용하여 정의됩니다.

<key>com.apple.developer.fileprovider.testing-mode</key>
<true/>

자세한 내용은 developer.apple.com FileProvider 테스트 모드 자격을 참조하세요.

글꼴

글꼴 자격을 통해 사용자 권한이 있는 앱에서 사용자 지정 글꼴을 설치하고 사용할 수 있습니다.

자격은 다음 형식 ArrayStringcom.apple.developer.user-fonts 키를 사용하여 정의됩니다.

<key>com.apple.developer.user-fonts</key>
<array>
  <string>system-installation</string>
</array>

자세한 내용은 developer.apple.com 사용자 지정 글꼴 구성을 참조하세요.

그룹 활동

그룹 활동 자격을 사용하면 앱이 하나 이상의 다른 디바이스에서 동일한 앱과 통신하여 FaceTime 호출 내에서 그룹 활동을 만들 수 있습니다. FaceTime의 그룹 활동을 통해 사용자는 비디오를 함께 시청하거나, 함께 음악을 듣거나, 다른 동기 활동을 수행할 수 있습니다.

자격은 다음 형식Booleancom.apple.developer.group-session 키를 사용하여 정의됩니다.

<key>com.apple.developer.group-session</key>
<true/>

자세한 내용은 developer.apple.com 그룹 활동 자격을 참조하세요.

HealthKit

HealthKit 자격을 사용하면 앱이 사용자 권한, 개인 건강 정보를 사용하여 액세스할 수 있습니다.

자격은 다음 형식Booleancom.apple.developer.healthkit 키를 사용하여 정의됩니다.

<key>com.apple.developer.healthkit</key>
<true/>

자세한 내용은 developer.apple.com HealthKit 자격을 참조하세요.

HomeKit

HomeKit 자격을 사용하면 앱이 HomeKit 액세서리와 상호 작용할 수 있습니다.

자격은 다음 형식Booleancom.apple.developer.homekit 키를 사용하여 정의됩니다.

<key>com.apple.developer.homekit</key>
<true/>

자세한 내용은 developer.apple.com HomeKit 권한을 참조하세요.

핫스팟 구성

핫스팟 구성 권한 자격을 통해 앱은 WiFi 네트워크를 구성할 수 있습니다.

자격은 다음 형식Booleancom.apple.developer.networking.HotspotConfiguration 키를 사용하여 정의됩니다.

<key>com.apple.developer.networking.HotspotConfiguration</key>
<true/>

자세한 내용은 developer.apple.com 핫스팟 구성 자격을 참조하세요.

iCloud

iCloud 자격을 사용하면 앱이 클라우드에 데이터를 저장할 수 있으므로 사용자가 여러 디바이스에서 데이터를 공유할 수 있습니다.

권한은 컨테이너 식별자를 나타내는 키, 형식 ArrayString및 추가 키를 사용하여 com.apple.developer.icloud-container-development-container-identifiers 정의됩니다.

<key>com.apple.developer.icloud-container-identifiers</key>
<array>
  <string>iCloud.com.companyname.test</string>
</array>
<key>com.apple.developer.ubiquity-kvstore-identifier</key>
<string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>

$(AppIdentifierPrefix)$(CFBundleIdentifier) 자리 표시자는 빌드 시 올바른 값으로 대체됩니다.

자세한 내용은 developer.apple.com iCloud 컨테이너 식별자 권한을 참조하세요.

메모리 제한 증가

메모리 제한 권한 증가로 앱이 지원되는 디바이스의 기본 앱 메모리 제한을 초과할 수 있습니다.

자격은 다음 형식Booleancom.apple.developer.kernel.increased-memory-limit 키를 사용하여 정의됩니다.

<key>com.apple.developer.kernel.increased-memory-limit</key>
<true/>

자세한 내용은 developer.apple.com 대한 메모리 제한 권한 증가를 참조하세요.

앱 간 오디오

앱 간 오디오 자격을 사용하면 앱이 앱 간 오디오를 사용하도록 설정된 다른 앱 간에 오디오를 보내고 받을 수 있습니다.

자격은 다음 형식Booleaninter-app-audio 키를 사용하여 정의됩니다.

<key>inter-app-audio</key>
<true/>

자세한 내용은 developer.apple.com 앱 간 오디오 자격을 참조하세요.

Important

이 자격은 iOS 13에서 더 이상 사용되지 않으며 macOS에서 iPads 앱을 실행할 때 사용할 수 없습니다.

키 집합

키 집합 자격을 사용하면 동일한 팀에서 작성한 여러 앱이 암호를 공유할 수 있습니다.

자격은 다음 형식 ArrayStringkeychain-access-groups 키를 사용하여 정의됩니다.

<key>keychain-access-groups</key>
<array>
  <string>$(AppIdentifierPrefix)com.companyname.test</string>
</array>

자세한 내용은 developer.apple.com 키 집합 액세스 그룹 자격을 참조하세요.

MDM 관리 관련 do기본s

MDM(모바일 개발 관리) 관리 관련 do기본s 자격을 통해 MDM은 앱에 포함된 연결된 Do기본를 환경에 고유한 서버 이름과 같은 값으로 보완할 수 있습니다.

자격은 다음 형식Booleancom.apple.developer.associated-domains.mdm-managed 키를 사용하여 정의됩니다.

<key>com.apple.developer.associated-domains.mdm-managed</key>
<true/>

다중 경로

다중 경로 자격을 사용하면 앱이 다중 경로 TCP와 같은 다중 경로 프로토콜을 사용할 수 있습니다. 이 프로토콜은 한 인터페이스에서 다른 인터페이스로 트래픽을 원활하게 전달합니다.

자격은 다음 형식Booleancom.apple.developer.networking.multipath 키를 사용하여 정의됩니다.

<key>com.apple.developer.networking.multipath</key>
<true/>

자세한 내용은 developer.apple.com 다중 경로 권한을 참조하세요.

근거리 통신 태그 판독기

근거리 통신 태그 판독기 자격을 사용하면 앱이 NFC(NFC Data Exchanged Format) NFC(근거리 통신) 태그를 읽을 수 있습니다.

자격은 다음 형식 ArrayStringcom.apple.developer.nfc.readersession.formats 키를 사용하여 정의됩니다.

<key>com.apple.developer.nfc.readersession.formats</key>
<array>
  <string>NDEF</string>
  <string>TAG</string>
</array>

자세한 내용은 developer.apple.com 근거리 통신 태그 판독기 세션 형식 자격을 참조하세요.

네트워크 확장

네트워크 확장 자격을 사용하면 디바이스의 네트워크 기능을 확장하고 사용자 지정하는 앱 확장을 만들 수 있습니다.

자격은 다음 형식 ArrayStringcom.apple.developer.networking.networkextension 키를 사용하여 정의됩니다.

<key>com.apple.developer.networking.networkextension</key>
<array>
  <string>content-filter-provider</string>
</array>

자세한 내용은 developer.apple.com 네트워크 확장 자격을 참조하세요.

개인 VPN

개인 VPN 자격을 통해 앱은 사용자 지정 VPN 연결을 사용할 수 있습니다.

자격은 다음 형식 ArrayStringcom.apple.developer.networking.vpn.api 키를 사용하여 정의됩니다.

<key>com.apple.developer.networking.vpn.api</key>
<array>
  <string>allow-vpn</string>
</array>

자세한 내용은 developer.apple.com 개인 VPN 자격을 참조하세요.

푸시 알림

푸시 알림 자격을 사용하면 앱이 푸시 알림을 받을 수 있습니다.

자격은 다음 형식Stringaps-environment 키를 사용하여 정의됩니다.

<key>aps-environment</key>
<string>development</string>

자세한 내용은 developer.apple.com APS 환경 자격을 참조하세요.

푸시하여 말하기

푸시 투 토크 권한을 사용하면 앱이 백그라운드 오디오 전송 및 수신을 처리할 수 있도록 푸시 투 토크 채널을 시스템에 보고할 수 있습니다.

자격은 다음 형식Booleancom.apple.developer.push-to-talk 키를 사용하여 정의됩니다.

<key>com.apple.developer.push-to-talk</key>
<true/>

자세한 내용은 developer.apple.com 대한 대화 권한 푸시를 참조하세요.

사용자와 공유

사용자 권한과 공유하면 앱이 메시지 대화에서 공유된 링크를 클레임할 수 있으며 공유된 사용자 프레임워크를 통해 앱에 표시될 수 있습니다.

자격은 다음 형식Booleancom.apple.developer.shared-with-you 키를 사용하여 정의됩니다.

<key>com.apple.developer.shared-with-you</key>
<true/>

Apple에서 로그인

Apple 권한으로 로그인하면 사용자가 Apple ID로 인증할 수 있습니다.

자격은 다음 형식 ArrayStringcom.apple.developer.applesignin 키를 사용하여 정의됩니다.

<key>com.apple.developer.applesignin</key>
<array>
  <string>Default</string>
</array>

자세한 내용은 developer.apple.com Apple 권한으로 로그인을 참조하세요.

Siri

Siri 자격을 사용하면 앱이 Siri 요청을 처리할 수 있습니다.

자격은 다음 형식Booleancom.apple.developer.siri 키를 사용하여 정의됩니다.

<key>com.apple.developer.siri</key>
<true/>

자세한 내용은 developer.apple.com Siri 자격을 참조하세요.

시간에 민감한 알림

시간 중요한 알림 자격을 통해 앱은 시간에 민감한 알림을 처리할 수 있습니다. 시간에 민감한 알림은 즉각적인 주의를 요구하는 정보를 전달하고 알림이 수신되는 순간 조치를 취하기 위해 개인에게 직접 호출합니다. 시간에 민감한 경고는 항상 즉시 전달되고, 다른 알림 위에 표시되며, 포커스 및 방해 금지로 돌파할 수 있습니다.

자격은 다음 형식Booleancom.apple.developer.usernotifications.time-sensitive 키를 사용하여 정의됩니다.

<key>com.apple.developer.usernotifications.time-sensitive</key>
<true/>

전자지갑

지갑 자격을 통해 앱은 패스, 티켓, 기프트 카드 및 로열티 카드 관리할 수 있습니다. 다양한 바코드 형식을 지원합니다.

자격은 다음 형식 ArrayStringcom.apple.developer.pass-type-identifiers 키를 사용하여 정의됩니다.

<key>com.apple.developer.pass-type-identifiers</key>
<array>
  <string>$(TeamIdentifierPrefix)*</string>
</array>

이 예제에서는 앱이 모든 통과 형식을 허용하도록 설정합니다. 앱을 제한하고 팀 패스 형식 집합만 허용하려면 문자열 값을 Pass ID 위치 pass.$(CFBundleIdentifier)$(TeamIdentifierPrefix)pass.$(CFBundleIdentifier) 설정합니다.

자세한 내용은 developer.apple.com 유형 ID 자격 통과를 참조하세요.

WeatherKit

WeatherKit 자격을 사용하면 앱이 현재 및 예측 날씨 정보를 수신하고 처리할 수 있습니다.

자격은 다음 형식Booleancom.apple.developer.weatherkit 키를 사용하여 정의됩니다.

<key>com.apple.developer.weatherkit</key>
<true/>

자세한 내용은 developer.apple.com WeatherKit 자격을 참조하세요.

무선 액세서리 구성

무선 액세서리 구성 자격을 통해 앱은 WiFi 액세서리를 구성할 수 있습니다.

자격은 다음 형식Booleancom.apple.external-accessory.wireless-configuration 키를 사용하여 정의됩니다.

<key>com.apple.external-accessory.wireless-configuration</key>
<true/>

자세한 내용은 developer.apple.com 무선 액세서리 구성 자격을 참조하세요.