Partilhar via


Direitos do iOS

No iOS, os aplicativos do .NET MAUI (.NET Multi-platform App UI) 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. Direitos são usados para solicitar a expansão da área restrita para fornecer funcionalidades adicionais ao aplicativo, como integração com a Siri. Todos os direitos usados pelo seu aplicativo devem ser especificados no arquivo Entitlements.plist do aplicativo. Para mais informações sobre direitos, consulte Direitos em developer.apple.com.

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

Os direitos estão intimamente relacionados ao conceito de funcionalidades. Ambos solicitam a expansão da área restrita em que o aplicativo é executado para fornecer funcionalidades adicionais ao aplicativo. Os direitos normalmente são adicionados ao desenvolver seu aplicativo, enquanto as funcionalidades geralmente são adicionadas ao assinar o código do seu aplicativo para distribuição. No entanto, quando o provisionamento automático está habilitado, adicionar determinados direitos ao seu aplicativo também atualizará as funcionalidades do aplicativo no perfil de provisionamento. Para mais informações, confira Adicionar funcionalidades 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 todos os direitos usados pelo aplicativo também sejam especificados como funcionalidades no perfil de provisionamento. Para saber mais, confira Funcionalidades.

Adicionar um arquivo Entitlements.plist

Para adicionar um novo arquivo de direitos ao projeto do aplicativo do .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 projeto do aplicativo do .NET MAUI para abri-lo no editor de direitos.

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

    Editor de direitos do Visual Studio para iOS.

  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 em Info.plist para determinados direitos.

Direitos de consumo

Um aplicativo iOS do.NET MAUI deve ser configurado no Visual Studio para consumir os direitos definidos no arquivo Entitlements.plist:

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

  2. Nas configurações Assinatura do 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:

    Conjunto de campos de direitos personalizados do Visual Studio.

  5. Feche as propriedades do projeto.

Observação

O Visual Studio definirá o campo de direitos personalizados para builds 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 mais informações, confira Adicionar funcionalidades com o Visual Studio.

Referência de chave

Os pares de 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 Code, eles podem ser adicionados editando o XML no arquivo Entitlements.plist.

Acesse as informações do WiFi

Esse direito ao acesso a informações de WiFi permite o seu aplicativo obtenha informações sobre a rede WiFi conectada no momento.

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

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

Para mais informações, consulte Acessar o direito a informações de WiFi em developer.apple.com.

Atestado de aplicativo

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

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

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

Para mais informações, confira Ambiente do Atestado de Aplicativo em developer.apple.com.

Grupos de aplicativos

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

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

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

Para mais informações, confira Direito aos grupos de aplicativo em developer.apple.com.

Apple Pay

O direito ao Apple Pay permite que os usuários paguem com facilidade e segurança por bens físicos e serviços, como mantimentos, roupas, ingressos e reservas, usando as informações de pagamento armazenadas no dispositivo.

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

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

Para mais informações, confira Direito das IDs do comerciante em developer.apple.com.

Domínios associados

O direito aos domínios associados permite que o 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 chave com.apple.developer.associated-domains, do tipo Array de String:

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

Para informações, confira Direito aos domínios associados em developer.apple.com.

Provedor de credenciais de preenchimento automático

O direito ao 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 Preenchimento Automático no aplicativo e no Safari.

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

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

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

ClassKit

O direito ao ClassKit permite que o aplicativo compartilhe de forma privada e segura o progresso do estudante 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 chave com.apple.developer.ClassKit-environment, do tipo String:

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

Para mais informações, consulte Direito ao ambiente do ClassKit em developer.apple.com.

Comunica-se com drivers

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

O direito é definido usando a chave com.apple.developer.driverkit.communicates-with-drivers, 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 a 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 chave com.apple.developer.usernotifications.communication, do tipo Boolean:

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

Para mais informações, consulte Direito ao serviço de notificação de solicitação em developer.apple.com.

Proteção de dados

O direito à 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 armazena o arquivo em formato criptografado.

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

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

Para mais informações, veja Direito a proteção de dados em developer.apple.com.

Endereçamento virtual estendido

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

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

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

Para mais informações, consulte Direito ao endereçamento virtual estendido em developer.apple.com.

Controles familiares

O direito aos controles familiares ativa os controles parentais no aplicativo, concedendo acesso às estruturas de Configurações gerenciadas e Atividade do dispositivo na API ScreenTime. O uso dos controles familiares requer o Compartilhamento familiar para registro do usuário. Ele impede a remoção do seu aplicativo e habilita os filtros de conteúdo em Extensões de rede.

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

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

Para mais informações, confira Direito aos controles familiares em developer.apple.com.

Modo de teste do FileProvider

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

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

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

Para mais informações, consulte Direito ao modo de teste do FileProvider em developer.apple.com.

Fontes

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

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

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

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

Atividades em grupo

O direito a atividades em grupo permite que um aplicativo se comunique com o mesmo aplicativo em um ou mais dispositivos, para criar uma atividade em 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 realizem outra atividade síncrona.

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

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

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

HealthKit

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

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

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

Para mais informações, veja Direito ao HealthKit em developer.apple.com.

HomeKit

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

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

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

Para mais informações, veja Direito ao HomeKit em developer.apple.com.

Configuração de hotspot

O direito a configuração de ponto de hotspot permite que o aplicativo configure redes WiFi.

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

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

Para mais informações, consulte Direito à configuração de hotspot em developer.apple.com.

iCloud

O direito ao iCloud permite que o 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 String e, em seguida, chaves adicionais que representam o identificador de contê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 espaços reservados $(AppIdentifierPrefix) e $(CFBundleIdentifier) serão substituídos pelos valores corretos no momento do build.

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

Aumento do limite de memória

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

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

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

Para mais informações, veja Direito ao aumento de limite da memória em developer.apple.com.

Áudio entre aplicativos

O direito a áudio entre aplicativos permite que o aplicativo envie e receba áudio de/para outros aplicativos em que o áudio entre aplicativos esteja habilitado.

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

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

Para mais informações, veja Direito ao áudio entre aplicativos em developer.apple.com.

Importante

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

Keychain

O dirieto a conjuntos de chaves permite que vários aplicativos escritos pela mesma equipe compartilhem senhas.

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

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

Para mais informações, veja Direito aos grupos de acesso do conjunto de chaves em developer.apple.com.

Domínios associados gerenciados pelo MDM

O direito a domínios associados gerenciados pelo MDM (gerenciamento de dispositivos móveis) permite que o MDM complemente os Domínios associados incluídos no seu aplicativo com valores como nomes de servidor exclusivos para um ambiente.

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

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

Múltiplos caminhos

O direito a vários caminhos permite que o aplicativo use protocolos de vários caminhos, como o Multipath TCP, que transferirá tráfego de uma interface para outra sem problemas.

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

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

Para mais informações, veja Direito a vários caminhos em developer.apple.com.

Leitor de tags de comunicação a curta distância

O direito ao leitor de tags de comunicação a curta distância permite que um aplicativo leia tags NFC (comunicação a curta distância) em NDEF (Formato de troca de dados em NFC).

O direito é definido usando a chave com.apple.developer.nfc.readersession.formats, 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 Direito a formatos de sessão do leitor de tags de comunicação a curta distância em developer.apple.com.

Extensões de rede

O direito a 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 chave com.apple.developer.networking.networkextension, do tipo Array de String:

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

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

VPN pessoal

O direitoa à VPN pessoal permite que o aplicativo use conexões VPN personalizadas.

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

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

Para mais informações, veja Direito à VPN pessoal em developer.apple.com.

Notificações por push

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

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

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

Para mais informações, veja Direito ao ambiente do APS em developer.apple.com.

Push-to-talk

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

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

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

Para mais informações, veja Direito ao push-to-talk em developer.apple.com.

Compartilhado com você

O direito ao compartilhado com você permite que um aplicativo reivindique links compartilhados em conversas do Mensagens e que eles sejam exibidos na estrutura do Compartilhado com você.

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

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

Entrar com a Apple

O direito ao entrar com a Apple permite que os usuários se autentiquem com a ID daa Apple.

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

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

Para obter mais informações, veja Fazer login com direitos da Apple em developer.apple.com.

Siri

O direito à Siri permite que o aplicativo processe solicitações da Siri.

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

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

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

Notificações urgentes

O direito a notificações urgentes permite que um aplicativo processe notificações urgentes. As notificações urgentes fornecem informações que precisam de atenção imediata e solicitam diretamente que o indivíduo tome medidas no momento em que a notificação é recebida. Os alertas urgentes são sempre entregues imediatamente, são exibidos acima de outras notificações e podem interromper os modos Foco e Não perturbe.

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

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

Carteira

O direito à carteira permite que o aplicativo gerencie passes, ingressos, cartõe de presente e cartões de fidelidade. Ele aceita diversos formatos de código de barras.

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

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

Esse exemplo habilitará o aplicativo a permitir todos os tipos de passes. Para restringir o aplicativo e permitir somente um conjunto de tipos de passe de equipe, defina o valor da cadeia de caracteres como $(TeamIdentifierPrefix)pass.$(CFBundleIdentifier), em que pass.$(CFBundleIdentifier) a ID do passe.

Para mais informações, veja Direito às IDs de tipo de passe em developer.apple.com.

WeatherKit

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

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

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

Para mais informações, veja Direito ao WeatherKit em developer.apple.com.

Configuração de acessório sem fio

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

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

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

Para mais informações, consulte Direito à configuração de acessórios sem fio em developer.apple.com.