Come creare un programma di installazione nativo per Mac OS X (su una piattaforma non Mac)?

StackOverflow https://stackoverflow.com/questions/283480

  •  08-07-2019
  •  | 
  •  

Domanda

Come posso creare un programma di installazione nativo per Mac OS X per la mia applicazione, su una piattaforma non Mac?

Ad esempio, ho un PC Windows e un'applicazione Java. Voglio che il PC Windows crei un programma di installazione (possibilmente all'interno di un archivio .dmg) che funziona con il programma di installazione di Apple.

È stato utile?

Soluzione

Ora è possibile creare un programma di installazione nativo per Mac OS X su una piattaforma non Mac. Come Louis Gerbarg, la parte difficile è il file BOM (distinta materiali). Tuttavia, una versione open source di mkbom (basata sul codice osxbom di Joseph Coffland) è ora disponibile su:

http://hogliux.github.io/bomutils

Il sito Web ha anche un tutorial passo-passo facile da seguire sulla creazione di un programma di installazione di Mac OS X su Linux ( http://hogliux.github.io/bomutils/tutorial.html ).

La mia azienda crea regolarmente programmi di installazione di Mac OS X su Linux con questo metodo e finora non abbiamo avuto grossi problemi.

Altri suggerimenti

Come altri hanno già sottolineato, stai davvero prendendo la difficile soluzione a questo problema e i tuoi utenti malediranno il tuo nome per questo, a meno che tu non abbia davvero un buon motivo per farlo. È vero che alcuni tipi di applicazioni richiedono programmi di installazione per Mac OSX. Questi generalmente includono:

  • Applicazioni che installano driver personalizzati (ad es. estensioni del kernel)
  • Applicazioni che devono installare framework o altre risorse che per qualche motivo non possono essere impacchettate all'interno del bundle dell'applicazione
  • Applicazioni che devono essere eseguite come servizio di sistema e pertanto devono eseguire alcuni script post-installazione per avviare l'app durante l'avvio
  • Programmi scritti in modo inadeguato che richiedono di apportare qualche tipo di modifica al sistema dell'utente (ad esempio, impostare autorizzazioni su una cartella o qualcosa del genere) e le mani dello sviluppatore sono legate dai weenies del dipartimento marketing per distribuire l'applicazione nel modo più doloroso possibile

Ok, quindi l'ultimo punto è un po 'sarcastico, ma ottieni la mia deriva qui? :) Fondamentalmente, se stai scrivendo una normale applicazione per l'utente finale, dovresti distribuirla nel modo normale che gli utenti Mac si aspettano, che è un file DMG contenente il bundle dell'applicazione. Oppure, se vuoi essere davvero fantasioso, mantieni un alias in " Applicazioni " cartella all'interno del DMG per aiutare l'utente a trascinare il programma al suo interno. A meno che tu non stia scrivendo qualcosa che deve installarsi nel nel sistema, piuttosto che semplicemente essere eseguito dal nel sistema, non c'è motivo di usare un programma di installazione qui. Inoltre, tieni presente che si tratta di OSX, che contiene già un JRE Java perfettamente funzionante, quindi non devi preoccuparti di impacchettare JRE in un programma di installazione o qualcosa del genere.

Ora che sei stato correttamente rimproverato per aver fatto questa domanda, risponderò supponendo che il tuo software rientri in una delle categorie sopra. Davvero, la soluzione migliore sarebbe quella di optare per una soluzione commerciale come il programma di installazione VISE (che, ancora una volta, posso affermare con certezza che la stragrande maggioranza degli utenti Mac arretrerà terrorizzata durante l'installazione di un prodotto realizzato con questo strumento), che ti consente per fare esattamente quello che stai cercando qui, in pratica, per creare un programma di installazione multipiattaforma che costruisce per le varie piattaforme che desideri supportare da un singolo file di programma di installazione.

Ancora una volta, tuttavia, la soluzione migliore qui è fare ciò con cui gli utenti di quella piattaforma sono più a proprio agio (motivo per cui tutte le risposte alla tua domanda ti spingono a non fare un installatore). Ciò significa, tuttavia, se davvero devi creare un programma di installazione, dovresti usare un framework non -cross-platform; Gli utenti di Windows si sentiranno maggiormente a casa quando vengono presentati con un programma di installazione MSI standard e gli utenti Mac si sentiranno maggiormente a casa con un pacchetto di installazione Apple. Il programma PackageMaker è notoriamente limitato, quindi, se necessario, dovresti usare iceberg invece. Ciò significherà un po 'più di manutenzione per te, dal momento che dovrai occuparti di due (o più) programmi di installazione separati, ma se il tuo software è davvero così complesso da richiederlo, dovresti essere disposto a fare il sacrificio per il comfort dei tuoi utenti.

È difficile creare un .dmg su Windows, ma è certamente possibile creare una struttura di file .app che è quindi possibile comprimere, come altri utenti hanno già detto. Ci sono momenti in cui un normale .pkg non lo taglia e vuoi fornire dialoghi, controlli pre-installazione, ecc. Puoi farlo con BitRock installbuilder , puoi creare programmi di installazione per mac, Linux, Windows, Solaris da ciascuna delle altre piattaforme.

Quindi, un paio di domande veloci.

Innanzitutto, perché vuoi un programma di installazione? La maggior parte degli utenti Mac preferisce le app che sono appena installate. Se non stai scrivendo un codice specifico per Mac OS X, è difficile immaginare di dover posizionare i bit in posti speciali, come Supporto applicazioni o LaunchDaemons. Supponendo che tutto ciò che hai va semplicemente in una cartella, perché preoccuparsi di un installatore?

In secondo luogo, perché sarebbe un problema creare il programma di installazione per Mac su un Mac? Sicuramente hai un macintosh in giro per testare l'app (non lo stai semplicemente spedendo ciecamente per Mac senza testarlo su un Mac, giusto?).

Ok, detto questo, supponendo che tu abbia ancora una buona ragione per costruirlo su un PC, ci sono alcuni bit che non saranno facili. Fondamentalmente un .pkg è un mucchio di script di testo, localizzazioni, un file di archivio (Archive.pax.gz) e una distinta materiali (Archive.bom).

Supponendo che non ci siano molti cambiamenti tra le build, puoi fare il programma di installazione su un Mac, quindi ricostruire il bom e il pax.gz, sostituirli nel .pkg esistente e raggruppare alcuni pezzi di metadati. Il pax dovrebbe essere abbastanza facile da gestire (pax è un formato di archivio standard), ma il file bom potrebbe rivelarsi un po 'più complicato, dal momento che non credo che sia documentato pubblicamente, e dubito che gli strumenti per crearli (mkbom) siano parte di darwin (non opensource). Quindi dovrai capirlo e scrivere uno strumento personalizzato per creare il file bom.

In altre parole, è probabile che si tratti di una grande quantità di lavoro.

Il solito modo di installare un'app su un Mac è di trascinare l'app nella cartella dell'applicazione. La maggior parte dei programmi viene fornita come DMG contenente l'app e un collegamento simbolico alla cartella dell'applicazione. Perché lo vorresti in un altro modo? Devi pensare al Mac per creare una fantastica applicazione per Mac! Aspetto è molto importante, specialmente per gli utenti Mac.

Dai un'occhiata a questo codice per leggere i file DBA: https://cauldrondevelopment.com/svn/osxbom/trunk

Metti tutto in un file JAR, aggiungilo a un file ZIP. Fatto.

Ma seriamente, vuoi distribuire la tua applicazione agli utenti Macintosh senza prima testarla? Su quale pianeta sei !?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top