我試圖通過PackageMaker的命令行界面自動化Mac OS X包構建。到目前爲止,我設法構建包並運行postinstall腳本。告訴我有沒有辦法在通過命令行構建時添加選項?因爲我希望用戶有一個運行或不運行postinstall腳本的選項。 P.S .:我不想使用「.pmdoc」。這個選項很糟糕。Mac OS X PackageMaker
回答
正如我在評論中所說的,PackageMaker列出了我添加到項目中的文件並將其寫入到它的項目中。所以,如果我想添加一個單獨的文件,我需要打開項目,刪除包含該文件的選擇,最後,再次添加包含新文件的所有文件。或直接編輯項目的XML文件。使用PackageMaker自動構建我的項目包是無法忍受的。所以我改變了一個工具。一些谷歌搜索幫我找到了Packages。這個工具也不是很理想,但它比Apple的好得多。 Mojca大致描述了我迄今爲止使用PackageMaker所做的工作。 雖然使用包我也不得不使用項目文件。但是,這個軟件不收集有關您加入到項目中的所有文件的信息,除非你明確告訴它這樣做:
您可以在照片,我在什麼深度文件應包含項目有選擇的看。 .app文件夾下的所有文件夾都被手動擴展,以確保可以包含新文件的文件夾不會被擴展。在這種情況下,它是Java文件夾。 下一頁和最後一步是組裝使用螞蟻包:
<exec executable="/usr/local/bin/packagesbuild">
<arg value="-v"/>
<arg value="${basedir}/Installer/MyProject.pkgproj"/>
</exec>
這是不準確的回答你的問題,而是一個有經驗的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工具」。
我對* .pmdoc *有不好的體驗。爲什麼我不想使用它的主要原因 - 不可能只給一個文件夾gui PackageMaker。這個醜陋的東西枚舉了給定文件夾中的所有文件,並將它們的列表寫入到它的項目文件中。這就是爲什麼您不能將單個文件添加到部署單元,而不會再次混淆.pmdoc和PackageMaker。這是非常不方便的。我想我會回答描述我現在使用的解決方案。 –
掙扎與packagemaker的命令行參數一段時間後,我發現有更先進的日期和相關工具:pkgbuild和productbuild。
自從我找到一種方法來做我想折磨包裝工的人,我從未使用過他們。
希望這會幫助一些不幸的Mac開發者。
感謝您的回答。現在我正在使用第三方工具* Packager *。也許我會在下一個mac項目上嘗試一下你的建議。 –
- 1. 在PackageMaker中使用腳本(Mac OS X)
- 2. 帶有Java應用的Mac OS X上的PackageMaker
- 3. 未安裝Mac OS PackageMaker .app軟件包?
- 4. 在Mac OS X
- 5. Mac OS X Linker
- 6. 在Mac OS X
- 7. 在Mac OS X
- 8. Mac OS X上的SimpleFTPUpload X
- 9. MAC OS X - Xcode4和
- 10. SDL + emacs + Mac OS X
- 11. ca-certificates Mac OS X
- 12. Mac OS X + cakephp + SqlServer
- 13. clamxav homebrew mac os x
- 14. 在Mac OS X 10.9
- 15. JDK在Mac OS X
- 16. Mac OS X 10.9與
- 17. Mac OS X和Mercurial
- 18. 升級MAC OS X
- 19. MSCGen for Mac OS X
- 20. GKSession與Mac OS X
- 21. Java JPopupMenu Mac OS X
- 22. FreeTDS Mac OS X MiniPortile
- 23. 就在Mac OS X
- 24. SetWindowsHookEx for Mac OS X?
- 25. Subversion與Mac OS X
- 26. 有道定位在Mac OS X上的.app /運行PackageMaker用的XCode 4.3
- 27. 在PackageMaker中插入到Mac OS X軟件包安裝的網頁鏈接
- 28. 從Mac OS X 10.6.7到最新版本的MAC OS X
- 29. 爲Mac OS X安裝守護進程
- 30. MAC OS X上的單聲道Capitan:LSOpenURLsWithRole
我寫了關於在此處使用[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