2013-05-09 12 views
7

Desidero disattivare il pulsante "Cambia posizione di installazione ..." (schermata sotto) nel programma di installazione. Sto cercando di creare l'installer usando pkgbuild e productbuild su macOSX 10.8. Prima di tutto, sto creando due file .pkg usando pkgbuild.disattiva il pulsante "Cambia posizione di installazione ..." nel programma di installazione creato utilizzando productbuild

pkgbuild --root myApp --component-plist myApp.plist --scripts appScripts --identifier com.myapp.coreapp --version 1.0.00 --install-location /Applications --ownership preserve 
pkgbuild --root myBr --component-plist myBr.plist --scripts brScripts --identifier com.myapp.browser --version 1.0.00 --install-location /Library/Internet\ Plug-Ins --ownership preserve 

Negli plists di cui sopra, sto usando BundleIsRelocatable come falsa.

E quindi sto usando productbuild per creare il pacchetto di installazione finale.

productbuild --distribution dist.xml --resources res inst.pkg 

Nel dist.xml, ho provato tutte le combinazioni con domains e anche rootVolumeOnly ma non sono ancora in grado di disattivare il "Cambia posizione di installazione ..." pulsante.

Qualcuno può aiutare? Molte grazie.

enter image description here

+0

Vuoi dire il tasto sul "Tipo di installazione" a schermo che vi porta torna alla schermata "Seleziona destinazione"? – catlan

+0

Sì, non desidero la schermata di selezione della destinazione e inoltre non desidero il pulsante Modifica posizione di installazione poiché desidero solo installarlo in/Applicazioni. – dDarkLORD

+0

allegato anche lo screenshot. – dDarkLORD

risposta

10

avevo aperto un bug radar per lo stesso e ottenuto la risposta - Uno ha bisogno di specificare solo il dominio richiesto e impostare the rootVolumeOnly true.

Così, nel mio caso, i seguenti lavorato:

<domains enable_localSystem="true"/> 
<options rootVolumeOnly="true"/> 
3

Purtroppo la "destinazione Selezionare" e il "Tipo di installazione" sono sempre mostrati dal programma di installazione. Come è il pulsante "Cambia posizione di installazione ...".

Ciò non consente all'utente di modificare la posizione di installazione, ma l'interfaccia utente non è ottimale. Posso solo raccomandare di compilare una segnalazione di bug contro di essa.

È forse voglia di guardare in: Known Issues and Workarounds-Destination Select Pane sull'uso di domains vs rootVolumeOnly

+2

Grazie catlan. Il tuo post mi ha fatto iniziare in primo luogo - Grazie mille per il post dettagliato su quel thread. – dDarkLORD

1

Si tratta di una domanda piuttosto vecchia, ma come ho appena affrontato questo problema e riparato. Nessuna delle soluzioni che ho trovato su Internet ha risolto il mio problema, quindi posterò la mia risposta per gli altri che affrontano questo problema.

La soluzione è in qualche modo strana ma funziona correttamente. Tutto quello che devi fare è aggiungere un plugin vuoto al tuo programma di installazione. I seguenti passaggi ti guideranno attraverso:

  1. Creare una cartella denominata Plugin nel progetto, presumo che la cartella si trovi accanto al file distribution.xml.
  2. La struttura dei file all'interno della cartella plugin dovrebbe essere così:

enter image description here

come si vede in cima livello di cartella Plugins c'è una cartella denominata DisbableDestinationSelect.bundle e non v'è un file chiamato InstallerSections .plist

  1. In DisbableDestinationSelect.bundle hai bisogno della struttura esatta della cartella. DisbableDestinationSelect è un file vuoto che deve essere eseguibile. Quindi, se si crea il file nella riga di comando non dimenticate di eseguire chmod +x DisbableDestinationSelect
  2. Il file InstallerSections.plist dovrebbe essere simile a questo:
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>SectionOrder</key> 
    <array> 
     <string>DisbableDestinationSelect.bundle</string> 
     <string>Introduction</string> 
     <string>ReadMe</string> 
     <string>Target</string> 
     <string>PackageSelection</string> 
     <string>Install</string> 
    </array> 
</dict> 
</plist> 

ci si va! Ora creare il prodotto finale con un comando come questo:

productbuild --distribution distribution.xml --resources Resources/ --plugins Plugins/ --package-path ./ "$PRODUCT_NAME.pkg" 

e il "Cambia posizione di installazione ..." pulsante è andato per sempre