Pergunta

Como posso construir um instalador nativo Mac OS X para o meu pedido, em uma plataforma não-Mac?

Por exemplo, eu tenho um PC com Windows e um aplicativo Java. Eu quero o PC com Windows para criar um instalador (possivelmente dentro de um arquivo .dmg) que funciona com o instalador Apple.

Foi útil?

Solução

Agora é possível criar um instalador do Mac OS X nativo em uma plataforma não-Mac. Como Louis Gerbarg, a pouco complicado é o BOM arquivo (bill-of-primas). No entanto uma versão open source de mkbom (baseado no código osxbom por Joseph Coffland) está agora disponível em:

http://hogliux.github.io/bomutils

O site também tem um fácil de seguir passo-a-passo tutorial sobre como criar um instalador do Mac OS X no Linux ( http://hogliux.github.io/bomutils/tutorial.html ).

A minha empresa construir regularmente instaladores Mac OS X no Linux com este método e até agora não tivemos grandes problemas.

Outras dicas

Como outros já apontaram, você está realmente tomando a solução difícil este problema, e seus usuários vão amaldiçoar seu nome para ele, a menos que você tem um realmente boa razão para fazê-lo. É verdade, que certos tipos de aplicações vai exigir instaladores para Mac OSX. Estes geralmente incluem:

  • As aplicações que instalar drivers personalizados (ou seja, extensões de kernel)
  • As aplicações que necessitam de instalar enquadramentos ou outros recursos que por algum motivo não poderia ser embalados dentro do pacote de aplicativos
  • As aplicações que necessitam para executar como um serviço do sistema e, portanto, deve executar alguns scripts pós-instalação para iniciar o aplicativo durante a inicialização
  • programas mal escritas, que exigem a fazer algum tipo de alterações ao sistema do usuário (ou seja, definição de permissões em uma pasta ou algo assim), e as mãos do desenvolvedor são amarradas por weenies departamento de marketing para distribuir o aplicativo da maneira mais dolorosa possível

Ok, então esse último ponto é um pouco sarcástico, mas você me entende aqui? :) Basicamente, se você está escrevendo, uma aplicação normal do usuário final, você deve distribuí-lo de uma forma normal que os usuários de Mac seria de esperar, que é um arquivo DMG contendo pacote do aplicativo. Ou se você quiser ser realmente extravagante, furar um alias para os pasta "Aplicativos" dentro da DMG para ajudar o usuário arrastar o programa para lá. A menos que você está escrevendo algo que deve instalar-se em do sistema, ao invés de simplesmente ser executado por do sistema, não há nenhuma razão para usar um instalador aqui. Além disso, mantenha em mente que este é OSX, que já contém um pleno funcionamento Java JRE, assim você não precisa se preocupar com a embalagem do JRE em um instalador ou qualquer coisa assim.

Agora que você já foi devidamente repreendido por fazer esta pergunta, vou responder-lhe com a suposição de que o seu software cai em uma das categorias acima. Realmente, a sua melhor aposta seria ir com uma solução comercial como instalador VISE (que, mais uma vez, posso afirmar com confiança que a grande maioria dos usuários de Mac vai recuar em terror quando a instalação de um produto feito com esta ferramenta), que permite para fazer exatamente o que você está procurando aqui -., basicamente, fazer um instalador multi-plataforma que constrói para as várias plataformas que quer o apoio de um único arquivo instalador

Mais uma vez, porém, a sua melhor aposta aqui é fazer o que os usuários dessa plataforma está mais confortável com (que é por isso que todas as respostas para o seu desejo pergunta que você não fazer um instalador). Isso significa, no entanto, se você realmente deve fazer um instalador, você deve usar um não quadro -Cross-plataforma; Os usuários do Windows vai se sentir mais em casa quando apresentados com um instalador MSI padrão, e os usuários de Mac vai se sentir mais em casa com um pkg de Apple Installer. O programa PackageMaker é notoriamente limitados, porém, assim que se você tem, você deve usar iceberg em seu lugar. Isto significará um pouco mais manutenção para você, pois você vai precisar para cuidar depois de dois (ou mais) instaladores separados, mas se o seu software é realmente tão complexo como exigir isso, você deve estar disposto a fazer o sacrifício para o conforto de seus usuários.

É difícil criar um .dmg no Windows, mas é certamente possível criar uma estrutura de arquivo .app que você pode, então, zip, como outros comentou ter mencionado. Há momentos em que um .pkg regular não vai cortá-la e você deseja fornecer diálogos, pré-instalação cheques, etc. Você pode fazer isso com BitRock InstallBuilder , você pode construir instaladores para Mac, Linux, Windows, Solaris a partir de cada uma das outras plataformas.

Assim, um par de perguntas rápidas.

Em primeiro lugar, por que você quer um instalador? A maioria dos usuários de Mac preferem aplicativos que são apenas arraste instalado. Se você não está escrevendo código específico Mac OS X, é difícil imaginar que você precisa para colocar pedaços em lugares especiais, como o Application Support ou LaunchDaemons. Assumindo que tudo que você tem só vai em uma pasta por que se preocupar com um instalador em tudo?

Em segundo lugar, por que seria um problema para construir o instalador Mac em um Mac? Certamente você tem um Macintosh em torno de testar o aplicativo (que não são apenas cegamente enviá-lo para o Mac sem testá-lo em um Mac, certo?).

Ok, tendo dito isso, supondo que você ainda tem uma boa razão para realmente construir isso em um PC, existem alguns bits que não vão ser fácil. Basicamente um .pkg é um monte de scripts de texto, localizações, um arquivo (Archive.pax.gz), e uma lista de materiais (Archive.bom).

Assumindo que não muda muito entre constrói, você pode fazer o instalador em um Mac, e depois é só reconstruir o bom eo pax.gz, substituí-los no .pkg existente, e em lote algumas peças de metadados. A pax deve ser fácil o suficiente para lidar com (pax é um formato de arquivo padrão), mas o arquivo de bom pode vir de um complicado pouco, já que eu não acredito que ele está documentada publicamente, e duvido que as ferramentas para criá-los (mkbom) são parte de Darwin (não opensource). Então você vai precisar para descobrir isso e escrever uma ferramenta personalizada para criar o arquivo bom.

Em outras palavras, este é provável que seja uma grande quantidade de trabalho.

A maneira usual de instalar um aplicativo em um Mac é arrastar o aplicativo para a pasta de aplicativos. A maioria dos programas vêm como um DMG contendo o aplicativo e um link simbólico para a pasta do aplicativo. Por que você iria querer isso de nenhuma outra maneira? Você precisa pensar Mac para construir uma grande aplicação Mac! Olhar ea sensação é muito importante, especialmente para usuários de Mac.

Confira este código para leitura de arquivos da lista de materiais: https://cauldrondevelopment.com/svn/osxbom/trunk

Coloque tudo em um arquivo JAR, adicioná-lo a um ZIP. Feito.

Mas, falando sério, você está querendo distribuir seu aplicativo para usuários de Macintosh sem testá-lo primeiro? De que planeta você on!?

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