Controllare il registro di installazione
Hai controllato il file di registro Installer, /var/log/install.log
, per errori o problemi? Forse il pacchetto funziona ma non si installa dove ti aspetti.
Un approccio migliore
Come commenta Mark nella tua altra domanda , cerca di evitare di dover installare file in più posizioni.
Gli strumenti di sviluppo di Apple per la creazione di pacchetti sono:
Correzione rapida utilizzando pkgbuild
Prova il seguente approccio per una soluzione rapida. Nota questo installa su /Applications
e non su ~/Applications
:
-
Prepara i file per la confezione:
~/installer/
~/installer/Applications/
~/installer/Applications/YourApp.app
~/installer/Library/
~/installer/Library/Application Support/
~/installer/Library/Application Support/YourApp/
~/installer/Library/Application Support/YourApp/MyAppDB.sqlite3
-
Crea il pacchetto con pkgbuild
usando un comando come:
pkgbuild --root ~/installer/ --install-location / ~/Desktop/MyApp.pkg
Evita questo approccio! Perché?
Questo approccio non è raccomandato perché install-location
è root /
. Un programma di installazione affidabile non verrà mai installato direttamente su root.
I problemi includono, cosa succede se le autorizzazioni del pacchetto Applicazioni, Libreria o Supporto applicazione differiscono dalle autorizzazioni o dalla proprietà dell'utente? Cosa succede se l'utente ha un collegamento simbolico a uno o più di questi file?
Dovrebbe invece essere usato un pacchetto di distribuzione contenente due pacchetti standard. Un pacchetto standard avrà un install-location
di /Applications
e l'altro con /Library/Application Support
. Questo approccio indica allo strumento installer
di gestire tutti i problemi relativi a proprietà, permessi e link simbolici per te.
Approccio ideale
Idealmente, un'applicazione Mac verrà distribuita come pacchetto di applicazioni autonomo. Se è necessario modificare MyAppDB.sqlite3
, un'applicazione Mac ben educata dovrebbe copiare un file di database predefinito all'interno del pacchetto di applicazioni nella cartella Application Support
appropriata e utilizzare la copia secondo necessità.
Tieni presente che se la tua applicazione è sandboxed , la cartella Supporto applicazioni in /Library/Application Support/
non sarà visibile a l'applicazione. All'applicazione verrà fornita una propria cartella di supporto contenuta. Ciò significa che l'installazione di un database su /Library/Application Support/
non si comporterà come previsto.
Se puoi raggruppare tutto nell'applicazione, una singola chiamata a productbuild
creerà una pronta distribuzione da distribuire al di fuori del pacchetto di installazione del Mac App Store. Ancora meglio, è possibile evitare completamente un pacchetto di installazione e distribuirlo tramite un'immagine disco o un file zip.