2010-10-29 114 views
3

我發現自己處於一個獨特的場景 - 它必須是,因爲沒有搜索我似乎找到了答案。但也許有一個MacOS X的專家可以爲我解答這個問題嗎?如何安裝多個包和後期處理?

我使用PackageMaker爲我公司的應用程序創建安裝過程。這是一個跨平臺的應用程序,我的家庭基礎是Linux和Windows,所以請原諒我的MacOS X無智慧。

我們有兩個軟件包 - 呃,應用程序。其中一個是Other.app,由一家外部公司開發,我們正在「捆綁」我們的軟件。我們的應用程序是Stats.app。我們的應用程序將作爲啓動代理運行,因此相應地,我有一個.plist文件,可以在手動安裝在終端中時使用。

我的安裝過程的目標是這樣的:

  1. 安裝Other.app到/應用
  2. 安裝Stats.app到/用戶/用戶< > /應用程序(見注)
  3. 安裝Stats.plist to/Users/<user>/Library/LaunchAgents
  4. Post-process Stats.plist修改「ProgramArguments」鍵以便路徑正確:

    <陣列>
    <串>%{HOME} /Applications/Stats.app/Contents/MacOS/Stats < /串>
    < /陣列>

  5. 後執行一些簡單的命令:

    /Application/Other.app/Contents/MacOS/Other --configure = config.txt

  6. 檢查退出代碼,如果一切正常,請告訴用戶我們已完成。

我希望 - 不...祈禱! - 某人如何獲得這方面的信息。

爲了澄清,Stats.app不在用戶主目錄中。由於Stats.app需要正在運行的Carbon才能運行,因此啓動代理需要位於​​主目錄中。

+0

我正面臨着與你相同的情況,並且我被PackageMaker超過一個月的時間... – jiandingzhe 2016-09-13 14:48:05

回答

0

使用每個軟件包的安裝後/升級後腳本進行重寫。不同版本的PackageMaker看起來有所不同,而且您定位的系統也會影響UI,所以請詳細介紹。

我相信蘋果公司將PackageMaker作爲面向平臺開發人員的發襯衫,因爲生活對於Interface Builder,Cocoa和Xcode來說太簡單了。祝你好運!

另外:不要相信它正確處理權限;請安裝您的安裝後/升級後腳本(通常爲兩者設置相同的腳本)並通過chmod和chown文件。不需要sudo,你已經以root身份運行。

另外還有:PackageMaker無法處理安裝目錄結構,該目錄結構包含符號鏈接到創建循環的目錄。這包括Apple發佈的一些框架,比如DotMacKit。

+0

那麼,如何讓PackageMaker安裝Other.app到/和Stats.app到/ Users /用戶?劇本的語言是什麼? bash腳本? – optionsanarchist 2010-10-29 16:47:15

+0

您可以使用PackageMaker UI爲每個軟件包配置安裝目標目錄。它設置所有權,權限,ACL和重寫plist,以便確實需要安裝/升級腳本。那些可以用你想要的任何語言;他們只是作爲程序來執行,所以使用正確的哈希值線,你很好。 – 2010-10-29 16:50:45

+0

啊,很酷。謝謝! – optionsanarchist 2010-10-29 16:54:29

0

您可以嘗試一個bash腳本,將應用程序安裝到所需的目錄,並在腳本中使用sed來修改Stats.plist文件。