Partilhar via


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

Ao distribuir aplicativos Mac Catalyst fora da 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 dentro de um grupo de pessoas. No entanto, é limitado a 100 dispositivos por ano de subscrição e os dispositivos têm de ser adicionados à sua Conta de Programador Apple. Os membros do Apple Developer Program e do Apple Developer Enterprise Program 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. Os 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 .NET Multi-platform App UI (.NET MAUI) Mac Catalyst fora da Mac App Store com distribuição ad-hoc, você precisará criar um perfil de provisionamento de desenvolvimento específico para ele. Esse perfil permite que o aplicativo seja assinado digitalmente para lançamento para que 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 a si mesmo ou sua organização, se ainda não tiver um.

O processo para provisionar um aplicativo .NET MAUI Mac Catalyst para distribuição ad-hoc é o seguinte:

  1. Crie uma solicitação de assinatura de certificado Para obter mais informações, consulte Criar uma solicitação de assinatura de certificado.
  2. Crie um certificado de desenvolvimento. Para saber mais, confira as informações sobre como criar um certificado de desenvolvimento.
  3. Crie uma ID de aplicativo. Para obter mais informações, consulte Criar uma ID de aplicativo.
  4. Adicione dispositivos à sua conta de programador Apple. Para obter mais informações, consulte Adicionar dispositivos.
  5. Crie um perfil de provisionamento. Para obter mais informações, consulte Criar um perfil de provisionamento.
  6. Baixe seu perfil de provisionamento. Para obter mais informações, consulte Baixar seu 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 Apple Developer Program. Ele também pode ser usado para uma Conta de desenvolvedor da Apple que faz parte do Apple Developer Enterprise Program, pois as etapas necessárias são praticamente idênticas.

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

  1. Opcionalmente, adicione direitos ao seu aplicativo. Para obter mais informações, consulte Adicionar direitos.
  2. Atualize o arquivo Info.plist do aplicativo. Para obter mais informações, consulte Atualizar Info.plist.
  3. Publique seu aplicativo usando a linha de comando. Para obter 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ê precisará criar uma solicitação de assinatura de certificado (CSR) no Acesso às Chaves em um Mac:

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

  2. Em Acesso às Chaves, selecione o item de menu Assistente > de Certificado de Acesso > às Chaves Solicitar um Certificado de 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 CA vazio.

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

    Certificate assistant dialog.

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

  8. Na caixa de diálogo Assistente de Certificado, selecione o botão Concluído.

  9. Feche o Acesso às Chaves.

Criar um certificado de desenvolvimento

O CSR permite que você gere um certificado de desenvolvimento, que confirma sua identidade. O certificado de desenvolvimento deve ser criado usando o ID Apple para sua conta de desenvolvedor Apple:

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

  2. Na sua Conta de Programador Apple, selecione o separador Certificados, IDs e Perfis .

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

  4. Na página Criar um Novo Certificado, selecione o botão de opção Desenvolvimento da Apple antes de selecionar o botão Continuar:

    Create an Apple development certificate.

  5. Na página Criar um Novo Certificado, selecione Escolher Arquivo:

    Upload your certificate signing request.

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

  7. Na página Criar um Novo Certificado, selecione o botão Continuar:

    Continue to generate your distribution certificate.

  8. Na página Baixar seu certificado, selecione o botão Download:

    Download your distribution certificate.

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

  9. No Mac, clique duas vezes no arquivo de certificado baixado para instalar o certificado nas chaves. O certificado aparece na categoria Meus Certificados no Acesso às Chaves e começa com o Desenvolvimento da Apple:

    Keychain Access showing development certificate.

    Observação

    Anote o nome completo do certificado no Acesso às Chaves. Ele será necessário ao assinar seu aplicativo.

Criar um perfil de desenvolvimento

Um perfil de provisionamento de desenvolvimento ad-hoc permite que seu aplicativo .NET MAUI Mac Catalyst seja assinado digitalmente, para que possa 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 de aplicativo é necessária para identificar o aplicativo que você está distribuindo. Uma ID de Aplicativo é semelhante a uma cadeia de caracteres DNS reverso, que identifica exclusivamente um aplicativo e deve ser idêntica ao identificador de pacote do seu aplicativo. Você pode usar a mesma ID do aplicativo que usou ao implantar seu aplicativo em um dispositivo para teste.

Existem dois tipos de ID de aplicativo:

  • Curinga. Uma ID de Aplicativo curinga permite que você use uma única ID de Aplicativo para corresponder a vários aplicativos e, normalmente, assume a forma com.domainname.*. Uma ID de 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 de Aplicativo explícita é exclusiva de um único aplicativo e normalmente assume a forma com.domainname.myid. Uma ID de aplicativo explícita permite a distribuição de um aplicativo, com um identificador de pacote correspondente. Normalmente, os IDs de aplicativo explícitos são usados para aplicativos que habilitam recursos específicos do aplicativo, como o Apple Pay ou o Game Center. Para obter mais informações sobre recursos, consulte Recursos.

Para criar uma nova ID de Aplicativo:

  1. Na sua Conta de Programador Apple, navegue até Certificados, IDs e Perfis.

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

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

  4. Na página Registrar um novo identificador, selecione o botão de opção IDs de aplicativo antes de selecionar o botão Continuar:

    Create an App ID.

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

    Register an App ID.

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

    Specify the bundle identifier for the app.

    Importante

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

    O identificador de pacote para um aplicativo .NET MAUI é armazenado no arquivo de projeto como a propriedade 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 MAUI Shared > General . O campo ID do aplicativo lista o identificador do pacote.
    • No Visual Studio para Mac, na janela Solução, clique com o botão direito do mouse em seu projeto de aplicativo .NET MAUI e selecione Propriedades. Em seguida, na janela Propriedades do projeto, selecione a guia Criar > informações do aplicativo. O campo ID do aplicativo lista o identificador do pacote.

    Quando o valor do campo ID do aplicativo for atualizado, o valor do identificador de pacote no Info.plist será atualizado automaticamente.

  7. Na página Registrar uma ID do Aplicativo, selecione os recursos que o aplicativo usa. Todos os recursos devem ser configurados nesta página e no arquivo Entitlements.plist em seu projeto de aplicativo. Para obter mais informações, consulte Recursos e direitos.

  8. Na página Registrar uma ID de Aplicativo , selecione o botão Continuar .

  9. Na página Confirmar sua ID do Aplicativo, selecione o 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 Apple. Isso pode ser alcançado com as seguintes etapas:

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

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

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

  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 Apple e clique no + botão.

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

    Register a device by naming it and entering its unique device identifier.

  7. Na página Registrar um 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 .NET MAUI Mac Catalyst usando 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 provisionamento de desenvolvimento. Esse perfil permite que o aplicativo seja assinado digitalmente para que 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 Programador Apple, selecione o separador Perfis .

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

  3. Na página Registrar um novo perfil de provisionamento, selecione o botão de opção Desenvolvimento de aplicativos do macOS antes de clicar no botão Continuar:

    Register a provisioning profile for ad-hoc distribution.

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

    Select your App ID.

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

    Select your development certificate.

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

    Screenshot of adding a device to a provisioning profile.

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

    Generate the provisioning profile.

    Observação

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

  8. Na página Gerar um Perfil de Provisionamento, clique opcionalmente no botão Download para baixar seu perfil de provisionamento.

    Observação

    Não é necessário baixar seu perfil de provisionamento agora. Em vez disso, você fará isso no Xcode.

Baixe seu perfil de provisionamento no Xcode

Depois de criar um perfil de provisionamento em sua conta de desenvolvedor Apple, o Xcode pode baixá-lo para que esteja disponível para assinar seu aplicativo:

  1. No Mac, inicie o Xcode.

  2. No Xcode, selecione o 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 Apple ao Xcode:

    Xcode Accounts dialog in preferences.

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

    Xcode select the type of account you'd like to add popup.

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

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

    Xcode Apple account sign-in.

  8. Na guia Contas, clique no botão Gerenciar Certificados... para garantir que seu certificado de distribuição tenha sido baixado.

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

    Xcode Apple Developer Program account details.

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

Adicionar direitos

O App Sandbox da Apple restringe o acesso a recursos do sistema e dados do usuário em aplicativos Mac, para conter danos se um aplicativo for comprometido. Ele deve ser habilitado para aplicativos Mac Catalyst que são distribuídos através da Mac App Store e, opcionalmente, pode ser ativado para aplicativos Mac Catalyst que são distribuídos fora da Mac App Store.

Isso pode ser feito adicionando um arquivo Entitlements.plist à pasta Platforms/MacCatalyst do seu projeto de aplicativo .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 App Sandbox é definido usando a com.apple.security.app-sandbox chave, do tipo boolean. Para obter informações sobre a Área Restrita de Aplicativos, consulte Protegendo dados do usuário com a Área Restrita de Aplicativos em developer.apple.com. Para obter informações sobre o direito de área restrita de aplicativo, consulte Direito de área restrita de aplicativo.

Se seu aplicativo abrir conexões de rede de saída, você também precisará adicionar a com.apple.security.network.client chave, 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 obter informações sobre o direito de conexões de rede de saída, consulte com.apple.security.network.client em developer.apple.com.

Atualizar Info.plist

Antes de distribuir seu aplicativo, você deve atualizar seu 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 prática recomendada executar 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 diz ao macOS para dimensionar a interface do usuário do aplicativo para corresponder ao ambiente de exibição do Mac, preservando a aparência semelhante ao 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 seu tamanho e aparência, e interagir com eles parece idêntico a interagir com AppKit controles.

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

<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 UIDeviceFamily chave:

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

Para obter mais informações sobre expressões idiomáticas 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 para o aplicativo

Defina a chave no Info.plist do seu aplicativo como uma string que representa a CFBundleDevelopmentRegion região de desenvolvimento nativa da 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 obter mais informações, consulte CFBundleDevelopmentRegion em developer.apple.com.

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

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

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

Declarar o uso de criptografia pelo seu aplicativo

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

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

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

Para obter 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 a partir da linha de comando em um Mac, abra um terminal e navegue até a pasta do seu projeto de aplicativo .NET MAUI. Execute o dotnet publish comando, 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 de compilação, que é Release.
-p:MtouchLink O modo de link para o projeto, que pode ser None, SdkOnlyou Full.
-p:CreatePackage Defina como true para que um pacote (.pkg) seja criado para o aplicativo no final da compilação.
-p:EnableCodeSigning Defina como para que a true assinatura de código esteja 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 às Chaves.
-p:CodesignProvision O perfil de provisionamento a ser usado ao assinar o pacote de aplicativos.
-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 identificador de tempo de execução (RID) para o projeto. Versões de aplicativos .NET MAUI Mac Catalyst padrão para usar maccatalyst-x64 e maccatalyst-arm64 como identificadores de tempo de execução, para oferecer suporte a aplicativos universais. Para oferecer suporte a apenas uma única arquitetura, especifique maccatalyst-x64 ou maccatalyst-arm64.
-p:UseHardenedRuntime Defina como true para habilitar o tempo de execução protegido, que é necessário para aplicativos Mac Catalyst distribuídos fora da Mac App Store.

Aviso

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

Parâmetros de compilação adicionais podem ser especificados na linha de comando, se não forem fornecidos em um arquivo de <PropertyGroup> projeto. A tabela a seguir 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 da compilação que identifica uma iteração do aplicativo.
-p:ApplicationDisplayVersion O número da versão do aplicativo.
-p:RuntimeIdentifier O identificador de tempo de execução (RID) para o projeto. Versões de aplicativos .NET MAUI Mac Catalyst padrão para usar maccatalyst-x64 e maccatalyst-arm64 como identificadores de tempo de execução, para oferecer 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 Propriedades do arquivo de projeto.

Importante

Os valores para 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 compilação em seu arquivo de projeto, consulte Definir propriedades de compilação 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 dotnet publish comando assume como padrão a Release configuração. Portanto, a configuração de compilação pode ser omitida da linha de comando.

A publicação compila, assina e empacota o aplicativo e, em seguida, 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 talvez seja necessário digitar sua senha de login e permitir a codesign execução:

Allow codesign to sign your app on your Mac.

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

Definir propriedades de compilação no arquivo de projeto

Uma alternativa para especificar parâmetros de compilação na linha de comando é especificá-los em seu arquivo de projeto em um <PropertyGroup>arquivo . A tabela a seguir lista algumas das propriedades de compilação 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 da compilação que identifica uma iteração do aplicativo.
<ApplicationDisplayVersion> O número da 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 às 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 provisionamento a ser usado ao assinar o pacote de aplicativos.
<CreatePackage> Defina como true para que um pacote (.pkg) seja criado para o aplicativo no final da compilação.
<EnableCodeSigning> Defina como para que a true assinatura de código esteja habilitada.
<MtouchLink> O modo de link para o projeto, que pode ser None, SdkOnlyou Full.
<RuntimeIdentifier> O identificador de tempo de execução (RID) para o projeto. Versões de aplicativos .NET MAUI Mac Catalyst padrão para usar maccatalyst-x64 e maccatalyst-arm64 como identificadores de tempo de execução, para oferecer suporte a aplicativos universais. Para oferecer suporte a apenas uma única arquitetura, especifique maccatalyst-x64 ou maccatalyst-arm64.
<UseHardenedRuntime> Defina como true para habilitar o tempo de execução 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 Propriedades do arquivo de projeto.

Importante

Os valores para essas propriedades de compilação 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 que você omita 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 exemplo <PropertyGroup> adiciona uma verificação de condição, impedindo que as configurações sejam processadas, a menos que a verificação de condição seja aprovada. A verificação de condição procura dois itens:

  1. A configuração de compilação é 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 qualquer uma dessas condições falhar, as configurações não serão processadas. Mais importante, as <CodesignKey> configurações e <CodesignProvision> não estão definidas, impedindo que o aplicativo seja assinado.

Depois de adicionar o grupo de propriedades acima, o aplicativo pode ser publicado a partir da linha de comando em um Mac abrindo um terminal e navegando até a pasta do seu projeto de aplicativo .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, em seguida, copia o .pkg para a pasta bin/Release/net8.0-maccatalyst/publish/.

Distribuir seu aplicativo para teste

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

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

Confira também