Bagikan melalui


Pemberian izin iOS

Di iOS, aplikasi .NET Multi-platform App UI (.NET MAUI) berjalan di kotak pasir yang menyediakan serangkaian aturan yang membatasi akses antara aplikasi dan sumber daya sistem atau data pengguna. Pemberian kepemilikan digunakan untuk meminta perluasan kotak pasir untuk memberi aplikasi Anda kemampuan tambahan, seperti integrasi dengan Siri. Setiap pemberian izin yang digunakan oleh aplikasi Anda harus ditentukan dalam file Entitlements.plist aplikasi. Untuk informasi selengkapnya tentang pemberian izin, lihat Pemberian Izin di developer.apple.com.

Selain menentukan pemberian izin, file Entitlements.plist digunakan untuk menandatangani kode aplikasi. Saat kode menandatangani aplikasi Anda, file pemberian izin dikombinasikan dengan informasi dari Akun Pengembang Apple Anda, dan informasi proyek lainnya untuk menerapkan serangkaian pemberian akhir ke aplikasi Anda.

Pemberian izin terkait erat dengan konsep kemampuan. Keduanya meminta perluasan kotak pasir tempat aplikasi Anda berjalan, untuk memberinya kemampuan tambahan. Pemberian izin biasanya ditambahkan saat mengembangkan aplikasi Anda, sementara kemampuan biasanya ditambahkan saat kode menandatangani aplikasi Anda untuk didistribusikan. Namun, saat provisi otomatis diaktifkan, menambahkan pemberian izin tertentu ke aplikasi Anda juga akan memperbarui kemampuan untuk aplikasi Anda di profil provisinya. Untuk informasi selengkapnya, lihat Menambahkan kemampuan dengan Visual Studio.

Penting

File Entitlements.plist tidak ditautkan ke Akun Pengembang Apple. Oleh karena itu, saat membuat profil provisi untuk aplikasi, Anda harus memastikan bahwa hak apa pun yang digunakan oleh aplikasi Anda juga ditentukan sebagai kemampuan dalam profil provisinya. Untuk informasi selengkapnya, lihat Kemampuan.

Menambahkan file Entitlements.plist

Untuk menambahkan file pemberian izin baru ke proyek aplikasi .NET MAUI Anda, tambahkan file XML baru bernama Entitlements.plist ke folder Platforms\iOS proyek aplikasi Anda. Kemudian tambahkan XML berikut ke file:

<?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>

Atur pemberian izin

Pemberian izin dapat dikonfigurasi di Visual Studio dengan mengeklik dua kali file Entitlements.plist untuk membukanya di editor pemberian izin.

  1. Di Penjelajah Solusi, klik dua kali file Entitlements.plist dari folder Platform > iOS proyek aplikasi .NET MAUI Anda untuk membukanya di editor pemberian izin.

  2. Di editor pemberian hak, pilih dan konfigurasikan hak apa pun yang diperlukan oleh aplikasi Anda:

    Visual Studio iOS entitlements editor.

  3. Simpan perubahan ke file Entitlements.plist Anda untuk menambahkan pasangan kunci/nilai pemberian izin ke file.

Mungkin juga perlu mengatur kunci privasi di Info.plist, untuk hak tertentu.

Mengonsumsi pemberian izin

Aplikasi .NET MAUI iOS harus dikonfigurasi untuk menggunakan penetapan yang ditentukan dalam file Entitlements.plist .

  1. Di Penjelajah Solusi, klik kanan proyek aplikasi .NET MAUI Anda dan pilih Properti. Kemudian, navigasikan ke tab Penandatanganan Bundel iOS>.

  2. Di pengaturan Penandatanganan Bundel, klik tombol Telusuri... untuk bidang Pemberian Izin Kustom.

  3. Dalam dialog Pemberian Izin Kustom, navigasikan ke folder yang berisi file Entitlements.plist Anda, pilih file, dan klik tombol Buka.

  4. Di properti proyek, bidang Pemberian Izin Kustom akan diisi dengan file pemberian izin Anda:

    Visual Studio custom entitlements field set.

  5. Tutup properti proyek.

Catatan

Visual Studio akan mengatur bidang pemberian hak kustom untuk build debug dan rilis.

Saat provisi otomatis diaktifkan, subset pemberian izin juga akan ditambahkan ke profil provisi aplikasi Anda sebagai kemampuan. Untuk informasi selengkapnya, lihat Menambahkan kemampuan dengan Visual Studio.

Referensi kunci

Pasangan kunci/nilai pemberian izin tercantum di bawah ini untuk referensi. Di Visual Studio mereka dapat ditambahkan dengan mengedit file Entitlements.plist sebagai file XML. Di Visual Studio untuk Mac, mereka dapat ditambahkan melalui tampilan Sumber editor pemberian pemberian izin.

Mengakses informasi WiFi

Hak informasi Akses WiFi ini memungkinkan aplikasi Anda untuk mendapatkan informasi tentang jaringan WiFi yang saat ini terhubung.

Pemberian izin didefinisikan menggunakan com.apple.developer.networking.wifi-info kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Mengakses Hak Informasi WiFi di developer.apple.com.

Pengesahan Aplikasi

Dengan hak App Attest, Anda dapat menghasilkan kunci kriptografi khusus di perangkat Anda dan menggunakannya untuk memvalidasi integritas aplikasi Anda sebelum server menyediakan akses ke data sensitif.

Pemberian izin didefinisikan menggunakan com.apple.developer.devicecheck.appattest-environment kunci, dari jenis String:

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

Untuk informasi selengkapnya, lihat Lingkungan Pengesahan Aplikasi di developer.apple.com.

Grup aplikasi

Pemberian hak grup aplikasi memungkinkan aplikasi Anda mengakses kontainer grup yang dibagikan di antara beberapa aplikasi terkait serta melakukan komunikasi antarproses antara aplikasi.

Pemberian izin didefinisikan menggunakan com.apple.security.application-groups kunci, dari jenis ArrayString:

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

Untuk informasi selengkapnya, lihat Pemberian Izin Grup Aplikasi di developer.apple.com.

Apple Pay

Hak Apple Pay memungkinkan pengguna untuk membayar barang dan layanan fisik dengan mudah dan aman seperti bahan makanan, pakaian, tiket, dan reservasi menggunakan informasi pembayaran yang disimpan di perangkat mereka.

Pemberian izin didefinisikan menggunakan com.apple.developer.in-app-payments kunci, dari jenis ArrayString:

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

Untuk informasi selengkapnya, lihat Pemberian Izin ID Pedagang di developer.apple.com.

Domain terkait

Hak domain terkait memungkinkan aplikasi Anda dikaitkan dengan domain tertentu untuk layanan tertentu, seperti mengakses Safari, kata sandi tersimpan, dan kelanjutan aktivitas.

Pemberian izin didefinisikan menggunakan com.apple.developer.associated-domains kunci, dari jenis ArrayString:

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

Untuk informasi selengkapnya, lihat Pemberian Izin Domain Terkait di developer.apple.com.

Penyedia kredensial Isi Otomatis

Hak penyedia kredensial Isi Otomatis memungkinkan aplikasi, dengan izin pengguna, untuk memberikan nama pengguna dan kata sandi untuk Isi Otomatis ke dalam aplikasi dan Safari.

Pemberian izin didefinisikan menggunakan com.apple.developer.authentication-services.autofill-credential-provider kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Pemberian Izin Penyedia Kredensial Isi Otomatis pada developer.apple.com.

ClassKit

Pemberian hak ClassKit memungkinkan aplikasi Anda berbagi kemajuan siswa secara privat dan aman dengan pengajar tentang aktivitas yang ditetapkan, seperti membaca bab dalam buku atau mengikuti kuis, di lingkungan yang dikelola sekolah.

Pemberian izin didefinisikan menggunakan com.apple.developer.ClassKit-environment kunci, dari jenis String:

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

Untuk informasi selengkapnya, lihat Pemberian Izin Lingkungan ClassKit di developer.apple.com.

Berkomunikasi dengan driver

Berkomunikasi dengan pemberian izin driver memungkinkan komunikasi antara aplikasi dan driver DriverKit.

Pemberian izin didefinisikan menggunakan com.apple.developer.driverkit.communicates-with-drivers kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Berkomunikasi dengan Driver di developer.apple.com.

Pemberitahuan komunikasi

Pemberian izin pemberitahuan komunikasi memungkinkan aplikasi mengirim pemberitahuan komunikasi dari seseorang ke seseorang atau beberapa orang.

Pemberian izin didefinisikan menggunakan com.apple.developer.usernotifications.communication kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Meminta Pemberian Izin Layanan Pemberitahuan di developer.apple.com.

Perlindungan data

Pemberian izin perlindungan data memungkinkan aplikasi Anda menggunakan enkripsi bawaan pada perangkat yang didukung. Ketika Anda menentukan file sebagai terlindungi, sistem akan menyimpan file dalam format terenkripsi.

Pemberian izin didefinisikan menggunakan com.apple.developer.default-data-protection kunci, dari jenis String:

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

Untuk informasi selengkapnya, lihat Pemberian Izin Perlindungan Data di developer.apple.com.

Alamat virtual yang diperluas

Penetapan alamat virtual yang diperluas memungkinkan Anda menggunakan lebih banyak ruang alamat di aplikasi Anda.

Pemberian izin didefinisikan menggunakan com.apple.developer.kernel.extended-virtual-addressing kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Pemberian Izin Alamat Virtual yang Diperluas di developer.apple.com.

Kontrol keluarga

Pemberian hak kontrol keluarga memungkinkan kontrol orang tua di aplikasi Anda, memberikan akses ke kerangka kerja Pengaturan Terkelola dan Aktivitas Perangkat di SCREENTime API. Penggunaan kontrol Keluarga memerlukan Keluarga Berbagi untuk pendaftaran pengguna. Ini mencegah penghapusan aplikasi Anda dan mengaktifkan filter konten di perangkat dari Ekstensi Jaringan.

Pemberian izin didefinisikan menggunakan com.apple.developer.family-controls kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Pemberian Izin Kontrol Keluarga pada developer.apple.com.

Mode pengujian FileProvider

Hak mode pengujian FileProvider memungkinkan mode pengujian yang memberikan ekstensi Penyedia File kontrol lebih besar atas perilaku sistem selama pengujian.

Pemberian izin didefinisikan menggunakan com.apple.developer.fileprovider.testing-mode kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Pemberian Hak Mode Pengujian FileProvider di developer.apple.com.

Font

Hak font memungkinkan aplikasi Anda, dengan izin pengguna, untuk menginstal dan menggunakan font kustom.

Pemberian izin didefinisikan menggunakan com.apple.developer.user-fonts kunci, dari jenis ArrayString:

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

Untuk informasi selengkapnya, lihat Mengonfigurasi font kustom di developer.apple.com.

Aktivitas grup

Pemberian izin aktivitas grup memungkinkan aplikasi berkomunikasi dengan aplikasi yang sama di satu atau beberapa perangkat lain, untuk membuat aktivitas grup dalam panggilan FaceTime. Aktivitas grup di FaceTime memungkinkan pengguna menonton video bersama- sama, mendengarkan musik bersama-sama, atau melakukan aktivitas sinkron lainnya.

Pemberian izin didefinisikan menggunakan com.apple.developer.group-session kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Pemberian Izin Aktivitas Grup di developer.apple.com.

HealthKit

Hak HealthKit memungkinkan aplikasi Anda untuk mengakses, dengan izin pengguna, informasi kesehatan pribadi.

Pemberian izin didefinisikan menggunakan com.apple.developer.healthkit kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Pemberian Izin HealthKit di developer.apple.com.

HomeKit

Hak HomeKit memungkinkan aplikasi Anda berinteraksi dengan aksesori HomeKit.

Pemberian izin didefinisikan menggunakan com.apple.developer.homekit kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Pemberian Izin HomeKit di developer.apple.com.

Konfigurasi hotspot

Pemberian izin konfigurasi hotspot memungkinkan aplikasi Anda mengonfigurasi jaringan WiFi.

Pemberian izin didefinisikan menggunakan com.apple.developer.networking.HotspotConfiguration kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Pemberian Izin Konfigurasi Hotspot di developer.apple.com.

Icloud

Pemberian izin iCloud memungkinkan aplikasi Anda menyimpan data di cloud, sehingga memungkinkan pengguna untuk berbagi data mereka di beberapa perangkat.

Pemberian izin didefinisikan menggunakan com.apple.developer.icloud-container-development-container-identifiers kunci, jenis ArrayString, lalu kunci tambahan yang mewakili pengidentifikasi kontainer:

<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>

Tempat $(AppIdentifierPrefix) penampung dan $(CFBundleIdentifier) akan digantikan untuk nilai yang benar pada waktu build.

Untuk informasi selengkapnya, lihat Pemberian Izin Pengidentifikasi Kontainer iCloud di developer.apple.com.

Peningkatan batas memori

Penetapan batas memori yang ditingkatkan memungkinkan aplikasi Anda melebihi batas memori aplikasi default pada perangkat yang didukung.

Pemberian izin didefinisikan menggunakan com.apple.developer.kernel.increased-memory-limit kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Meningkatkan Pemberian Izin Batas Memori pada developer.apple.com.

Audio antar-aplikasi

Pemberian izin audio antar-aplikasi memungkinkan aplikasi Anda mengirim dan menerima audio ke/dari aplikasi lain yang mengaktifkan audio Antar-aplikasi.

Pemberian izin didefinisikan menggunakan inter-app-audio kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Pemberian Izin Audio Antar Aplikasi di developer.apple.com.

Penting

Pemberian izin ini tidak digunakan lagi di iOS 13 dan tidak tersedia saat menjalankan aplikasi iPad di macOS.

Rantai kunci

Pemberian izin Rantai Kunci memungkinkan beberapa aplikasi yang ditulis oleh tim yang sama untuk berbagi kata sandi.

Pemberian izin didefinisikan menggunakan keychain-access-groups kunci, dari jenis ArrayString:

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

Untuk informasi selengkapnya, lihat Hak Grup Akses Rantai Kunci di developer.apple.com.

Domain terkait terkelola MDM

Penetapan domain terkait yang dikelola Mobile Development Management (MDM) memungkinkan MDM untuk melengkapi Domain Terkait yang disertakan dengan aplikasi Anda dengan nilai seperti nama server yang unik untuk lingkungan.

Pemberian izin didefinisikan menggunakan com.apple.developer.associated-domains.mdm-managed kunci, dari jenis Boolean:

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

Multipath

Pemberian izin Multipath memungkinkan aplikasi Anda menggunakan protokol multipath seperti TCP Multipath, yang akan dengan mulus menyerahkan lalu lintas dari satu antarmuka ke antarmuka lainnya.

Pemberian izin didefinisikan menggunakan com.apple.developer.networking.multipath kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Pemberian Izin Multipath di developer.apple.com.

Pembaca tag komunikasi bidang dekat

Penetapan pembaca tag komunikasi bidang dekat memungkinkan aplikasi membaca tag NFC Data Exchanged Format (NDEF) Near Field Communication (NFC).

Pemberian izin didefinisikan menggunakan com.apple.developer.nfc.readersession.formats kunci, dari jenis ArrayString:

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

Untuk informasi selengkapnya, lihat Mendekati Pemberian Izin Format Sesi Pembaca Tag Komunikasi Bidang di developer.apple.com.

Ekstensi jaringan

Pemberian izin ekstensi jaringan memungkinkan Anda membuat ekstensi aplikasi yang memperluas dan menyesuaikan kemampuan jaringan perangkat Anda.

Pemberian izin didefinisikan menggunakan com.apple.developer.networking.networkextension kunci, dari jenis ArrayString:

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

Untuk informasi selengkapnya, lihat Pemberian Izin Ekstensi Jaringan di developer.apple.com.

VPN Pribadi

Pemberian izin VPN pribadi memungkinkan aplikasi Anda menggunakan koneksi VPN kustom.

Pemberian izin didefinisikan menggunakan com.apple.developer.networking.vpn.api kunci, dari jenis ArrayString:

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

Untuk informasi selengkapnya, lihat Pemberian Izin VPN Pribadi di developer.apple.com.

Pemberitahuan push

Pemberian izin pemberitahuan push memungkinkan aplikasi Anda menerima pemberitahuan push.

Pemberian izin didefinisikan menggunakan aps-environment kunci, dari jenis String:

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

Untuk informasi selengkapnya, lihat Pemberian Izin Lingkungan APS pada developer.apple.com.

Dorong untuk berbicara

Pendorongan untuk berbicara pemberian izin memungkinkan aplikasi Anda melaporkan saluran Push to Talk ke sistem sehingga dapat menangani transmisi dan penerimaan audio latar belakang.

Pemberian izin didefinisikan menggunakan com.apple.developer.push-to-talk kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Mendorong untuk Berbicara Pemberian Izin di developer.apple.com.

Dibagikan dengan Anda

Hak yang dibagikan dengan Anda memungkinkan aplikasi untuk mengklaim tautan yang dibagikan dalam percakapan Pesan dan agar muncul melalui kerangka kerja Dibagikan dengan Anda.

Pemberian izin didefinisikan menggunakan com.apple.developer.shared-with-you kunci, dari jenis Boolean:

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

Masuk dengan Apple

Masuk dengan pemberian izin Apple memungkinkan pengguna untuk mengautentikasi dengan ID Apple mereka.

Pemberian izin didefinisikan menggunakan com.apple.developer.applesignin kunci, dari jenis ArrayString:

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

Untuk informasi selengkapnya, lihat Masuk dengan Pemberian Izin Apple di developer.apple.com.

Siri

Pemberian izin Siri memungkinkan aplikasi Anda menangani permintaan Siri.

Pemberian izin didefinisikan menggunakan com.apple.developer.siri kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Pemberian Izin Siri di developer.apple.com.

Pemberitahuan sensitif waktu

Pemberian hak pemberitahuan sensitif waktu memungkinkan aplikasi untuk menangani pemberitahuan sensitif waktu. Pemberitahuan sensitif waktu memberikan informasi yang menuntut perhatian segera dan langsung memanggil individu untuk mengambil tindakan saat pemberitahuan diterima. Pemberitahuan Sensitif Waktu selalu dikirimkan segera, muncul di atas pemberitahuan lain, dan diizinkan untuk menerobos Fokus dan Jangan Diganggu.

Pemberian izin didefinisikan menggunakan com.apple.developer.usernotifications.time-sensitive kunci, dari jenis Boolean:

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

Dompet

Pemberian kepemilikan dompet memungkinkan aplikasi Anda mengelola pass, tiket, kartu hadiah, dan kartu loyalitas. Ini mendukung berbagai format kode batang.

Pemberian izin didefinisikan menggunakan com.apple.developer.pass-type-identifiers kunci, dari jenis ArrayString:

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

Contoh ini akan memungkinkan aplikasi Anda untuk mengizinkan semua jenis pass. Untuk membatasi aplikasi Anda dan hanya mengizinkan sekumpulan jenis pass tim, atur nilai string ke $(TeamIdentifierPrefix)pass.$(CFBundleIdentifier) tempat pass.$(CFBundleIdentifier) adalah ID Pass.

Untuk informasi selengkapnya, lihat Pemberian Izin ID Jenis Pass di developer.apple.com.

WeatherKit

Pemberian izin WeatherKit memungkinkan aplikasi untuk menerima dan memproses informasi cuaca saat ini dan prakiraan.

Pemberian izin didefinisikan menggunakan com.apple.developer.weatherkit kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Pemberian Izin WeatherKit di developer.apple.com.

Konfigurasi aksesori nirkabel

Hak konfigurasi aksesori nirkabel memungkinkan aplikasi Anda untuk mengonfigurasi aksesori WiFi.

Pemberian izin didefinisikan menggunakan com.apple.external-accessory.wireless-configuration kunci, dari jenis Boolean:

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

Untuk informasi selengkapnya, lihat Hak Konfigurasi Aksesori Nirkabel pada developer.apple.com.