Compartilhar via


Publicar um aplicativo Mac Catalyst para distribuição ad hoc

Ao distribuir aplicativos Mac Catalyst fora do Mac App Store, você também pode optar por distribuir seu aplicativo para um número limitado de usuários em dispositivos registrados. Isso é conhecido como distribuição ad hoc e é usado principalmente para testar aplicativos em um grupo de pessoas. No entanto, é limitado a 100 dispositivos por ano de associação, e os dispositivos devem ser adicionados à sua conta de desenvolvedor da Apple. Os membros do Programa de Desenvolvedor da Apple e do Programa de Desenvolvedor da Apple para Empresas podem usar essa abordagem de distribuição.

A distribuição de um aplicativo Mac Catalyst requer que o aplicativo seja provisionado usando um perfil de provisionamento. Perfis de provisionamento são arquivos que contêm informações de assinatura de código, bem como a identidade do aplicativo e seu mecanismo de distribuição pretendido.

Para distribuir um aplicativo Mac Catalyst do .NET MAUI (NET Multi-platform App UI) fora do App Store do Mac com distribuição ad hoc, você precisará criar um perfil de provisionamento de desenvolvimento específico para ele. Este perfil permite que o aplicativo seja assinado digitalmente para lançamento para que ele possa ser instalado em Macs. Um perfil de provisionamento de desenvolvimento ad hoc contém uma ID do aplicativo, um certificado de desenvolvimento e uma lista dos dispositivos que podem instalar o aplicativo. Você precisará criar um certificado de desenvolvimento para identificar você ou sua organização, se ainda não tiver um.

O processo de provisionamento de um aplicativo Mac Catalyst do .NET MAUI para distribuição ad hoc é o seguinte:

  1. Crie uma solicitação de assinatura de certificado Para mais informações, consulte Criar uma solicitação de assinatura de certificado.
  2. Criar um certificado de desenvolvimento. Para saber mais, confira as informações sobre como criar um certificado de desenvolvimento.
  3. Crie uma ID do Aplicativo. Para obter mais informações, confira Criar uma ID do aplicativo.
  4. Adicionar dispositivos à sua conta de desenvolvedor da Apple. Para obter informações, consulte Adicionar dispositivos.
  5. Crie um perfil de provisão. Para obter mais informações, confira Criar um perfil de provisão.
  6. Baixar o perfil de provisionamento. Para mais informações, consulte Baixar o perfil de provisionamento no Xcode.

Importante

Este artigo mostra o provisionamento para distribuição ad hoc usando uma conta de desenvolvedor da Apple que faz parte do Programa de Desenvolvedor da Apple. Ele também pode ser usado para uma conta de desenvolvedor da Apple que faz parte do Programa de Desenvolvedor da Apple para Empresas, pois as etapas necessárias são praticamente idênticas.

Em seguida, quando o provisionamento for concluído, você deverá preparar o aplicativo para publicação e, em seguida, publicá-lo com o seguinte processo:

  1. Você tem a opção de adicionar direitos ao aplicativo. Para mais informações, confira Adicionar direitos.
  2. Atualizar o arquivo Info.plist do aplicativo. Para mais informações,consulte Atualizar Info.plist.
  3. Publicar um aplicativo usando a linha de comando. Para mais informações, consulte Publicar usando a linha de comando.

Criar uma solicitação de assinatura de certificado

Antes de criar um certificado de distribuição, primeiro você precisa criar uma CSR (solicitação de assinatura de certificado) no acesso ao conjunto de chaves em um Mac:

  1. Em seu Mac, inicie Acesso ao Conjunto de Chaves.

  2. No item de menu Acesso ao conjunto de chaves, selecione Acesso ao conjunto de chaves > Assistente de certificado > Solicitar um certificado a uma Autoridade de Certificação...

  3. Na caixa de diálogo Assistente de certificado, insira um endereço de email no campo Endereço de email do usuário.

  4. Na caixa de diálogo Assistente de certificado, insira um nome para a chave no campo Nome comum.

  5. Na caixa de diálogo Assistente de Certificado, deixe o campo Endereço de Email da AC vazio.

  6. Na caixa de diálogo Assistente de certificado, escolha o botão de opção Salvo no disco e clique em Continuar:

    Caixa de diálogo do assistente de certificado.

  7. Salve a solicitação de assinatura de certificado em um local conhecido.

  8. Na caixa de diálogo Assistente de certificado, clique no botão Concluído.

  9. Feche o Acesso ao conjunto de chaves.

Criar um certificado de desenvolvimento

O CSR permite gerar um certificado de desenvolvimento, que confirma sua identidade. O certificado de desenvolvimento deve ser criado usando a ID da Apple da sua Conta de desenvolvedor da Apple:

  1. Em um navegador da Web, faça logon na sua Conta de desenvolvedor da Apple.

  2. Na sua Conta de desenvolvedor da Apple, selecione a guia Certificados, IDs e Perfis.

  3. Na página Certificados, Identificadores e Perfis, clique no botão + para criar um certificado.

  4. Na página Criar certificado, clique no botão de opção Desenvolvimento da Apple antes de clicar no botão Continuar:

    Criar um certificado de desenvolviment da Apple.o

  5. Na página Criar certificado, selecione Escolher arquivo:

    Carregue a solicitação de assinatura de certificado.

  6. Na caixa de diálogo Escolher arquivos para carregar, selecione o arquivo de solicitação de certificado que você criou anteriormente (um arquivo com uma extensão de arquivo .certSigningRequest) e selecione Carregar.

  7. Na página Criar certificado, clique no botão Continuar:

    Continue gerando o certificado de distribuição.

  8. Na página Baixar certificado, clique no botão Baixar:

    Baixe o certificado de distribuição.

    O arquivo de certificado (um arquivo com uma extensão .cer) será baixado no local escolhido.

  9. No Mac, clique duas vezes no arquivo de certificado baixado para instalar o certificado no conjunto de chaves. O certificado aparecerá na categoria Meus Certificados em Acesso ao conjunto de chaves e começará com Desenvolvimento da Apple:

    Acesso ao conjunto de chaves mostrando o certificado de desenvolvimento.

    Observação

    Anote o nome completo do certificado no Acesso ao conjunto de chaves. Você precisa dele ao assinar o aplicativo.

Criar um perfil de desenvolvimento

Um perfil de provisionamento de desenvolvimento ad hoc permite que o aplicativo Mac Catalyst do .NET MAUI seja assinado digitalmente para poder ser instalado em Macs específicos. Um perfil de provisionamento de desenvolvimento ad hoc contém uma ID do aplicativo, um certificado de desenvolvimento e uma lista dos dispositivos que podem instalar o aplicativo.

Criar uma ID do Aplicativo

Uma ID do Aplicativo é necessária para identificar o aplicativo que você está distribuindo. Uma ID do Aplicativo é semelhante a uma cadeia de caracteres DNS reversa, que identifica exclusivamente um aplicativo e deve ser idêntica ao identificador de pacote do aplicativo. Você pode usar a mesma ID do Aplicativo usada ao implantar seu aplicativo em um dispositivo para teste.

Há dois tipos de ID do Aplicativo:

  • Curinga. Uma ID do Aplicativo curinga permite que você use uma única ID do Aplicativo para corresponder a vários aplicativos, e normalmente usa o formato com.domainname.*. Uma ID do Aplicativo curinga pode ser usada para distribuir vários aplicativos e deve ser usada para aplicativos que não habilitam recursos específicos do aplicativo.
  • Explícita. Uma ID do Aplicativo explícita é exclusiva de um único aplicativo e normalmente usa o formato com.domainname.myid. Uma ID do Aplicativo explícita permite a distribuição de um aplicativo, com um identificador de pacote correspondente. IDs do Aplicativo explícitas normalmente são usadas para aplicativos que habilitam recursos específicos do aplicativo, como Apple Pay ou Game Center. Para obter mais informações sobre recursos, confira Recursos.

Para criar uma nova ID do Aplicativo:

  1. Em sua Conta de desenvolvedor da Apple, navegue até Certificados, IDs e Perfis.

  2. Na página Certificados, Identificadores e Perfis, selecione a guia Identificadores.

  3. Na página Identificadores, clique no botão + para criar uma nova ID do aplicativo.

  4. Na página Registrar novo identificador, clique no botão de opção IDs do aplicativo antes de clicar no botão Continuar:

    Crie uma ID do Aplicativo.

  5. Na página Registrar novo identificador, selecione Aplicativo antes de clicar no botão Continuar:

    Registrar um ID de aplicativo.

  6. Na página Registrar uma ID do Aplicativo, insira uma descrição e selecione o botão de opção de ID do Pacote Explícito ou Curinga. Em seguida, insira a ID do Pacote para o seu aplicativo no formato DS inverso:

    Especifique o identificador de pacote para o aplicativo.

    Importante

    A ID do Pacote inserida deve corresponder ao Identificador de pacote no arquivo Info.plist em seu projeto de aplicativo.

    O identificador de pacote para um aplicativo do .NET MAUI é armazenado no arquivo de projeto como a propriedade da ID do Aplicativo. No Visual Studio, 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 Geral > Compartilhado MAUI. O campo ID do Aplicativo lista o identificador do pacote.

    Quando o valor do campo ID do Aplicativo for atualizado, o valor do Identificador do pacote no arquivo Info.plist será atualizado automaticamente.

  7. Na página Registrar uma ID do Aplicativo, selecione todos os recursos usados pelo aplicativo. Todos os recursos devem ser configurados nesta página e no arquivo Entitlements.plist em seu projeto de aplicativo. Para obter mais informações, confira Recursos e Direitos.

  8. Na página Registrar uma ID do aplicativo, clique no botão Continuar.

  9. Na página Confirmar ID do aplicativo, clique no botão Registrar.

Adicionar dispositivos

Ao criar um perfil de provisionamento para distribuição ad hoc, o perfil deve incluir quais dispositivos podem executar o aplicativo. Antes de selecionar os dispositivos a serem adicionados ao perfil de provisionamento, você deve primeiro adicionar dispositivos à sua Conta de desenvolvedor da Apple. Você pode fazer isso seguindo as etapas abaixo:

  1. Selecione o item de menu Apple > Sobre este Mac.

  2. Na guia Visão geral, clique no botão Relatório do sistema....

  3. No Relatório do sistema, selecione o expansor Hardware para ver a visão geral do hardware. O relatório exibe o UUID (identificador universal exclusivo) como UUID de hardware no macOS 10.15 e anteriores ou UDID de provisionamento no macOS 11.0 e posteriores.

  4. Selecione o valor UUID de hardware ou UDID de provisionamento e copie-o para a área de transferência.

  5. Em um navegador da Web, vá para a seção Dispositivos da sua Conta de desenvolvedor da Apple e clique no botão +.

  6. Na página Registrar um novo dispositivo, defina a Plataforma como macOS e dê um nome para o novo dispositivo. Em seguida, cole o identificador da área de transferência no campo Identificação do dispositivo (UUID) e clique no botão Continuar:

    Registre um dispositivo nomeando-o e inserindo o identificador exclusivo do dispositivo.

  7. Na página Registrar Novo Dispositivo, revise as informações e clique no botão Registrar.

Repita as etapas acima para todos os Macs nos quais você deseja implantar seu aplicativo Mac Catalyst do .NET MAUI usando a distribuição ad hoc.

Criar um perfil de provisão

Depois que a ID do aplicativo tiver sido criada, você deverá criar um perfil de provisão de desenvolvimento. Este perfil permite que o aplicativo seja assinado digitalmente para que ele possa ser instalado em Macs específicos.

Para criar um perfil de provisionamento para distribuição ad hoc:

  1. Na página Certificados, Identificadores e Perfis da sua Conta de Desenvolvedor da Apple, selecione a guia Perfis.

  2. Na guia Perfis, clique no botão + para criar um novo perfil.

  3. Na página Registrar um Novo Perfil de Provisionamento, clique no botão de opção Desenvolvimento de Aplicativo macOS antes de clicar no botão Continuar:

    Registrar um perfil de provisionamento para distribuição ad hoc.

  4. Na página Gerar um perfil de provisionamento, clique no botão de opção Mac Catalyst. Depois, na lista suspensa ID do aplicativo, selecione a ID do aplicativo que você criou anteriormente antes de clicar no botão Continuar:

    Selecione a ID do Aplicativo.

  5. Na página Gerar Perfil de Provisionamento, selecione a caixa de seleção que corresponde ao certificado de desenvolvimento antes de clicar no botão Continuar:

    Selecione o seu certificado de desenvolvimento.

  6. Na página Gerar perfil de provisionamento, selecione os dispositivos nos quais o aplicativo será instalado e clique no botão Continuar.

    Captura de tela da adição de um dispositivo a um perfil de provisionamento.

  7. Na página Gerar um perfil de provisão, insira um nome para o perfil de provisão antes de clicar no botão Gerar:

    Gere o perfil de provisão.

    Observação

    Anote o nome do perfil de provisão, pois ele será necessário ao assinar o seu aplicativo.

  8. Na página Gerar um perfil de provisão, opcionalmente, clique no botão Baixar para baixar o seu perfil de provisão.

    Observação

    Não é necessário baixar oseu perfil de provisão agora. Você fará isso no Xcode.

Baixar o perfil de provisionamento no Xcode

Depois de criar um perfil de provisionamento na sua Conta de desenvolvedor da Apple, o Xcode poderá baixá-lo para que ele esteja disponível para assinar o seu aplicativo:

  1. No Mac, inicie o Xcode.

  2. No Xcode, clique no item de menu Preferências > do Xcode....

  3. Na caixa de diálogo Preferências, selecione a guia Contas.

  4. Na guia Contas, clique no botão + para adicionar sua Conta de desenvolvedor da Apple ao Xcode:

    Caixa de diálogo Contas do Xcode nas preferências.

  5. No pop-up do tipo de conta, selecione ID da Apple e clique no botão Continuar :

    Xcode selecione o tipo de conta que você quer adicionar o pop-up.

  6. No pop-up de login, digite seu ID da Apple e clique no botão Avançar.

  7. No pop-up de login, digite a senha do seu ID da Apple e clique no botão Avançar:

    Entrada da conta Apple no Xcode

  8. Na guia Contas, clique no botão Gerenciar certificados... para confirmar se o certificado de distribuição foi baixado.

  9. Na guia Contas, clique no botão Baixar perfis manuais para baixar seus perfis de provisionamento:

    Detalhes da conta do Programa de Desenvolvedor da Apple no Xcode.

  10. Aguarde a conclusão do download e feche o Xcode.

Adicionar direitos

A área restrita do aplicativo da Apple restringe o acesso aos recursos do sistema e aos dados do usuário em aplicativos Mac para conter danos se um aplicativo for comprometido. Ele deve ser habilitado para aplicativos Mac Catalyst distribuídos pela Mac App Store e, opcionalmente, pode ser habilitado para aplicativos Mac Catalyst distribuídos fora da Mac App Store.

Isso pode ser feito adicionando um arquivo Entitlements.plist à pasta Platforms/MacCatalyst do seu projeto do aplicativo do .NET MAUI:

<?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>
    <key>com.apple.security.app-sandbox</key>
    <true/>
  </dict>
</plist>

O direito da área restrita do aplicativo é definido usando a chave com.apple.security.app-sandbox, do tipo boolean. Para informações sobre a área restrita do aplicativo, consulte Proteção dos dados do usuário com a área restrita do aplicativo em developer.apple.com. Para informações sobre o direito da área restrita do aplicativo, consulte Direito da área restrita do aplicativo.

Se o aplicativo abrir conexões de rede de saída, você também precisará adicionar a chave com.apple.security.network.client, do tipo boolean, ao arquivo Entitlements.plist:

<?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>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.network.client</key>
    <true/>
  </dict>
</plist>

Para informações sobre o direito a conexões de rede de saída, veja com.apple.security.network.client em developer.apple.com.

Atualizar Info.plist

Antes de distribuir o aplicativo, você deve atualizar o arquivo Info.plist com informações adicionais.

Observação

Embora não seja um requisito atualizar o arquivo Info.plist do aplicativo ao distribuí-lo para teste, essas atualizações serão necessárias ao distribuir a versão final testada do aplicativo. Portanto, é uma melhor prática fazer essas atualizações.

Especificar o idioma da interface do usuário

Um aplicativo Mac Catalyst pode ser executado no idioma da interface do usuário do iPad ou Mac:

  • O idioma da interface do usuário do iPad informa ao macOS para dimensionar a interface do usuário do aplicativo para corresponder ao ambiente de exibição do Mac, preservando a aparência do iPad.
  • O idioma da interface do usuário do Mac não dimensiona a interface do usuário do aplicativo para corresponder ao ambiente de exibição do Mac. Alguns controles mudam o tamanho e a aparência, e interagir com eles parece idêntico a interagir com controles AppKit.

Por padrão, os aplicativos Mac Catalyst do .NET MAUI usam o idioma da interface do usuário do iPad. Se esse for o comportamento desejado, verifique se o arquivo Info.plist do aplicativo especifica apenas 2 como o valor da chave UIDeviceFamily:

<key>UIDeviceFamily</key>
<array>
  <integer>2</integer>
</array>

Para adotar o idioma da interface do usuário do Mac, atualize o arquivo Info.plist do aplicativo para especificar 6 como o valor da chave UIDeviceFamily:

<key>UIDeviceFamily</key>
<array>
  <integer>6</integer>
</array>

Para mais informações sobre idiomas da interface do usuário do Mac Catalyst, consulte Especificar o idioma da interface do usuário para seu aplicativo Mac Catalyst.

Definir o idioma e a região padrão do aplicativo

Defina a chave CFBundleDevelopmentRegion no Info.plist do aplicativo como uma string que represente a região de desenvolvimento nativa de localização:

<key>CFBundleDevelopmentRegion</key>
<string>en</string>

O valor da chave deve ser um designador de idioma, com um designador de região opcional. Para mais informações, consulte CFBundleDevelopmentRegion em developer.apple.com.

Defina a chave NSHumanReadableCopyright no Info.plist do seu aplicativo como um string que represente a notificação de direitos autorais legível por humanos para seu aplicativo:

<key>NSHumanReadableCopyright</key>
<string>MyMauiApp © 2023</string>

Para mais informações, consulte NSHumanReadableCopyright em developer.apple.com.

Declarar o uso de criptografia do aplicativo

Se o aplicativo usa criptografia e você planeja distribuí-lo fora dos Estados Unidos ou do Canadá, ele está sujeito aos requisitos de conformidade de exportação dos EUA. Você pode fornecer informações sobre o uso de criptografia do aplicativo no arquivo Info.plist.

Isso é feito adicionando a chave ITSAppUsesNonExemptEncryption ao Info.plist do aplicativo com um valor boolean que indica se o aplicativo usa criptografia:

<key>ITSAppUsesNonExemptEncryption</key>
<false/>

Para mais informações, consulte Conformidade com os regulamentos de exportação de criptografia em developer.apple.com.

Publicar usando a linha de comando

Para publicar seu aplicativo Mac Catalyst pela linha de comando no Mac, abra um terminal e navegue até a pasta do projeto do aplicativo do .NET MAUI. Execute o comando dotnet publish, fornecendo os seguintes parâmetros:

Parâmetro Valor
-f ou --framework A estrutura de destino, que é net8.0-maccatalyst.
-c ou --configuration A configuração do build, que é Release.
-p:MtouchLink O modo de link do projeto, que pode ser None, SdkOnly ou Full.
-p:CreatePackage Defina como true para que um pacote (.pkg) seja criado para o aplicativo no final do build.
-p:EnableCodeSigning Defina como true para que a assinatura de código seja habilitada.
-p:CodesignKey O nome da chave de assinatura de código. Defina como o nome do seu certificado de distribuição, conforme exibido em Acesso ao conjunto de chaves.
-p:CodesignProvision O perfil de provisão a ser usado ao assinar o pacote do aplicativo.
-p:CodesignEntitlements O caminho para o arquivo de direitos que especifica os direitos exigidos pelo aplicativo. Defina como Platforms\MacCatalyst\Entitlements.plist.
-p:RuntimeIdentifier O RID (identificador de runtime) para o projeto. As compilações de versão dos aplicativos Mac Catalyst do .NET MAUI usam por padrão maccatalyst-x64 e maccatalyst-arm64 como identificadores de runtime para dar suporte a aplicativos universais. Para oferecer suporte a apenas uma única arquitetura, especifique maccatalyst-x64 ou maccatalyst-arm64.
-p:UseHardenedRuntime Defina como true para ativar o runtime protegido, que é necessário para aplicativos Mac Catalyst distribuídos fora da Mac App Store.

Aviso

A tentativa de publicar uma solução MAUI do .NET resultará na tentativa do comando dotnet publish de publicar cada projeto na solução individualmente, o que pode causar problemas quando você adicionou outros tipos de projeto à sua solução. Portanto, o comando dotnet publish deve ser definido como escopo para seu projeto de aplicativo MAUI do .NET.

Parâmetros de build adicionais podem ser especificados na linha de comando, se não forem fornecidos em um <PropertyGroup> em seu arquivo de projeto. A seguinte tabela lista alguns dos parâmetros comuns:

Parâmetro Valor
-p:ApplicationTitle O nome visível do usuário para o aplicativo.
-p:ApplicationId O identificador exclusivo do aplicativo, como com.companyname.mymauiapp.
-p:ApplicationVersion A versão de build que identifica uma iteração do aplicativo.
-p:ApplicationDisplayVersion O número de versão do aplicativo.
-p:RuntimeIdentifier O RID (identificador de runtime) para o projeto. As compilações de versão dos aplicativos Mac Catalyst do .NET MAUI usam por padrão maccatalyst-x64 e maccatalyst-arm64 como identificadores de runtime para dar suporte a aplicativos universais. Para oferecer suporte a apenas uma única arquitetura, especifique maccatalyst-x64 ou maccatalyst-arm64.

Para obter uma lista completa das propriedades de compilação, consulte as Propriedades de arquivo do Project.

Importante

Os valores de todos esses parâmetros não precisam ser fornecidos na linha de comando. Eles também podem ser fornecidos no arquivo de projeto. Quando um parâmetro é fornecido na linha de comando e no arquivo de projeto, o parâmetro de linha de comando tem precedência. Para obter mais informações sobre como fornecer propriedades de build em seu arquivo de projeto, consulte Definir propriedades de build em seu arquivo de projeto.

Por exemplo, use o seguinte comando para criar e assinar um .pkg em um Mac para distribuição ad hoc para usuários em dispositivos registrados:

dotnet publish -f net8.0-maccatalyst -c Release -p:MtouchLink=SdkOnly -p:CreatePackage=true -p:EnableCodeSigning=true  -p:CodesignKey="Apple Development: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp (Ad-hoc)" -p:CodesignEntitlements="Platforms\MacCatalyst\Entitlements.plist" -p:UseHardenedRuntime=true

Observação

No .NET 8, o comando dotnet publish usa como padrão a configuração Release. Portanto, a configuração de build pode ser omitida da linha de comando.

A publicação compila, assina e empacota o aplicativo, e depois copia o .pkg para a pasta bin/Release/net8.0-maccatalyst/publish/. Se você publicar o aplicativo usando apenas uma única arquitetura, ele será publicado na pasta bin/Release/net8.0-maccatalyst/{architecture}/publish/.

Durante o processo de assinatura, pode ser necessário inserir sua senha de login e permitir a execução de codesign:

Permitir que o codesign assine o aplicativo no Mac.

Para obter mais informações sobre o comando dotnet publish, consulte dotnet publish.

Definir propriedades de build em seu arquivo de projeto

Uma alternativa para especificar parâmetros de build na linha de comando é especificá-los em seu arquivo de projeto em um <PropertyGroup>. A seguinte tabela lista algumas das propriedades de build comuns:

Propriedade Valor
<ApplicationTitle> O nome visível do usuário para o aplicativo.
<ApplicationId> O identificador exclusivo do aplicativo, como com.companyname.mymauiapp.
<ApplicationVersion> A versão de build que identifica uma iteração do aplicativo.
<ApplicationDisplayVersion> O número de versão do aplicativo.
<CodesignKey> O nome da chave de assinatura de código. Defina como o nome do seu certificado de distribuição, conforme exibido em Acesso ao conjunto de chaves.
<CodesignEntitlements> O caminho para o arquivo de direitos que especifica os direitos exigidos pelo aplicativo. Defina como Platforms\MacCatalyst\Entitlements.plist.
<CodesignProvision> O perfil de provisão a ser usado ao assinar o pacote do aplicativo.
<CreatePackage> Defina como true para que um pacote (.pkg) seja criado para o aplicativo no final do build.
<EnableCodeSigning> Defina como true para que a assinatura de código seja habilitada.
<MtouchLink> O modo de link do projeto, que pode ser None, SdkOnly ou Full.
<RuntimeIdentifier> O RID (identificador de runtime) para o projeto. As compilações de versão dos aplicativos Mac Catalyst do .NET MAUI usam por padrão maccatalyst-x64 e maccatalyst-arm64 como identificadores de runtime para dar suporte a aplicativos universais. Para oferecer suporte a apenas uma única arquitetura, especifique maccatalyst-x64 ou maccatalyst-arm64.
<UseHardenedRuntime> Defina como true para ativar o runtime protegido, que é necessário para aplicativos Mac Catalyst distribuídos fora da Mac App Store.

Para obter uma lista completa das propriedades de compilação, consulte as Propriedades de arquivo do Project.

Importante

Os valores dessas propriedades de build não precisam ser fornecidos no arquivo de projeto. Eles também podem ser fornecidos na linha de comando quando você publica o aplicativo. Isso permite omitir valores específicos do arquivo de projeto.

O exemplo a seguir mostra um grupo de propriedades típico para criar e assinar seu aplicativo Mac Catalyst para distribuição ad hoc para usuários em dispositivos registrados:

<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
  <MtouchLink>SdkOnly</MtouchLink>
  <EnableCodeSigning>True</EnableCodeSigning>
  <CreatePackage>true</CreatePackage>
  <CodesignKey>Apple Development: John Smith (AY2GDE9QM7)</CodesignKey>
  <CodesignProvision>MyMauiApp (Ad-hoc)</CodesignProvision>
  <CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
  <UseHardenedRuntime>true</UseHardenedRuntime>
</PropertyGroup>

Este <PropertyGroup> de exemplo adiciona uma verificação de condição, impedindo que as configurações sejam processadas, a menos que a verificação de condição passe. A verificação de condição procura dois itens:

  1. A configuração de build é definida como Release.
  2. A estrutura de destino é definida como algo que contém o texto net8.0-maccatalyst.
  3. A plataforma está definida como AnyCPU.

Se alguma destas condições falhar, as configurações não serão processadas. Mais importante, as configurações <CodesignKey> e <CodesignProvision> não são definidas, impedindo que o aplicativo seja assinado.

Depois de adicionar o grupo de propriedades acima, o aplicativo pode ser publicado pela linha de comando em um Mac abrindo um terminal e navegando até a pasta do projeto do aplicativo do .NET MAUI. Em seguida, execute o seguinte comando:

dotnet build -f net8.0-maccatalyst -c Release

A publicação compila, assina e empacota o aplicativo, e depois copia o .pkg para a pasta bin/Release/net8.0-maccatalyst/publish/.

Distribuir o aplicativo para teste

O .pkg pode ser distribuído aos usuários em dispositivos registrados, onde pode ser executado clicando duas vezes no arquivo .pkg para instalar o aplicativo.

Para informações sobre como abrir aplicativos com segurança em um Mac, consulte Abrir apps aplicativos segurança no seu Mac em support.apple.com.

Confira também