Publicar um aplicativo Mac Catalyst para distribuição na Mac App Store
A abordagem mais comum para distribuir aplicativos Mac Catalyst aos usuários é pela Mac App Store. Os aplicativos são enviados à Mac App Store por meio de uma ferramenta online 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. Todos os aplicativos enviados à Mac App Store precisam de aprovação da Apple.
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), você precisará criar um perfil de provisionamento de distribuição 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 provisão de distribuição contém uma ID do 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 Mac para assinar o pacote do instalador do seu aplicativo para envio à Mac App Store.
O processo de provisionamento de um aplicativo Mac Catalyst do .NET MAUI para distribuição por meio da Mac App Store é o seguinte:
- Crie uma solicitação de assinatura de certificado Para mais informações, consulte Criar uma solicitação de assinatura de certificado.
- Crie um certificado de distribuição. Para obter mais informações, confira Criar um certificado de distribuição.
- Crie um certificado de instalador. Para mais informações, confira Criar um certificado de instalador.
- Crie uma ID do Aplicativo. Para obter mais informações, confira Criar uma ID do aplicativo.
- Configure a ID do aplicativo. Para mais informações, confira Configurar a ID do aplicativo.
- Crie um perfil de provisão. Para obter mais informações, confira Criar um perfil de provisão.
- Baixar o perfil de provisionamento. Para mais informações, consulte Baixar o perfil de provisionamento no Xcode.
Em seguida, finalizado o provisionamento, você deverá preparar o aplicativo para publicação e depois publicá-lo com o seguinte processo:
- Adicione os direitos necessários ao aplicativo. Para mais informações, confira Adicionar direitos.
- Atualizar o arquivo Info.plist do aplicativo. Para mais informações,consulte Atualizar Info.plist.
- 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:
Em seu Mac, inicie Acesso ao Conjunto de Chaves.
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...
Na caixa de diálogo Assistente de certificado, insira um endereço de email no campo Endereço de email do usuário.
Na caixa de diálogo Assistente de certificado, insira um nome para a chave no campo Nome comum.
Na caixa de diálogo Assistente de Certificado, deixe o campo Endereço de Email da AC vazio.
Na caixa de diálogo Assistente de certificado, escolha o botão de opção Salvo no disco e clique em Continuar:
Salve a solicitação de assinatura de certificado em um local conhecido.
Na caixa de diálogo Assistente de certificado, clique no botão Concluído.
Feche o Acesso ao conjunto de chaves.
Criar um certificado de distribuição
O CSR permite gerar um certificado de distribuição, que confirma sua identidade. O certificado de distribuição deve ser criado usando a ID da Apple da sua conta de desenvolvedor da Apple.
Em um navegador da Web, faça logon na sua Conta de desenvolvedor da Apple.
Na sua Conta de desenvolvedor da Apple, selecione a guia Certificados, IDs e Perfis.
Na página Certificados, Identificadores e Perfis, clique no botão + para criar um certificado.
Na página Criar certificado, clique no botão de opção Distribuição da Apple antes de clicar no botão Continuar:
Na página Criar certificado, selecione Escolher arquivo:
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.Na página Criar certificado, clique no botão Continuar:
Na página Baixar certificado, clique no botão Baixar:
O arquivo de certificado (um arquivo com uma extensão
.cer
) será baixado no local escolhido.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 Distribuição da Apple:
Observação
Anote o nome completo do certificado no Acesso ao conjunto de chaves. Você precisa dele ao assinar o aplicativo.
Criar um certificado de instalador
O CSR permite gerar um certificado de instalador, que é necessário para assinar o pacote de instalação do aplicativo para envio à Mac App Store. O certificado do instalador deve ser criado usando a ID da Apple da sua conta de desenvolvedor da Apple:
Na sua Conta de desenvolvedor da Apple, selecione a guia Certificados, IDs e Perfis.
Na página Certificados, Identificadores e Perfis, clique no botão + para criar um certificado.
Na página Criar certificado, clique no botão de opção Distribuição do instalador Mac antes de clicar no botão Continuar:
Na página Criar certificado, selecione Escolher arquivo:
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.Na página Criar certificado, clique no botão Continuar:
Na página Baixar certificado, clique no botão Baixar:
O arquivo de certificado (um arquivo com uma extensão
.cer
) será baixado no local escolhido.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 Instalador do desenvolvedor Mac de terceiros:
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 distribuição
Um perfil de provisionamento de distribuição permite que seu aplicativo Mac Catalyst do .NET MAUI seja assinado digitalmente para lançamento, para que ele possa ser instalado em outro Mac. Um perfil de provisionamento para distribuição na Mac App Store contém uma ID do aplicativo e um certificado de distribuição.
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:
Em sua Conta de desenvolvedor da Apple, navegue até Certificados, IDs e Perfis.
Na página Certificados, Identificadores e Perfis, selecione a guia Identificadores.
Na página Identificadores, clique no botão + para criar uma nova ID do aplicativo.
Na página Registrar novo identificador, clique no botão de opção IDs do aplicativo antes de clicar no botão Continuar:
Na página Registrar novo identificador, selecione Aplicativo antes de clicar no botão Continuar:
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:
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.
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.
Na página Registrar uma ID do aplicativo, clique no botão Continuar.
Na página Confirmar ID do aplicativo, clique no 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 um ID de pacote exclusivo para oferecer o aplicativo como um produto separado.
Para configurar a ID do aplicativo:
Em sua Conta de desenvolvedor da Apple, navegue até Certificados, IDs e Perfis.
Na página Certificados, Identificadores e Perfis, selecione a guia Identificadores.
Na página Identificadores, selecione a ID do aplicativo que você acabou de criar.
Na página Editar a Configuração da ID do Aplicativo, role até a parte inferior da página e ative a caixa de seleção do recurso Mac Catalyst. Depois, clique no botão Configurar:
No pop-up Configurar ID do Pacote para Mac Catalyst, clique no botão de opção Usar ID do Aplicativo Mac existente. No menu suspenso ID do aplicativo, selecione o ID do aplicativo do aplicativo 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, clique no botão Salvar:
Na página Editar a configuração da ID do aplicativo, clique no botão Salvar:
No pop-up Modificar recursos do aplicativo, clique no botão Confirmar:
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. Este perfil permite que o aplicativo seja assinado digitalmente para lançamento para que ele possa ser instalado em Macs.
Para criar um perfil de provisionamento para distribuição na Mac App Store:
Na página Certificados, Identificadores e Perfis da sua Conta de Desenvolvedor da Apple, selecione a guia Perfis.
Na guia Perfis, clique no botão + para criar um novo perfil.
Na página Registrar um Novo Perfil de Provisionamento, clique no botão de opção App Store do Mac antes de clicar no botão Continuar:
Na página Gerar um perfil de provisionamento, clique no botão de opção Mac. Depois, na lista suspensa ID do aplicativo, selecione a ID do aplicativo que você criou anteriormente antes de clicar no botão Continuar:
Na página Gerar um perfil de provisão, selecione o botão de opção que corresponde ao certificado de distribuição antes de clicar no botão Continuar:
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:
Observação
Anote o nome do perfil de provisão, pois ele será necessário ao assinar o seu aplicativo.
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:
No Mac, inicie o Xcode.
No Xcode, clique no item de menu Preferências > do Xcode....
Na caixa de diálogo Preferências, selecione a guia Contas.
Na guia Contas, clique no botão + para adicionar sua Conta de desenvolvedor da Apple ao Xcode:
No pop-up do tipo de conta, selecione ID da Apple e clique no botão Continuar :
No pop-up de login, digite seu ID da Apple e clique no botão Avançar.
No pop-up de login, digite a senha do seu ID da Apple e clique no botão Avançar:
Na guia Contas, clique no botão Gerenciar certificados... para confirmar se o certificado de distribuição foi baixado.
Na guia Contas, clique no botão Baixar perfis manuais para baixar seus perfis de provisionamento:
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. Ela deve ser ativada para aplicativos Mac Catalyst distribuídos na 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 publicar o aplicativo, você deve atualizar o 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 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.
Definir a chave de direitos autorais
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.
Definir a categoria do aplicativo
As categorias ajudam os usuários a descobrirem o seu aplicativo na Mac App Store. Você pode definir a categoria primária do aplicativo no arquivo Info.plist:
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
Para mais informações, consulte LSApplicationCategoryType em developer.apple.com.
Observação
A categoria primária do seu aplicativo deve corresponder à categoria primária definida no App Store Connect.
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. 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 guiar você pela revisão, você pode fornecer as informações necessárias no arquivo Info.plist do aplicativo.
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: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 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: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 ao conjunto de chaves. |
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. |
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 pela 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 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 logon e permitir que codesign
e productbuild
executem:
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. |
<EnablePackageSigning> |
Defina como true para que o pacote criado seja assinado. |
<MtouchLink> |
O modo de link do projeto, que pode ser None , SdkOnly ou 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 ao conjunto de chaves. |
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 seguinte exemplo mostra um grupo de propriedades típico para criar e assinar seu aplicativo Mac Catalyst para distribuição na 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 <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:
- A configuração de build é definida como
Release
. - A estrutura de destino é definida como algo que contém o texto
net8.0-maccatalyst
. - 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>
, <CodesignProvision>
e <PackageSigningKey>
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
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/.
Carregar na Mac App Store
Depois que um aplicativo tiver sido assinado por código 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 na 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, pois ele será exibido na App Store, e todas as informações necessárias para gerenciar o aplicativo por meio do processo de distribuição. Para obter mais informações, confira Criar um registro de aplicativo em developer.apple.com.
O Transporter pode ser usado para enviar o aplicativo para a Mac App Store. Também ajudará a identificar erros com pacotes de aplicativos que interrompem o envio.
Confira também
- Preparação do aplicativo para distribuição em developer.apple.com