Права iOS
В iOS приложения .NET Multi-platform App UI (.NET MAUI) выполняются в песочнице, которая предоставляет набор правил, ограничивающих доступ между ресурсами приложения и системными ресурсами или данными пользователей. Права используются для запроса расширения песочницы для предоставления приложению дополнительных возможностей, таких как интеграция с Siri. Все права, используемые приложением, должны быть указаны в файле Applications.plist . Дополнительные сведения о правах см. в developer.apple.com.
Помимо указания прав, файл Entitlements.plist используется для написания подписывания приложения. При подписании кода файл прав объединяется с информацией из учетной записи разработчика Apple и другими сведениями о проекте, чтобы применить к приложению окончательный набор прав.
Права тесно связаны с понятием возможностей. Они оба запрашивают расширение песочницы, в которой выполняется приложение, чтобы предоставить ему дополнительные возможности. Права обычно добавляются при разработке приложения, а возможности обычно добавляются при подписании кода приложения для распространения. Однако при включении автоматической подготовки добавление определенных прав в приложение также обновит возможности приложения в своем профиле подготовки. Дополнительные сведения см. в разделе "Добавление возможностей с помощью Visual Studio".
Внимание
Файл Entitlements.plist не связан с учетной записью разработчика Apple. Поэтому при создании профиля подготовки для приложения следует убедиться, что все права, используемые приложением, также указаны в качестве возможностей в профиле подготовки. Дополнительные сведения см. в разделе Характеристики.
Добавление файла Entitlements.plist
Чтобы добавить новый файл прав в проект приложения .NET MAUI, добавьте новый XML-файл с именем Entitlements.plist в папку Platform\iOS проекта приложения. Затем добавьте следующий 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>
Настройка прав
Права можно настроить в Visual Studio, дважды щелкнув файл Entitlements.plist , чтобы открыть его в редакторе прав:
В Обозреватель решений дважды щелкните файл Entitlements.plist из папки "Платформы > iOS" проекта приложения .NET MAUI, чтобы открыть его в редакторе прав.
В редакторе прав выберите и настройте все необходимые для приложения права:
Сохраните изменения в файле Entitlements.plist , чтобы добавить пары "ключ-значение" в файл.
Также может потребоваться задать ключи конфиденциальности в Info.plist для определенных прав.
Использование прав
Приложение .NET MAUI iOS должно быть настроено в Visual Studio для использования прав, определенных в файле Entitlements.plist :
В Обозреватель решений щелкните правой кнопкой мыши проект приложения .NET MAUI и выберите "Свойства". Затем перейдите на вкладку подписывания пакета iOS>.
В параметрах подписывания пакета нажмите кнопку "Обзор" для поля "Пользовательские права".
В диалоговом окне "Пользовательские права" перейдите в папку, содержащую файл Entitlements.plist, выберите файл и нажмите кнопку "Открыть".
В свойствах проекта поле "Настраиваемые права" будет заполнено файлом прав:
Закройте свойства проекта.
Примечание.
Visual Studio установит поле настраиваемых прав для сборок отладки и выпуска.
При включении автоматической подготовки в качестве возможностей также будет добавлено подмножество прав. Дополнительные сведения см. в разделе "Добавление возможностей с помощью Visual Studio".
Справочник по ключу
Пары ключей и значений прав перечислены ниже для справки. В Visual Studio их можно добавить, изменив файл Entitlements.plist в виде XML-файла. В Visual Studio Code их можно добавить, изменив XML-файл в файле Entitlements.plist .
Доступ к сведениям о Wi-Fi
Это право доступа к данным Wi-Fi позволяет приложению получать сведения о подключенной сети WiFi.
Назначение определяется с помощью com.apple.developer.networking.wifi-info
ключа типа Boolean
:
<key>com.apple.developer.networking.wifi-info</key>
<true/>
Дополнительные сведения см. в разделе " Доступ к данным WiFi" на developer.apple.com.
Аттестация приложений
С помощью права App Attest вы можете создать специальный криптографический ключ на устройстве и использовать его для проверки целостности приложения перед тем, как сервер предоставляет доступ к конфиденциальным данным.
Назначение определяется с помощью com.apple.developer.devicecheck.appattest-environment
ключа типа String
:
<key>com.apple.developer.devicecheck.appattest-environment</key>
<string>development</string>
Дополнительные сведения см. в разделе " Среда аттестации приложений" в developer.apple.com.
Группы приложений
Права групп приложений позволяют приложению получать доступ к контейнерам групп, общим для нескольких связанных приложений, а также выполнять межпроцессное взаимодействие между приложениями.
Назначение определяется с помощью com.apple.security.application-groups
ключа типа Array
String
:
<key>com.apple.security.application-groups</key>
<array>
<string>group.MyAppGroups</string>
</array>
Дополнительные сведения см. в разделе "Права групп приложений" на developer.apple.com.
Apple Pay
Право Apple Pay позволяет пользователям легко и безопасно платить за физическое благо и услуги, такие как продукты, одежда, билеты и резервирования, используя платежную информацию, хранящуюся на своем устройстве.
Назначение определяется с помощью com.apple.developer.in-app-payments
ключа типа Array
String
:
<key>com.apple.developer.in-app-payments</key>
<array>
<string>merchant.your.merchantid</string>
</array>
Дополнительные сведения см. в разделе "Идентификаторы продавцов" на developer.apple.com.
Связанные домены
Права связанных доменов позволяют приложению связываться с определенными доменами для определенных служб, таких как доступ к Safari, сохраненные пароли и продолжение действий.
Назначение определяется с помощью com.apple.developer.associated-domains
ключа типа Array
String
:
<key>com.apple.developer.associated-domains</key>
<array>
<string>webcredentials:example.com</string>
</array>
Дополнительные сведения см. в разделе "Права связанных доменов" на developer.apple.com.
Поставщик учетных данных автозаполнения
Право поставщика учетных данных автозаполнения позволяет приложению с разрешением пользователя предоставлять имена пользователей и пароли для автозаполнения в приложении и Safari.
Назначение определяется с помощью com.apple.developer.authentication-services.autofill-credential-provider
ключа типа Boolean
:
<key>com.apple.developer.authentication-services.autofill-credential-provider</key>
<true/>
Дополнительные сведения см. в разделе "Право поставщика учетных данных автозаполнения" на developer.apple.com.
ClassKit
Право ClassKit позволяет вашему приложению приватно и безопасно обмениваться прогрессом учащихся с учителями на назначенных действиях, таких как чтение главы книги или прием теста в учебных средах.
Назначение определяется с помощью com.apple.developer.ClassKit-environment
ключа типа String
:
<key>com.apple.developer.ClassKit-environment</key>
<string>development</string>
Дополнительные сведения см. в разделе "Права среды ClassKit" на developer.apple.com.
Обмен данными с драйверами
Обмен данными с правами драйверов позволяет взаимодействовать между драйверами приложения и DriverKit.
Назначение определяется с помощью com.apple.developer.driverkit.communicates-with-drivers
ключа типа Boolean
:
<key>com.apple.developer.driverkit.communicates-with-drivers</key>
<true/>
Дополнительные сведения см. в разделе "Обмен данными с драйверами " на developer.apple.com.
Уведомления об обмене данными
Права на уведомления об обмене данными позволяют приложению отправлять уведомления об обмене данными от человека или нескольких пользователей.
Назначение определяется с помощью com.apple.developer.usernotifications.communication
ключа типа Boolean
:
<key>com.apple.developer.usernotifications.communication</key>
<true/>
Дополнительные сведения см. в разделе "Право службы уведомлений запросов" на developer.apple.com.
Защита данных
Право защиты данных позволяет приложению использовать встроенное шифрование на поддерживаемых устройствах. При указании файла как защищенного, система будет хранить файл в зашифрованном формате.
Назначение определяется с помощью com.apple.developer.default-data-protection
ключа типа String
:
<key>com.apple.developer.default-data-protection</key>
<string>NSFileProtectionComplete</string>
Дополнительные сведения см. в разделе "Права защиты данных" на developer.apple.com.
Расширенная виртуальная адресация
Расширенные права виртуальной адресации позволяют использовать больше адресного пространства в приложении.
Назначение определяется с помощью com.apple.developer.kernel.extended-virtual-addressing
ключа типа Boolean
:
<key>com.apple.developer.kernel.extended-virtual-addressing</key>
<true/>
Дополнительные сведения см. в разделе "Расширенные права на виртуальные адресации" на developer.apple.com.
Семейные элементы управления
Права управления семьей позволяют управлять родительскими элементами в приложении, предоставляя доступ к платформам управляемых параметров и действий устройств в API ScreenTime. Для использования элементов управления семействами требуется общий доступ к семейству для регистрации пользователей. Он предотвращает удаление приложения и включает фильтры содержимого на устройстве из сетевых расширений.
Назначение определяется с помощью com.apple.developer.family-controls
ключа типа Boolean
:
<key>com.apple.developer.family-controls</key>
<true/>
Дополнительные сведения см. в разделе "Управление семействами" на developer.apple.com.
Режим тестирования FileProvider
Право на режим тестирования FileProvider включает режим тестирования, предоставляющий расширение поставщика файлов более контроль над поведением системы во время тестирования.
Назначение определяется с помощью com.apple.developer.fileprovider.testing-mode
ключа типа Boolean
:
<key>com.apple.developer.fileprovider.testing-mode</key>
<true/>
Дополнительные сведения см. в разделе "Режим тестирования FileProvider" в developer.apple.com.
Fonts
Права шрифтов позволяют приложению с разрешением пользователя устанавливать и использовать пользовательские шрифты.
Назначение определяется с помощью com.apple.developer.user-fonts
ключа типа Array
String
:
<key>com.apple.developer.user-fonts</key>
<array>
<string>system-installation</string>
</array>
Дополнительные сведения см. в разделе "Настройка настраиваемых шрифтов " на developer.apple.com.
Групповые действия
Право на действия группы позволяет приложению взаимодействовать с тем же приложением на одном или нескольких устройствах, чтобы создать действие группы в вызове FaceTime. Групповые действия в FaceTime позволяют пользователям просматривать видео вместе, слушать музыку вместе или выполнять другое синхронное действие.
Назначение определяется с помощью com.apple.developer.group-session
ключа типа Boolean
:
<key>com.apple.developer.group-session</key>
<true/>
Дополнительные сведения см. в разделе "Права на действия группы" на developer.apple.com.
HealthKit
Право HealthKit позволяет приложению получать доступ к данным о работоспособности пользователей с разрешениями пользователя.
Назначение определяется с помощью com.apple.developer.healthkit
ключа типа Boolean
:
<key>com.apple.developer.healthkit</key>
<true/>
Дополнительные сведения см. в разделе "Права HealthKit" на developer.apple.com.
HomeKit
Назначение HomeKit позволяет приложению взаимодействовать с аксессуарами HomeKit.
Назначение определяется с помощью com.apple.developer.homekit
ключа типа Boolean
:
<key>com.apple.developer.homekit</key>
<true/>
Дополнительные сведения см. в разделе "Права HomeKit" на developer.apple.com.
Конфигурация хот-точки
Право на доступ к конфигурации хот-точки позволяет приложению настраивать сети WiFi.
Назначение определяется с помощью com.apple.developer.networking.HotspotConfiguration
ключа типа Boolean
:
<key>com.apple.developer.networking.HotspotConfiguration</key>
<true/>
Дополнительные сведения см. в разделе "Права на настройку хот-точки" на developer.apple.com.
iCloud
Право iCloud позволяет приложению хранить данные в облаке, что позволяет пользователям обмениваться данными на нескольких устройствах.
Назначение определяется с помощью com.apple.developer.icloud-container-development-container-identifiers
ключа типа, а затем дополнительных ключей, Array
String
представляющих идентификатор контейнера:
<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>
$(CFBundleIdentifier)
Заполнители $(AppIdentifierPrefix)
будут заменены правильными значениями во время сборки.
Дополнительные сведения см. в разделе "Права на идентификаторы контейнеров iCloud" на developer.apple.com.
Увеличение ограничения памяти
Увеличение ограничения памяти позволяет приложению превышать ограничение памяти приложения по умолчанию на поддерживаемых устройствах.
Назначение определяется с помощью com.apple.developer.kernel.increased-memory-limit
ключа типа Boolean
:
<key>com.apple.developer.kernel.increased-memory-limit</key>
<true/>
Дополнительные сведения см. в разделе "Увеличение ограничения памяти " на developer.apple.com.
Звук между приложениями
Право на звук между приложениями позволяет приложению отправлять и получать звук из других приложений с поддержкой звука между приложениями.
Назначение определяется с помощью inter-app-audio
ключа типа Boolean
:
<key>inter-app-audio</key>
<true/>
Дополнительные сведения см. в разделе "Право аудио между приложениями" на developer.apple.com.
Внимание
Это право устарело в iOS 13 и недоступно при запуске приложений iPads в macOS.
Цепочка ключей
Право цепочки ключей позволяет нескольким приложениям, написанным одной командой, совместно использовать пароли.
Назначение определяется с помощью keychain-access-groups
ключа типа Array
String
:
<key>keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)com.companyname.test</string>
</array>
Дополнительные сведения см. в разделе " Группы доступа к цепочке ключей" на developer.apple.com.
Управляемые домены MDM
Права управляемых доменов управления мобильными приложениями (MDM) позволяют MDM дополнять связанные домены, которые включены в приложение со значениями, такими как имена серверов, уникальные для среды.
Назначение определяется с помощью com.apple.developer.associated-domains.mdm-managed
ключа типа Boolean
:
<key>com.apple.developer.associated-domains.mdm-managed</key>
<true/>
Несколько путей
Право Multipath позволяет приложению использовать протоколы с несколькими путими, такими как TCP Multipath, которые будут легко передавать трафик из одного интерфейса в другой.
Назначение определяется с помощью com.apple.developer.networking.multipath
ключа типа Boolean
:
<key>com.apple.developer.networking.multipath</key>
<true/>
Дополнительные сведения см. в разделе "Управление несколькими путими" на developer.apple.com.
Средство чтения тегов связи рядом с полем
Право чтения тегов тега близкого поля позволяет приложению считывать теги обмена данными NFC (NDEF) рядом с полем связи (NFC).
Назначение определяется с помощью com.apple.developer.nfc.readersession.formats
ключа типа Array
String
:
<key>com.apple.developer.nfc.readersession.formats</key>
<array>
<string>NDEF</string>
<string>TAG</string>
</array>
Дополнительные сведения см. в разделе "Форматы сеансов чтения тегов близкого поля" на developer.apple.com.
Сетевые расширения
Права на расширения сети позволяют создавать расширения приложений, расширяющие и настраивающие сетевые возможности устройства.
Назначение определяется с помощью com.apple.developer.networking.networkextension
ключа типа Array
String
:
<key>com.apple.developer.networking.networkextension</key>
<array>
<string>content-filter-provider</string>
</array>
Дополнительные сведения см. в разделе "Права на расширения сети" на developer.apple.com.
Личная VPN
Личное назначение VPN позволяет приложению использовать пользовательские VPN-подключения.
Назначение определяется с помощью com.apple.developer.networking.vpn.api
ключа типа Array
String
:
<key>com.apple.developer.networking.vpn.api</key>
<array>
<string>allow-vpn</string>
</array>
Дополнительные сведения см. в разделе "Личное VPN-право " на developer.apple.com.
Push-уведомления
Права push-уведомлений позволяют приложению получать push-уведомления.
Назначение определяется с помощью aps-environment
ключа типа String
:
<key>aps-environment</key>
<string>development</string>
Дополнительные сведения см. в разделе "Права среды APS" на developer.apple.com.
Push to talk
Отправка сообщений о правах на разговор позволяет приложению сообщать о каналах Push to Talk в систему, чтобы он мог обрабатывать передачу и получение фонового звука.
Назначение определяется с помощью com.apple.developer.push-to-talk
ключа типа Boolean
:
<key>com.apple.developer.push-to-talk</key>
<true/>
Дополнительные сведения см. в статье Push to Talk Entitlement on developer.apple.com.
Общий доступ к вам
Общий доступ с правами позволяет приложению требовать ссылки, общие в беседах с сообщениями, и для их предоставления доступ к нему через платформу "Общий доступ" с помощью платформы "Вы".
Назначение определяется с помощью com.apple.developer.shared-with-you
ключа типа Boolean
:
<key>com.apple.developer.shared-with-you</key>
<true/>
Вход с помощью Apple
Вход с правами Apple позволяет пользователям проходить проверку подлинности с помощью Apple ID.
Назначение определяется с помощью com.apple.developer.applesignin
ключа типа Array
String
:
<key>com.apple.developer.applesignin</key>
<array>
<string>Default</string>
</array>
Дополнительные сведения см. в разделе "Вход с помощью прав Apple" на developer.apple.com.
Siri
Право Siri позволяет приложению обрабатывать запросы Siri.
Назначение определяется с помощью com.apple.developer.siri
ключа типа Boolean
:
<key>com.apple.developer.siri</key>
<true/>
Дополнительные сведения см. в разделе "Права Siri" на developer.apple.com.
Уведомления с учетом времени
Права на уведомления с учетом времени позволяют приложению обрабатывать уведомления, чувствительные к времени. Конфиденциальные уведомления по времени предоставляют информацию, требующую немедленного внимания, и напрямую обращается к лицу, чтобы принять меры на момент получения уведомления. Оповещения с учетом времени всегда доставляются немедленно, отображаются над другими уведомлениями и могут прерываться через фокус и не беспокоить.
Назначение определяется с помощью com.apple.developer.usernotifications.time-sensitive
ключа типа Boolean
:
<key>com.apple.developer.usernotifications.time-sensitive</key>
<true/>
Кошелек
Право кошелька позволяет приложению управлять проходами, билетами, подарочными картами и картами лояльности. Он поддерживает различные форматы штрихкода.
Назначение определяется с помощью com.apple.developer.pass-type-identifiers
ключа типа Array
String
:
<key>com.apple.developer.pass-type-identifiers</key>
<array>
<string>$(TeamIdentifierPrefix)*</string>
</array>
В этом примере приложение позволит разрешить все типы проходов. Чтобы ограничить приложение и разрешить только набор типов передач команды, задайте строковое значение $(TeamIdentifierPrefix)pass.$(CFBundleIdentifier)
, где pass.$(CFBundleIdentifier)
находится идентификатор pass.
Дополнительные сведения см. в разделе "Идентификаторы типа передачи " на developer.apple.com.
WeatherKit
Право WeatherKit позволяет приложению получать и обрабатывать текущую и прогнозируемую информацию о погоде.
Назначение определяется с помощью com.apple.developer.weatherkit
ключа типа Boolean
:
<key>com.apple.developer.weatherkit</key>
<true/>
Дополнительные сведения см. в разделе "Права WeatherKit" на developer.apple.com.
Конфигурация беспроводного аксессуара
Разрешение на настройку беспроводной аксессуаров позволяет приложению настраивать аксессуары WiFi.
Назначение определяется с помощью com.apple.external-accessory.wireless-configuration
ключа типа Boolean
:
<key>com.apple.external-accessory.wireless-configuration</key>
<true/>
Дополнительные сведения см. в разделе "Права конфигурации беспроводного доступа" на developer.apple.com.