2011-02-10 16 views
6

Sto provando a distribuire un'applicazione utilizzando macdeployqt. Tutti i framework Qt vengono copiati correttamente nel pacchetto di applicazioni. Il problema che ho riscontrato è che macdeployqt non ha permessi di scrittura sui framework copiati che originariamente risiedono in/usr/local/lib. Questo perché ho installato qt usando homebrew che sembra fare installare tutto di sola lettura. La mia domanda è se c'è un modo migliore per risolvere questo problema, cambiando manualmente tutte le autorizzazioni delle librerie qt in/usr/local/lib in modo che io possa usare macdeployqt da un progetto qt .pro. (Non voglio usare macdeployqt manualmente con sudo o simili)macdeployqt su framework homebrew installati

Il motivo per cui lo sto chiedendo è perché sto usando molte librerie di terze parti nel progetto (vengono copiate ok ecc.) Di cui ho bisogno aggiornare spesso attraverso homebrew e quindi dover rifare il permesso cambiando su di loro.

Grazie in anticipo!

+0

Le mie librerie Qt framework sono tutte di proprietà del mio utente e gruppo locale. Ti consiglio di cambiare il tuo con lo stesso e di averlo fatto perché non ho mai avuto problemi con questo. – TheDarkKnight

+0

@ Merlin069, affronto lo stesso problema, hai trovato una risposta? –

+0

se la tua applicazione dipende da homebrew, e installando qt, perché dovresti preoccuparti di copiare le dipendenze nel tuo .app? Non dovrebbero essere risolti dall'installazione homebrew in primo luogo? – phyatt

risposta

1

Solo nel caso qualcuno trova questo vecchio post che cerca informazioni su macdeployqt:

utilizzare uno script per fare macdeployqt a preferenza di scripting i comandi macdeployqt nel file .pro. Ciò ti consentirà di cambiare le autorizzazioni sui file al volo.

Ecco [un frammento del] lo script che uso per una delle mie applicazioni:

https://bugreports.qt-project.org/browse/QTBUG-23268

Se siete su Windows e non hanno bash, è possibile utilizzare Perl o Python. Lo script di cui sopra modifica i file al volo per aggirare un bug - puoi mettere tutto ciò che vuoi qui, inclusa la modifica delle autorizzazioni sui file.

L'utilizzo di uno script significa anche che è possibile aggiungere comandi in un secondo momento per eseguire la firma del codice, l'imballaggio o qualsiasi altra cosa necessaria.

Il "linguaggio di script" Qt .pro genera effettivamente comandi Makefile sotto il cofano e può essere piuttosto oscuro se si desidera eseguire attività di distribuzione relative a percorsi e insiemi di file.

Inoltre, è necessario creare un target aggiuntivo o includerlo nel target di build: in entrambi i casi il processo di compilazione diventa più complesso e più incline agli errori.

Disclaimer: Ho lavorato a Qt per 8 anni come Senior Engineer per Nokia/Trolltech e ho anche pubblicato un'app commerciale cross-platform utilizzando Qt.

+0

Il collegamento https://bugreports.qt-project.org/browse/QTBUG-23268 è rotto. –