2013-05-09 11 views
7

Chcę wyłączyć w "Instalatorze" przycisk "Zmień lokalizację instalacji ..." (zrzut ekranu poniżej). Próbuję utworzyć instalator za pomocą pkgbuild i productbuild na macOSX 10.8. Najpierw tworzę dwa pliki .pkg przy użyciu pkgbuild.wyłączyć przycisk "Zmień lokalizację instalacji ..." w instalatorze utworzonym przy użyciu productbuilda

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 

W powyższych listy właściwości, używam BundleIsRelocatable jak fałszywy.

Następnie używam produktu productbuild do utworzenia ostatecznego pakietu instalacyjnego.

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

W dist.xml, próbowałem wszystkich kombinacji z domains a także rootVolumeOnly ale nadal nie jestem w stanie wyłączyć „Zmień lokalizację instalacji ...” przycisk.

Czy ktoś może pomóc? Wielkie dzięki.

enter image description here

+0

Czy znaczy, że przycisk na „Instalacja” Typ ekranu która prowadzi wróć do ekranu "Wybór miejsca docelowego"? – catlan

+0

Tak, nie chcę ekranu wyboru miejsca docelowego, a także nie chcę przycisku zmiany lokalizacji instalacji, ponieważ chcę tylko zainstalować w/Applications. – dDarkLORD

+0

załączył również zrzut ekranu. – dDarkLORD

Odpowiedz

10

miałem otwarte błąd radaru na to samo i dostałem odpowiedź - Trzeba określić tylko domeny wymagane i ustawić rootVolumeOnly na true.

Tak, w moim przypadku, następujące pracował:

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

Niestety „Destination Wybierz” i „Typ instalacji” są zawsze wyświetlane przez instalatora. Podobnie jak przycisk "Zmień lokalizację instalacji ...".

To nie pozwala użytkownikowi zmienić lokalizację instalacji, ale interfejs użytkownika nie jest optymalny. Mogę tylko zalecić wypełnienie raportu o błędzie.

Ty może chcesz spojrzeć na: Known Issues and Workarounds - Destination Select Pane o wykorzystaniu domains vs rootVolumeOnly

+2

Dzięki catlan. Wasz post spowodował, że zacząłem w pierwszej kolejności - Wielkie dzięki za szczegółowy wpis w tym wątku. – dDarkLORD

1

Jest to dość stare pytanie, ale ja po prostu w obliczu tego problemu i naprawić go. Żadne z rozwiązań znalezionych w Internecie nie rozwiązało mojego problemu, więc opublikuję moją odpowiedź dla innych, którzy borykają się z tym problemem.

Rozwiązanie jest jakoś dziwne, ale działa dobrze. Wszystko, co musisz zrobić, to dodać pustą wtyczkę do swojego instalatora. Poniższe kroki przeprowadzą Cię przez:

  1. Utwórz folder o nazwie Wtyczki w twoim projekcie, zakładam, że folder znajduje się obok twojego pliku distribution.xml.
  2. Struktura plików wewnątrz folderu Plugins powinna wyglądać następująco:

enter image description here

jak widać na najwyższym poziomie folderu Plugins znajduje się folder o nazwie DisbableDestinationSelect.bundle i znajduje się plik o nazwie InstallerSections .plist

  1. Pod DisbableDestinationSelect.pakiet potrzebujesz dokładnej struktury folderów. DisbableDestinationSelect jest pustym plikiem, który musi być wykonywalny. Tak więc, jeśli utworzyć plik w wierszu poleceń nie zapomnij uruchomić chmod +x DisbableDestinationSelect
  2. Plik InstallerSections.plist powinna wyglądać następująco:
<?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> 

Nie pójdziesz! Teraz stworzyć swój ostateczny produkt z poleceniem podobnym do:

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

i „Change Install Lokalizacja ...” przycisk jest nieodwracalne