2013-05-09 14 views
7

Tôi muốn tắt nút "Thay đổi vị trí cài đặt ..." (ảnh chụp màn hình bên dưới) trong trình cài đặt. Tôi đang cố gắng tạo trình cài đặt bằng cách sử dụng pkgbuild và productbuild trên macOSX 10.8. Đầu tiên, tôi tạo hai tệp .pkg bằng cách sử dụng pkgbuild.vô hiệu hóa nút "Thay đổi cài đặt vị trí ..." trong trình cài đặt được tạo bằng cách sử dụng 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 

Trong plists trên, tôi đang sử dụng BundleIsRelocatable như sai.

Và sau đó tôi đang sử dụng productbuild để tạo gói cài đặt cuối cùng.

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

Trong dist.xml, tôi đã thử tất cả kết hợp với domains và cũng rootVolumeOnly nhưng tôi vẫn không thể vô hiệu hóa các "Thay đổi cài đặt vị trí ..." nút.

Ai đó có thể giúp bạn không? Cảm ơn rất nhiều.

enter image description here

+0

Bạn có nghĩa là các nút trên "Installation Type" màn hình mà mang đến cho bạn quay lại màn hình "Chọn điểm đến"? – catlan

+0

Có, tôi không muốn màn hình chọn đích và tôi cũng không muốn nút vị trí cài đặt thay đổi vì tôi chỉ muốn cài đặt trong/Ứng dụng. – dDarkLORD

+0

cũng đã đính kèm ảnh chụp màn hình. – dDarkLORD

Trả lời

10

tôi đã mở một lỗi radar cho cùng và nhận được câu trả lời - Chúng ta cần phải xác định chỉ miền yêu cầu và thiết lập số rootVolumeOnly thành true.

Vì vậy, trong trường hợp của tôi, sau đây làm việc:

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

Thật không may là "Điểm đến Chọn" và "Installation Type" luôn được hiển thị bởi trình cài đặt. Cũng giống như nút "Thay đổi vị trí cài đặt ...".

Điều này không cho phép người dùng thay đổi Vị trí cài đặt, nhưng giao diện người dùng khôn ngoan không phải là tối ưu. Tôi chỉ có thể khuyên bạn nên điền vào một báo cáo lỗi chống lại nó.

Bạn có thể muốn nhìn vào: Known Issues and Workarounds-Destination Select Pane về cách sử dụng domains vs rootVolumeOnly

+2

Cảm ơn catlan. Bài đăng của bạn đã giúp tôi bắt đầu ngay từ đầu - Cảm ơn rất nhiều bài đăng chi tiết về chuỗi đó. – dDarkLORD

1

Đó là một câu hỏi khá cũ, nhưng như tôi chỉ phải đối mặt với vấn đề này và cố định nó. Không có giải pháp nào tôi tìm thấy trên internet đã giải quyết được vấn đề của tôi, vì vậy tôi sẽ đăng câu trả lời cho những người khác đối mặt với vấn đề này.

Giải pháp bằng cách nào đó lạ nhưng nó hoạt động tốt. Tất cả những gì bạn cần làm là thêm một plugin rỗng vào trình cài đặt của bạn. Các bước sau sẽ hướng dẫn bạn qua:

  1. Tạo thư mục có tên Plugins trong dự án của bạn, tôi giả sử thư mục nằm bên cạnh tệp distribution.xml của bạn.
  2. Cấu trúc của tập tin bên trong thư mục Plugins nên xem xét như thế này:

enter image description here

như bạn thấy trên cấp cao nhất của thư mục Plugins có một thư mục có tên DisbableDestinationSelect.bundle và có một file có tên InstallerSections .plist

  1. Trong DisbableDestinationSelect.bạn cần cấu trúc thư mục chính xác. DisbableDestinationSelect là một tập tin trống mà phải được thực thi. Vì vậy, nếu bạn tạo ra các tập tin trong dòng lệnh đừng quên để chạy chmod +x DisbableDestinationSelect
  2. File InstallerSections.plist sẽ trông như thế này:
<?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> 

Có bạn đi! Bây giờ tạo ra sản phẩm cuối cùng của bạn với một lệnh như thế này:

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

và "Thay đổi cài đặt vị trí ..." nút đã biến mất mãi mãi

Các vấn đề liên quan