Publicar um aplicativo Mac Catalyst para distribuição da Mac App Store

A abordagem mais comum para distribuir aplicativos Mac Catalyst para usuários é por meio da Mac App Store. Os aplicativos são enviados para a Mac App Store por meio de uma ferramenta on-line chamada App Store Connect. Somente os desenvolvedores que pertencem ao Apple Developer Program têm acesso a essa ferramenta. Membros do Programa de Desenvolvedores Corporativos da Apple não tem acesso. Todas as aplicações submetidas à Mac App Store requerem aprovação da Apple.

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, você precisará criar um perfil de provisionamento de distribuição 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 distribuição contém uma ID de Aplicativo e um certificado de distribuição. Você precisará criar um certificado de distribuição para identificar a si mesmo ou sua organização, se ainda não tiver um. Além disso, você precisará criar um certificado de instalador do Mac para assinar o pacote de instalação do seu aplicativo para envio à Mac App Store.

O processo para provisionar um aplicativo .NET MAUI Mac Catalyst para distribuição por meio da Mac App Store é 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 distribuição. Para obter mais informações, consulte Criar um certificado de distribuição.
  3. Crie um certificado de instalador. Para obter mais informações, consulte Criar um certificado do instalador.
  4. Crie uma ID de aplicativo. Para obter mais informações, consulte Criar uma ID de aplicativo.
  5. Configure a ID do aplicativo. Para obter mais informações, consulte Configurar a ID do aplicativo.
  6. Crie um perfil de provisionamento. Para obter mais informações, consulte Criar um perfil de provisionamento.
  7. Baixe seu perfil de provisionamento. Para obter mais informações, consulte Baixar seu perfil de provisionamento no Xcode.

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

  1. Adicione os direitos necessários 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 distribuição

O CSR permite que você gere um certificado de distribuição, que confirma sua identidade. O certificado de distribuição deve ser criado usando o ID Apple da 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 Distribuição Apple antes de selecionar o botão Continuar:

    Create an Apple distribution certificate.

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

    Upload your certificate signing request for your Apple distribution certificate.

  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 Apple 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 a Distribuição Apple:

    Keychain Access showing distribution certificate.

    Observação

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

Criar um certificado de instalador

O CSR permite que você gere um certificado de instalador, que é necessário para assinar o pacote de instalação do seu aplicativo para envio à Mac App Store. O certificado do instalador deve ser criado usando o ID Apple da sua conta de desenvolvedor Apple:

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

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

  3. Na página Criar um Novo Certificado, selecione o botão de opção Distribuição do Mac Installer antes de selecionar o botão Continuar:

    Create a Mac Installer distribution certificate.

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

    Upload your certificate signing request for the Mac installer certificate.

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

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

    Continue to generate your installer certificate.

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

    Download your Mac installer certificate.

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

  8. 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 3rd Party Mac Developer Installer:

    Keychain Access showing installer 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 distribuição

Um perfil de provisionamento de distribuição permite que seu aplicativo .NET MAUI Mac Catalyst seja assinado digitalmente para lançamento, para que possa ser instalado em outro Mac. Um perfil de provisionamento para distribuição da Mac App Store contém uma ID de aplicativo e um certificado de distribuição.

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.

Configurar a ID do aplicativo

Por padrão, um aplicativo Mac Catalyst usa o mesmo ID de pacote que um aplicativo iOS para que você possa oferecer os aplicativos juntos como uma compra universal na Mac App Store. Como alternativa, você pode especificar uma ID de pacote exclusiva para oferecer o aplicativo como um produto separado.

Para configurar a ID do 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 a ID do aplicativo que você acabou de criar.

  4. Na página Editar a Configuração do ID do Aplicativo, role até a parte inferior da página e habilite a caixa de seleção do recurso Mac Catalyst. Em seguida, selecione o botão Configurar :

    Enable the Mac Catalyst capability.

  5. No pop-up Configurar ID de pacote para Mac Catalyst, selecione o botão de opção Usar ID de aplicativo Mac existente. Na lista suspensa ID do aplicativo, selecione o ID do aplicativo para iOS parceiro do Mac Catalyst ou o ID do aplicativo que você criou se estiver oferecendo o aplicativo Mac Catalyst como um produto separado. Em seguida, selecione o botão Salvar:

    Configure the Bundle ID for Mac Catalyst.

  6. Na página Editar sua Configuração de ID do Aplicativo, selecione o botão Salvar:

    Save the Mac Catalyst configuration.

  7. No pop-up Modificar recursos do aplicativo, selecione o botão Confirmar:

    Modify the app capabilities.

Criar um perfil de provisão

Depois que a ID do aplicativo tiver sido criada e configurada, você deverá criar um perfil de provisionamento de distribuição. Esse perfil permite que o aplicativo seja assinado digitalmente para lançamento para que possa ser instalado em Macs.

Para criar um perfil de provisionamento para distribuição da Mac App Store:

  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 Mac App Store antes de clicar no botão Continuar:

    Register a provisioning profile for app store distribution.

  4. Na página Gerar um perfil de provisionamento, selecione o botão de opção Mac. 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, selecione o botão de opção que corresponde ao seu certificado de distribuição antes de clicar no botão Continuar:

    Select your distribution certificate.

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

  7. 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 estar habilitado para aplicativos Mac Catalyst que são distribuídos pela 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 publicar seu aplicativo, você deve atualizar seu arquivo Info.plist com informações adicionais para garantir que o aplicativo possa ser carregado na Mac App Store e para ajudar a garantir um processo de revisão tranquilo da Mac App Store.

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.

Definir a categoria do aplicativo

As categorias ajudam os utilizadores a descobrir a sua aplicação na Mac App Store. Você pode definir a categoria principal do aplicativo em seu arquivo Info.plist :

<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>

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

Observação

A categoria principal do seu aplicativo deve corresponder à categoria principal definida no App Store Connect.

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. Toda vez que você envia uma versão do seu aplicativo para o App Store Connect, ele passa por uma revisão de conformidade com os regulamentos de exportação de criptografia. Para evitar que o App Store Connect faça perguntas para guiá-lo durante a revisão, você pode fornecer as informações necessárias no arquivo Info.plist do seu aplicativo.

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:EnablePackageSigning Defina como true para que o pacote criado seja assinado.
-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:PackageSigningKey A chave de assinatura do pacote a ser usada ao assinar o pacote. Defina como o nome do certificado do instalador, conforme exibido em Acesso às Chaves.

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.

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 através da Mac App Store:

dotnet publish -f net8.0-maccatalyst -c Release -p:MtouchLink=SdkOnly -p:CreatePackage=true -p:EnableCodeSigning=true -p:EnablePackageSigning=true -p:CodesignKey="Apple Distribution: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp" -p:CodesignEntitlements="Platforms\MacCatalyst\Entitlements.plist" -p:PackageSigningKey="3rd Party Mac Developer Installer: John Smith (AY2GDE9QM7)"

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 codesign e productbuild executar:

Allow codesign to sign your app on your Mac.Allow productbuild 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.
<EnablePackageSigning> Defina como true para que o pacote criado seja assinado.
<MtouchLink> O modo de link para o projeto, que pode ser None, SdkOnlyou Full.
<PackageSigningKey> A chave de assinatura do pacote a ser usada ao assinar o pacote. Defina como o nome do certificado do instalador, conforme exibido em Acesso às Chaves.

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 da Mac App Store:

<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
  <MtouchLink>SdkOnly</MtouchLink>
  <EnableCodeSigning>True</EnableCodeSigning>
  <EnablePackageSigning>true</EnablePackageSigning>
  <CreatePackage>true</CreatePackage>
  <CodesignKey>Apple Distribution: John Smith (AY2GDE9QM7)</CodesignKey>
  <CodesignProvision>MyMauiApp</CodesignProvision>
  <CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
  <PackageSigningKey>3rd Party Mac Developer Installer: John Smith (AY2GDE9QM7)</PackageSigningKey>
</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 <PackageSigningKey> não estão definidas, <CodesignProvision>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

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

Carregar para a Mac App Store

Depois que um aplicativo foi assinado com um certificado de distribuição da Apple, ele não poderá ser executado localmente. Em vez disso, ele deve ser carregado no App Store Connect, onde será assinado novamente para habilitar a execução local.

Para distribuir seu aplicativo pela Mac App Store ou TestFlight, você precisará criar um registro de aplicativo no App Store Connect. Esse registro inclui todas as informações sobre o aplicativo como ele aparecerá na App Store e todas as informações necessárias para gerenciar o aplicativo durante todo o processo de distribuição. Para obter mais informações, consulte Criar um registro de aplicativo em developer.apple.com.

O Transporter pode ser usado para enviar seu aplicativo para a Mac App Store. Também ajudará a identificar erros com pacotes de aplicativos que interrompem o envio bem-sucedido.

Confira também