2012-05-21 322 views
2

我試圖通過PackageMaker的命令行界面自動化Mac OS X包構建。到目前爲止,我設法構建包並運行postinstall腳本。告訴我有沒有辦法在通過命令行構建時添加選項?因爲我希望用戶有一個運行或不運行postinstall腳本的選項。 P.S .:我不想使用「.pmdoc」。這個選項很糟糕。Mac OS X PackageMaker

+0

我寫了關於在此處使用[pkgbuild和productbuild](http://stackoverflow.com/questions/11487596/making-os-x-installer-packages-like-a-pro-xcode4-developer-id-mountain -lion-RE/11487658#11487658)。 PackageMaker一直都是鬼鬼祟祟的,而且被Mac OS X 10.6 Snow Leopard棄用。 – catlan

回答

3

正如我在評論中所說的,PackageMaker列出了我添加到項目中的文件並將其寫入到它的項目中。所以,如果我想添加一個單獨的文件,我需要打開項目,刪除包含該文件的選擇,最後,再次添加包含新文件的所有文件。或直接編輯項目的XML文件。使用PackageMaker自動構建我的項目包是無法忍受的。所以我改變了一個工具。一些谷歌搜索幫我找到了Packages。這個工具也不是很理想,但它比Apple的好得多。 Mojca大致描述了我迄今爲止使用PackageMaker所做的工作。 雖然使用我也不得不使用項目文件。但是,這個軟件不收集有關您加入到項目中的所有文件的信息,除非你明確告訴它這樣做: this screen is helpful

您可以在照片,我在什麼深度文件應包含項目有選擇的看。 .app文件夾下的所有文件夾都被手動擴展,以確保可以包含新文件的文件夾不會被擴展。在這種情況下,它是Java文件夾。 下一頁和最後一步是組裝使用螞蟻包:

<exec executable="/usr/local/bin/packagesbuild"> 
      <arg value="-v"/> 
      <arg value="${basedir}/Installer/MyProject.pkgproj"/> 
</exec> 
2

這是不準確的回答你的問題,而是一個有經驗的Mac開發誰花了很多時間去測試,並與PackageMaker戰鬥最近給我下面的提示:

您可以從命令調用PackageMaker行, ,但它看起來像蘋果沒有花費很多努力,很多東西 不起作用。因此改用GUI界面。

我決定接受他的教訓。對我來說,作爲一個相當不錯的妥協方案,一次只使用GUI來準備初始文件並手動對這些xml文件進行任何後續更改。然後我們在Xcode項目的目標這就要求packagemaker:

packagemaker --doc $SRCROOT/Project.pmdoc --out $BUILT_PRODUCTS_DIR/stage/ProjectInstaller.pkg 
hdiutil create $BUILT_PRODUCTS_DIR/Project-$VERSION.dmg -volname \"Project-$VERSION\" -fs HFS+ -srcfolder \"$BUILT_PRODUCTS_DIR/stage 

,讓所有我們現在需要做的(除了增加.pmdoc文件版本)來調用

xcodebuild -target Package 

獲得.dmg圖片。

我決定發佈這個答案,儘管你明確要求不要使用.pmdoc主要是從頭開始創建一個包時分享(別人的)不好的CLI體驗。也因爲我第一次沒有意識到用GUI創建一個包並不意味着我每次需要修改或構建一個包時都需要使用「奇怪的GUI工具」。

+0

我對* .pmdoc *有不好的體驗。爲什麼我不想使用它的主要原因 - 不可能只給一個文件夾gui PackageMaker。這個醜陋的東西枚舉了給定文件夾中的所有文件,並將它們的列表寫入到它的項目文件中。這就是爲什麼您不能將單個文件添加到部署單元,而不會再次混淆.pmdoc和PackageMaker。這是非常不方便的。我想我會回答描述我現在使用的解決方案。 –

4

掙扎與packagemaker的命令行參數一段時間後,我發現有更先進的日期和相關工具:pkgbuildproductbuild

自從我找到一種方法來做我想折磨包裝工的人,我從未使用過他們。

希望這會幫助一些不幸的Mac開發者。

+0

感謝您的回答。現在我正在使用第三方工具* Packager *。也許我會在下一個mac項目上嘗試一下你的建議。 –