Utilizzo di PackageMaker per eseguire uno script all'installazione
-
22-07-2019 - |
Domanda
Ho un'app per la quale devo creare un programma di installazione, e tutto ciò che il programma di installazione deve fare (oltre a copiare l'app) è eseguire uno script (o eseguibile) che non fa parte dell'app stessa. Qualche aiuto su come posso farlo? Vedo nella scheda Requisiti c'è un'azione Risultati dello script , e c'è anche Azioni preinstallate nella Azioni che ha un'azione Apri file . Uno di questi farà il lavoro o dovrei cercare altrove?
Soluzione
Qui è un buon How-to
Esistono 7 tipi di script che possono essere lanciati durante il processo di installazione:
InstallationCheck: Questo script viene avviato all'inizio del processo di installazione (anche prima del passaggio di autenticazione). Può essere utilizzato per verificare che il pacchetto possa essere installato su questo computer.
VolumeCheck: Questo script viene avviato in " Seleziona destinazione " passo. Viene utilizzato per determinare su quale volume è possibile installare il pacchetto.
Verifica preliminare: Questo script viene avviato subito dopo che l'utente ha fatto clic su " Installa " pulsante.
preinstall / preupgrade: Questo script viene avviato dopo lo script di preflight, se presente (nel caso di un'installazione di un singolo pacchetto); altrimenti subito dopo che l'utente ha fatto clic su " Installa " pulsante.
Come vedi, ci sono 2 tipi di script qui. Quello preinstallato viene avviato quando il pacchetto non è mai stato installato (dal punto di vista Installer.app), quello preupgrade viene avviato quando il pacchetto è già stato installato. Per determinare se un pacchetto è già stato installato o meno, Installer.app sta esaminando il contenuto della seguente directory: / Library / Receipts. Se al suo interno è presente un file denominato PackageName.pkg, il pacchetto è già stato installato, altrimenti è la prima installazione.
postinstallazione / postupgrade: Questo script viene avviato dopo l'installazione dei file nel pacchetto. Vedi (preinstall / preupgrade) per vedere quale è stato avviato.
Postflight: Questo script viene avviato dopo lo script postinstallazione / postupgrade o dopo l'installazione del pacchetto.
Altri suggerimenti
Sono appena riuscito a includere uno script Shell nel mio pacchetto creato con PackageMaker. Dopo l'installazione avevo bisogno di aggiungere la mia app agli elementi di accesso, quindi ho creato uno script chiamato postflight.sh
e l'ho messo in una cartella. (sembra che funzioni con qualsiasi posizione)
E poi nel mio pacchetto, ho Applicazioni. In Contenuto, Pacchetto: Applicazioni, nella scheda Script, scelgo postflight.sh
nella sezione Postflight. Questo è tutto.
il mio postflight.sh
inizia con
#!/bin/bash
e quindi ha alcuni script per inserire l'app negli elementi di accesso. Quando non lo avevo, potevo creare il pacchetto, ma l'installazione non è riuscita. Spero che questo sia utile.
Questo PackageMaker How-To non è aggiornato, ma è ha alcune informazioni molto utili sugli script a metà strada. Cerca la tabella che mostra le variabili della riga di comando viste da shell e perl, oltre ad alcuni utili valori dello stato di uscita.