Converter app para dmg

Converter APP para DMG

Empacote um bundle .app do macOS em um DMG compactado com drag-and-drop em um Mac.

Crie ficheiros DMG online

Ainda não conseguimos ler ficheiros APP, por isso esta conversão não está disponível. Se conseguir exportar o seu trabalho para um destes formatos, transformamo-lo em DMG:

Como converter app para dmg arquivo

Os aplicativos macOS geralmente são distribuídos como bundles .app, enquanto os downloads costumam usar uma única imagem de disco .dmg para montagem e instalação por arrastar e soltar. Empacotar um aplicativo dessa forma simplifica a distribuição sem alterar o próprio aplicativo.

O que é o formato APP

No macOS, “APP” normalmente significa um bundle de aplicativo .app. Ele é um diretório que contém o executável, recursos, metadados, frameworks e informações de code signing; o Finder o exibe como um único aplicativo. O Xcode e outras ferramentas de desenvolvimento criam esses bundles, que geralmente aparecem em /Applications, arquivos ZIP ou diretórios de build, como build/Release/.

Essa operação é um empacotamento, não uma conversão de código. O formato do executável do aplicativo, a arquitetura da CPU, os recursos e os dados de signing permanecem inalterados; o bundle é colocado dentro de um contêiner de imagem de disco.

O que é o formato DMG

DMG é o formato de imagem de disco da Apple para macOS. Abrir um .dmg monta-o como um volume virtual no Finder, onde o usuário pode copiar um aplicativo para /Applications, abrir a documentação ou executar um pacote de instalação incluído.

Um DMG pode conter compressão, criptografia, checksums, um nome de volume personalizado e configurações de apresentação do Finder. Uma imagem compactada e somente leitura, geralmente criada com o formato UDZO, é a opção normal para downloads de aplicativos porque reduz o tamanho da transferência e impede alterações acidentais nos arquivos distribuídos.

Como criar um DMG com hdiutil

O comando integrado hdiutil da Apple é a opção mais confiável para builds repetíveis. Execute estes comandos no Terminal em um Mac, substituindo MyApp pelo nome real do aplicativo:

  1. Crie um diretório temporário de staging, copie o bundle com ditto e adicione um atalho para Applications:
staging=$(mktemp -d "${TMPDIR:-/tmp}/MyApp.XXXXXX")
ditto "/Applications/MyApp.app" "$staging/MyApp.app"
ln -s /Applications "$staging/Applications"
  1. Crie um DMG compactado na Mesa:
hdiutil create \
  -volname "MyApp" \
  -srcfolder "$staging" \
  -format UDZO \
  -ov \
  "$HOME/Desktop/MyApp.dmg"
rm -rf "$staging"
  1. Abra MyApp.dmg, copie o aplicativo para um Mac de teste e inicie-o. Desmonte o volume montado após o teste com:
hdiutil detach "/Volumes/MyApp"

O bundle de origem pode vir de um diretório de build em vez de /Applications. Copiá-lo com ditto preserva os metadados do bundle do aplicativo de forma mais confiável do que tratá-lo como uma coleção comum de arquivos.

Opções gráficas e de terceiros

Para uma conversão ocasional, use o Disk Utility: selecione File → New Image → Image from Folder, escolha um diretório de staging que contenha o bundle .app e um alias opcional para Applications, selecione compressed como formato da imagem e salve com uma extensão .dmg.

DropDMG é uma alternativa de desktop confiável para macOS que pode automatizar o staging, o layout do volume, a compressão, o signing e releases repetíveis. Um utilitário simples, como App2Dmg, também pode criar uma imagem de arrastar e soltar, mas inspecione sua saída e teste a imagem montada antes da distribuição. As ferramentas nativas do macOS são preferíveis porque podem preservar os metadados do bundle e verificar o resultado.

Conversores online não são apropriados para bundles .app comuns. Fazer upload de um aplicativo expõe código executável e recursos proprietários, e um serviço web pode não preservar symlinks, extended attributes, permissões ou dados de signing. Use uma ferramenta local para Mac; os utilitários do Windows podem criar um contêiner, mas não conseguem validar de forma confiável a inicialização, o signing ou a notarização do macOS.

Limitações de compatibilidade e signing

Criar um DMG não torna o aplicativo multiplataforma nem altera sua arquitetura. Um aplicativo somente para Intel ainda precisa de suporte a Intel ou do Rosetta 2 em Apple silicon, um aplicativo somente para Apple silicon precisa de um Mac compatível, e um aplicativo universal contém ambas as arquiteturas. A imagem também não ignora as verificações do Gatekeeper, de quarantine, code signing ou notarização.

Para distribuição pública, faça o signing do aplicativo antes de criar a imagem; em seguida, faça o signing e a notarização do DMG finalizado. Não altere o aplicativo depois de fazer seu signing. Um comando de verificação é:

codesign --verify --deep --strict --verbose=2 "/Applications/MyApp.app"

Use um formato de imagem gravável somente quando os usuários precisarem editar arquivos dentro da imagem montada. Para um download normal de aplicativo, UDZO é menor e somente leitura; teste o aplicativo copiado nas versões do macOS e nos tipos de processador que você pretende oferecer suporte.