2013-08-23 14 views
10

Mac OS 10.8.4'de bir Java uygulaması için bir yükleyici oluşturmaya çalışıyorum. Uygulama iyi çalışıyor ve bir zip dosyasından bir aksama olmadan yükleyebilirim. Ürün grubu veya pkgbuild ile bir .pkg yükleyicisi oluşturabilirim. Yükleyici .pkg dosyasından birini de başarıyla yükleyebilirim, ancak uygulama her iki paketleme programının bir veri dizininin sahipliğini ve alt dosyalarını ve alt dizinlerini kullanıcıdan root olarak değiştirmesi nedeniyle düzgün çalışmaz. Bu veri dizini, .app paketinin Kaynaklar dizinine yüklüyorum ve program ilk kez çalıştırıldığında, veri dizinini/Users/user/Library/Application Support'a taşır. Punkbuild ile --ownership koruma ve --ownership koruma-diğer seçenekleri kullanmayı denedim. Yüklemeyi ve düzgün bir şekilde yürüttüğüm tek yol, dosya sahipliğini tek başına bıraktığından, zip dosyası aracılığıyla gerçekleşir.File Ownership Modification productbuild ve pkgbuild tarafından

PKGBUILD Sorularım şunlardır --component ./myApp.app ./myApp-installer.pkg

korumak --ownership: İşte kullanıyorum PKGBUILD komuttur

  1. Nasıl Pkgbuild'i --ownership koruma seçeneğimi onurlandırmak için mi zorluyorum?

  2. Kullanıcıların sahip olduğu ve kullanıcı alanı için ayrılmış ayrı bir veri paketi oluşturmak ve pkgbuild --synthesize seçeneği ile çalıştırılabilir paket ile birleştirmek mümkün mü? evetse, birisi bana böyle bir veri paketi oluşturmayı nasıl gösterebilir?

+0

Hiç bir çözüm buldunuz mu? – spartygw

cevap

1

Oldukça eski olduğunu biliyorum, başka birinin cevaba ihtiyacı varsa cevap vereceğim. Genelde yaptığım şey, benim için .pkg dosyasını oluşturan bir kabuk betiğim olmasıdır. Bu senaryoda, paketlemeden önce tüm dosya izinlerini ve sahipliğini ayarladım. create-my-package.sh gibi bir dosyada bu şeye tasarruf

NAME="PKGFILENAME" 

IDENTIFIER="com.pkg.APPNAME" 

VERSION="1.0.0" 

INSTALL_LOCATION="PATH_TO_WHERE_THE_FILES_SHOULD_BE_COPIED_ON_USERS_MACHINE" 
ROOT_LOCATION="PATH_TO_WHERE_FILES_ARE_ON_YOUR_MASCHINE" 

# Remove any unwanted .DS_Store files. 
find "$ROOT_LOCATION" -name '*.DS_Store' -type f -delete 

# put any command for changing the ownership or permissions here 
chmod -R +r "$ROOT_LOCATION" 

# Build package. 
/usr/bin/pkgbuild \ 
    --root "$ROOT_LOCATION" \ 
    --install-location "$INSTALL_LOCATION" \ 
    --identifier "$IDENTIFIER" \ 
    --version "$VERSION" \ 
    "$NAME.pkg" 

ve komut satırında bu çalıştırın: İşte bir örnek.