Compartilhar via


Direitos do iOS

No iOS, os aplicativos .NET Multi-Platform App UI (.NET MAUI) são executados em uma área restrita que fornece um conjunto de regras que limitam o acesso entre o aplicativo e os recursos do sistema ou dados do usuário. Os direitos são usados para solicitar a expansão da área restrita para dar ao seu aplicativo recursos adicionais, como a integração com a Siri. Quaisquer direitos usados pelo seu aplicativo devem ser especificados no arquivo Entitlements.plist do aplicativo. Para obter mais informações sobre direitos, consulte Direitos em developer.apple.com.

Além de especificar direitos, o arquivo Entitlements.plist é usado para assinar o código do aplicativo. Ao assinar o código do seu aplicativo, o arquivo de direitos é combinado com informações da sua Conta de desenvolvedor Apple e outras informações do projeto para aplicar um conjunto final de direitos ao seu aplicativo.

Os direitos estão estreitamente relacionados com o conceito de capacidades. Ambos solicitam a expansão da área restrita em que seu aplicativo é executado, para oferecer recursos adicionais. Normalmente, os direitos são adicionados ao desenvolver seu aplicativo, enquanto os recursos geralmente são adicionados ao assinar o código do aplicativo para distribuição. No entanto, quando o provisionamento automático estiver habilitado, adicionar determinados direitos ao seu aplicativo também atualizará os recursos do seu aplicativo em seu perfil de provisionamento. Para obter mais informações, consulte Adicionar recursos com o Visual Studio.

Importante

Um arquivo Entitlements.plist não está vinculado a uma conta de desenvolvedor da Apple. Portanto, ao criar um perfil de provisionamento para seu aplicativo, você deve garantir que quaisquer direitos usados por seu aplicativo também sejam especificados como recursos em seu perfil de provisionamento. Para saber mais, confira Funcionalidades.

Adicionar um arquivo Entitlements.plist

Para adicionar um novo arquivo de direitos ao seu projeto de aplicativo .NET MAUI, adicione um novo arquivo XML chamado Entitlements.plist à pasta Platforms\iOS do seu projeto de aplicativo. Em seguida, adicione o seguinte XML ao arquivo:

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

Definir direitos

Os direitos podem ser configurados no Visual Studio clicando duas vezes no arquivo Entitlements.plist para abri-lo no editor de direitos.

  1. No Gerenciador de Soluções, clique duas vezes no arquivo Entitlements.plist na pasta Plataformas > iOS do seu projeto de aplicativo .NET MAUI para abri-lo no editor de direitos.

  2. No editor de direitos, selecione e configure todos os direitos exigidos pelo seu aplicativo:

    Visual Studio iOS entitlements editor.

  3. Salve as alterações no arquivo Entitlements.plist para adicionar os pares de chave/valor de direito ao arquivo.

Também pode ser necessário definir chaves de privacidade no Info.plist, para certos direitos.

Direitos de consumo

Um aplicativo iOS .NET Maui deve ser configurado para consumir os direitos definidos no arquivo Entitlements.plist .

  1. No Gerenciador de Soluções, clique com o botão direito do mouse em seu projeto de aplicativo .NET MAUI e selecione Propriedades. Em seguida, navegue até a guia Assinatura de pacote do iOS>.

  2. Nas configurações de Assinatura de Pacote , clique no botão Procurar... do campo Direitos Personalizados .

  3. Na caixa de diálogo Direitos Personalizados, navegue até a pasta que contém o arquivo Entitlements.plist, selecione o arquivo e clique no botão Abrir.

  4. Nas propriedades do projeto, o campo Direitos Personalizados será preenchido com o arquivo de direitos:

    Visual Studio custom entitlements field set.

  5. Feche as propriedades do projeto.

Observação

O Visual Studio definirá o campo de direitos personalizados para compilações de depuração e versão.

Quando o provisionamento automático estiver habilitado, um subconjunto de direitos também será adicionado ao perfil de provisionamento do seu aplicativo como recursos. Para obter mais informações, consulte Adicionar recursos com o Visual Studio.

Referência-chave

Os pares chave/valor de direito estão listados abaixo para referência. No Visual Studio, eles podem ser adicionados editando o arquivo Entitlements.plist como um arquivo XML. No Visual Studio para Mac, eles podem ser adicionados por meio do modo de exibição Código-fonte do editor de direitos.

Acessar informações de Wi-Fi

Esse direito de informações de acesso WiFi permite que seu aplicativo obtenha informações sobre a rede Wi-Fi conectada no momento.

O direito é definido usando a com.apple.developer.networking.wifi-info chave, do tipo Boolean:

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

Para obter mais informações, consulte Acessar direito de informações WiFi no developer.apple.com.

App Attest

Com o direito App Attest, você pode gerar uma chave criptográfica especial em seu dispositivo e usá-la para validar a integridade de seu aplicativo antes que um servidor forneça acesso a dados confidenciais.

O direito é definido usando a com.apple.developer.devicecheck.appattest-environment chave, do tipo String:

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

Para obter mais informações, consulte Ambiente de atestado de aplicativo no developer.apple.com.

Grupos de aplicativos

O direito de grupos de aplicativos permite que seu aplicativo acesse contêineres de grupo compartilhados entre vários aplicativos relacionados, bem como execute a comunicação entre processos entre os aplicativos.

O direito é definido usando a com.apple.security.application-groups chave, do tipo Array de String:

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

Para obter mais informações, consulte Direito a grupos de aplicativos em developer.apple.com.

Apple Pay

O direito ao Apple Pay permite que os usuários paguem de forma fácil e segura por bens físicos e serviços, como mantimentos, roupas, ingressos e reservas, usando informações de pagamento armazenadas em seus dispositivos.

O direito é definido usando a com.apple.developer.in-app-payments chave, do tipo Array de String:

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

Para obter mais informações, consulte Direito a IDs de comerciante em developer.apple.com.

Domínios associados

O direito de domínios associados permite que seu aplicativo seja associado a domínios específicos para serviços específicos, como acesso ao Safari, senhas salvas e continuação de atividades.

O direito é definido usando a com.apple.developer.associated-domains chave, do tipo Array de String:

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

Para obter mais informações, consulte Direito de domínios associados em developer.apple.com.

Provedor de credenciais de Preenchimento Automático

O direito do provedor de credenciais de Preenchimento Automático permite que um aplicativo, com permissão de usuário, forneça nomes de usuário e senhas para o Preenchimento Automático no aplicativo e no Safari.

O direito é definido usando a com.apple.developer.authentication-services.autofill-credential-provider chave, do tipo Boolean:

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

Para obter mais informações, consulte Direito do provedor de credenciais de preenchimento automático em developer.apple.com.

ClassKit

O direito do ClassKit permite que seu aplicativo compartilhe de forma privada e segura o progresso do aluno com os professores em atividades atribuídas, como ler um capítulo de um livro ou fazer um teste, em ambientes gerenciados pela escola.

O direito é definido usando a com.apple.developer.ClassKit-environment chave, do tipo String:

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

Para obter mais informações, consulte Direito de ambiente do ClassKit no developer.apple.com.

Comunica-se com os drivers

O direito de comunicação com os drivers permite a comunicação entre um aplicativo e os drivers do DriverKit.

O direito é definido usando a com.apple.developer.driverkit.communicates-with-drivers chave, do tipo Boolean:

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

Para obter mais informações, consulte Comunica-se com drivers em developer.apple.com.

Notificações de comunicação

O direito de notificações de comunicação permite que um aplicativo envie notificações de comunicação de uma pessoa para uma pessoa ou várias pessoas.

O direito é definido usando a com.apple.developer.usernotifications.communication chave, do tipo Boolean:

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

Para obter mais informações, consulte Solicitar direito de serviço de notificação em developer.apple.com.

Proteção de dados

O direito de proteção de dados permite que seu aplicativo use a criptografia interna em dispositivos compatíveis. Quando você especifica um arquivo como protegido, o sistema armazenará o arquivo em um formato criptografado.

O direito é definido usando a com.apple.developer.default-data-protection chave, do tipo String:

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

Para obter mais informações, consulte Direito à proteção de dados em developer.apple.com.

Endereçamento virtual estendido

O direito de endereçamento virtual estendido permite que você use mais espaço de endereço em seu aplicativo.

O direito é definido usando a com.apple.developer.kernel.extended-virtual-addressing chave, do tipo Boolean:

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

Para obter mais informações, consulte Direito de endereçamento virtual estendido no developer.apple.com.

Controles familiares

O direito de controles de família habilita os controles parentais em seu aplicativo, concedendo acesso às estruturas Configurações Gerenciadas e Atividade do Dispositivo na API ScreenTime. O uso dos controles de família requer o Compartilhamento Familiar para o registro do usuário. Ele impede a remoção do seu aplicativo e habilita filtros de conteúdo no dispositivo a partir de extensões de rede.

O direito é definido usando a com.apple.developer.family-controls chave, do tipo Boolean:

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

Para obter mais informações, consulte Direito de controles familiares em developer.apple.com.

Modo de teste do FileProvider

O direito do modo de teste FileProvider habilita um modo de teste que fornece à extensão do Provedor de Arquivos mais controle sobre o comportamento do sistema durante o teste.

O direito é definido usando a com.apple.developer.fileprovider.testing-mode chave, do tipo Boolean:

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

Para obter mais informações, consulte FileProvider Testing Mode Entitlement on developer.apple.com.

Fontes

O direito de fontes permite que seu aplicativo, com permissão de usuário, instale e use fontes personalizadas.

O direito é definido usando a com.apple.developer.user-fonts chave, do tipo Array de String:

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

Para obter mais informações, consulte Configurando fontes personalizadas em developer.apple.com.

Atividades em grupo

O direito de atividades em grupo permite que um aplicativo se comunique com o mesmo aplicativo em um ou mais outros dispositivos, para criar uma atividade de grupo em uma chamada do FaceTime. As atividades em grupo no FaceTime permitem que os usuários assistam a vídeos juntos, ouçam música juntos ou executem outra atividade síncrona.

O direito é definido usando a com.apple.developer.group-session chave, do tipo Boolean:

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

Para obter mais informações, consulte Direito a atividades de grupo em developer.apple.com.

HealthKit

O direito HealthKit permite que seu aplicativo acesse, com permissão do usuário, informações pessoais de saúde.

O direito é definido usando a com.apple.developer.healthkit chave, do tipo Boolean:

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

Para obter mais informações, consulte Direito ao HealthKit no developer.apple.com.

HomeKit

O direito do HomeKit permite que seu aplicativo interaja com os acessórios do HomeKit.

O direito é definido usando a com.apple.developer.homekit chave, do tipo Boolean:

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

Para obter mais informações, consulte Direito do HomeKit no developer.apple.com.

Configuração do hotspot

O direito de direito à configuração do ponto de acesso permite que seu aplicativo configure redes Wi-Fi.

O direito é definido usando a com.apple.developer.networking.HotspotConfiguration chave, do tipo Boolean:

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

Para obter mais informações, consulte Direito de configuração de ponto de acesso em developer.apple.com.

iCloud

O direito do iCloud permite que seu aplicativo armazene dados na nuvem, possibilitando que os usuários compartilhem seus dados em vários dispositivos.

O direito é definido usando a com.apple.developer.icloud-container-development-container-identifiers chave, do tipo Array de e, em seguida, chaves adicionais que representam o identificador de Stringcontêiner:

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

Os $(AppIdentifierPrefix) espaços reservados e $(CFBundleIdentifier) serão substituídos pelos valores corretos em tempo de compilação.

Para obter mais informações, consulte Direito aos identificadores de contêiner do iCloud no developer.apple.com.

Aumento do limite de memória

O aumento do direito ao limite de memória permite que seu aplicativo exceda o limite de memória padrão do aplicativo em dispositivos compatíveis.

O direito é definido usando a com.apple.developer.kernel.increased-memory-limit chave, do tipo Boolean:

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

Para obter mais informações, consulte Maior direito de limite de memória em developer.apple.com.

Áudio entre aplicativos

O direito de áudio entre aplicativos permite que seu aplicativo envie e receba áudio de/para outros aplicativos que tenham o áudio entre aplicativos habilitado.

O direito é definido usando a inter-app-audio chave, do tipo Boolean:

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

Para obter mais informações, consulte Direito de áudio entre aplicativos no developer.apple.com.

Importante

Esse direito foi preterido no iOS 13 e não está disponível ao executar aplicativos para iPads no macOS.

Keychain

O direito às chaves permite que vários aplicativos escritos pela mesma equipe compartilhem senhas.

O direito é definido usando a keychain-access-groups chave, do tipo Array de String:

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

Para obter mais informações, consulte Direito a grupos de acesso às chaves em developer.apple.com.

Domínios associados gerenciados pelo MDM

O direito de domínios associados gerenciados pelo Gerenciamento de Desenvolvimento Móvel (MDM) permite que o MDM complemente os Domínios Associados incluídos em seu aplicativo com valores como nomes de servidor exclusivos para um ambiente.

O direito é definido usando a com.apple.developer.associated-domains.mdm-managed chave, do tipo Boolean:

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

Múltiplos caminhos

O direito Multipath permite que seu aplicativo use protocolos multipath, como Multipath TCP, que transferirá perfeitamente o tráfego de uma interface para outra.

O direito é definido usando a com.apple.developer.networking.multipath chave, do tipo Boolean:

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

Para obter mais informações, consulte Multipath Entitlement on developer.apple.com.

Leitor de tags de comunicação de campo próximo

O direito do leitor de etiquetas de comunicação de campo próximo permite que um aplicativo leia tags NFC Data Exchanged Format (NDEF) Near Field Communication (NFC).

O direito é definido usando a com.apple.developer.nfc.readersession.formats chave, do tipo Array de String:

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

Para obter mais informações, consulte Near Field Communication Tag Reader Session Formats Entitlement on developer.apple.com.

Extensões de rede

O direito de extensões de rede permite que você crie extensões de aplicativo que estendem e personalizam os recursos de rede do seu dispositivo.

O direito é definido usando a com.apple.developer.networking.networkextension chave, do tipo Array de String:

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

Para obter mais informações, consulte Direito de extensões de rede em developer.apple.com.

VPN pessoal

O direito VPN pessoal permite que seu aplicativo use conexões VPN personalizadas.

O direito é definido usando a com.apple.developer.networking.vpn.api chave, do tipo Array de String:

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

Para obter mais informações, consulte Direito VPN pessoal em developer.apple.com.

Notificações por push

O direito de notificações por push permite que seu aplicativo receba notificações por push.

O direito é definido usando a aps-environment chave, do tipo String:

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

Para obter mais informações, consulte Direito ao ambiente APS no developer.apple.com.

Empurre para falar

O direito de push to talk permite que seu aplicativo relate canais Push to Talk ao sistema para que ele possa lidar com a transmissão e o recebimento de áudio em segundo plano.

O direito é definido usando a com.apple.developer.push-to-talk chave, do tipo Boolean:

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

Para obter mais informações, consulte Direito de Push to Talk no developer.apple.com.

Compartilhado com você

O direito compartilhado com você permite que um aplicativo reivindique links compartilhados em conversas do Mensagens e que eles sejam exibidos a ele por meio da estrutura Compartilhado com Você.

O direito é definido usando a com.apple.developer.shared-with-you chave, do tipo Boolean:

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

Entrar com a Apple

O login com direito Apple permite que os usuários se autentiquem com seu ID Apple.

O direito é definido usando a com.apple.developer.applesignin chave, do tipo Array de String:

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

Para obter mais informações, consulte Iniciar sessão com o direito Apple no developer.apple.com.

Siri

O direito à Siri permite que seu aplicativo lide com solicitações da Siri.

O direito é definido usando a com.apple.developer.siri chave, do tipo Boolean:

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

Para obter mais informações, consulte Direito à Siri em developer.apple.com.

Notificações sensíveis ao tempo

O direito de notificações sensíveis ao tempo permite que um aplicativo lide com notificações sensíveis ao tempo. As notificações sensíveis ao tempo fornecem informações que exigem atenção imediata e pedem diretamente ao indivíduo que tome medidas no momento em que a notificação é recebida. Os alertas sensíveis ao tempo são sempre entregues imediatamente, aparecem acima de outras notificações e podem romper o foco e não perturbar.

O direito é definido usando a com.apple.developer.usernotifications.time-sensitive chave, do tipo Boolean:

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

Carteira

O direito à carteira permite que seu aplicativo gerencie passes, ingressos, cartões-presente e cartões de fidelidade. Ele suporta uma variedade de formatos de código de barras.

O direito é definido usando a com.apple.developer.pass-type-identifiers chave, do tipo Array de String:

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

Este exemplo permitirá que seu aplicativo permita todos os tipos de aprovação. Para restringir seu aplicativo e permitir apenas um conjunto de tipos de passe de equipe, defina o valor da cadeia de caracteres como $(TeamIdentifierPrefix)pass.$(CFBundleIdentifier) onde pass.$(CFBundleIdentifier) é a ID de aprovação.

Para obter mais informações, consulte Direito a IDs de tipo de passe em developer.apple.com.

Kit Meteorológico

O direito ao WeatherKit permite que um aplicativo receba e processe informações meteorológicas atuais e previstas.

O direito é definido usando a com.apple.developer.weatherkit chave, do tipo Boolean:

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

Para obter mais informações, consulte Direito do WeatherKit no developer.apple.com.

Configuração de acessórios sem fio

O direito de configuração de acessórios sem fio permite que seu aplicativo configure acessórios WiFi.

O direito é definido usando a com.apple.external-accessory.wireless-configuration chave, do tipo Boolean:

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

Para obter mais informações, consulte Wireless Accessory Configuration Entitlement on developer.apple.com.