Pergunta

É possível construir um ficheiro .dmg (para a distribuição de aplicativos) a partir de uma plataforma de não-Mac? E se sim, como?

Foi útil?

Solução

Parece possível criar arquivos DMG com algumas ferramentas de terceiros. Uma rápida pesquisa no google revela pelo menos algumas ferramentas comerciais:

Não tenho certeza qualquer OSS / opções de freeware, mas não pelo menos parece possível se você é tão inclinado.

Edit: Eu também esqueci MacDrive , que é outra grande ferramenta para trabalhar com HFS + sistemas de arquivos no Windows. Desde a DMG é basicamente apenas um HFS + sistema de arquivos instantâneo, é provavelmente possível com MacDrive para criar DMG do bem.

Outras dicas

Sim, mkfs.hfsplus faz isso.

dd if=/dev/zero of=/tmp/foo.dmg bs=1M count=64
mkfs.hfsplus -v ThisIsFoo /tmp/foo.dmg

Isso cria um arquivo DMG (neste caso 64M) que pode ser montado em um mac. Ele também pode ser montado em linux, com algo como

mount -o loop /tmp/foo.dmg /mnt/foo

depois wich que você acabou de copiar o conteúdo que você deseja-lo (em / mnt / foo). Desmontá-lo, eo dmg pode ser copiado para um mac e montado lá.

Um trabalho de projecto I on cria arquivos DMG no Linux usando genisoimage:

mkdir -p dmgdir/progname.app/Contents/{MacOS,Resources}
...copy your PkgInfo, Info.plist to Contents...
...copy your .icns to Resources...
...copy your other things to where you expect them to go...
genisoimage -V progname -D -R -apple -no-pad -o progname.dmg dmgdir 

Se você quer ser realmente extravagante, você pode roubar o arquivo .DS_Store de um DMG feito em um Mac com um nome de volume progname e aplicativo pacote chamado progname.app (ie, combinando o que você deseja criar fora do Mac), onde você' ve colocar um fundo em .background/background.png e um link simbólico para / Aplicações no diretório raiz, e colocar isso em dmgdir juntamente com o seu próprio um link simbólico para /Applications.

git clone https://github.com/hamstergene/libdmg-hfsplus
cd libdmg-hfsplus && cmake . && make && cd dmg
./dmg --help

Makefile:

dmg:
    genisoimage -D -V "$(PROJECT) $(VERSION)" -no-pad -r -apple -o project-$(VERSION)-uncompressed.dmg $(DARWIN_DIR)
    ./dmg dmg project-$(VERSION)-uncompressed.dmg project-$(VERSION).dmg

obras descompactado fora da caixa, a compressão pode causar problemas - a origem / master, pelo menos, produz um erro de 'verificação' na neve-leopardo

Eu não tenho certeza se alguém ainda está assistindo esta discussão, mas eu tentei TransMac como recomendado pelo Nik Reiman .

Usando esta ferramenta eu era capaz de, em execução em Windows 7 , criar dmg arquivos que eram montável em OSX 10.8.3 .


Desvantagem

A única desvantagem para nós é que esta ferramenta não parecem ser de linha de comando amigável; para nós isso é um deal-breaker como precisamos ser capazes de ter uma ferramenta automatizada que o nosso servidor de compilação (baseado em Windows) pode ser usado para arquivos de construção DMG on-the-fly.

Veja mkfs.hfsplus

Se você está distribuindo aplicativos Mac, então certamente você tem um Mac para escrever e testá-los. Por que não simplesmente usar essa mesma Mac para criar a imagem de disco?

[Edit] Como alternativa, se você estiver distribuindo um aplicativo portátil, por exemplo, um arquivo Java .jar, para quê uma imagem de disco com? Macs entender .zip e arquivos .tar.gz muito bem.

Eu acho que o que estou querendo dizer é, eu não entendo como alguém pode precisar de uma imagem de disco DMG, mas não tem um Mac com que criá-lo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top