2011-08-10 65 views
29

我知道在Windows上有一堆的安裝工具,你可以用它來創建一個安裝程序,但在Mac OS上我見過的安裝應用程序有兩種方式:如何打包Mac OS應用程序進行安裝?

  1. ,你下載一個DMG文件,雙擊點擊,然後在裏面運行應用程序 - 應用程序通常會將圖標拖動到另一個圖標(表示應用程序文件夾)以安裝應用程序

  2. 另一種啓動明顯標準安裝程序的文件類型,有時會顯示就像一個警告「此安裝程序可能運行一個程序,以確定是否可以使用安裝繼續」

什麼包裝安裝在Mac OS的應用程序的「標準」的方式?以上是Apple推薦的方式之一嗎?

謝謝。

+1

新秀的問題,但爲什麼我們不能分佈在它自己的.app文件,並讓用戶將其複製到文件夾中,而不是創建一個DMG文件? –

+2

因爲.app不是文件。它只是看起來像用戶的「文件」,但它確實是一個「捆綁」。一個特殊結構的目錄,用戶可以看到它,並將其拖動,就好像它只是一個文件一樣。「Bundles」是非常「Mac」的東西,並且不能通過電子郵件或下載方式很好地傳播,特別是不能在Windows格式的磁盤上傳輸。然而,DMG(磁盤映像)文件只是磁盤上的「字節流」 - 可以輕鬆傳輸。 –

+1

@MottiShneor,這不是什麼.zip文件的目的? ;) –

回答

13

蘋果很清楚使得「標準」被下載從App Store的程序。這有利於使應用程序安裝對普通用戶透明。不管信不信,普通人在安裝程序的概念上遇到很多麻煩。當然,這好處帶有一些成本,但是這不是那個地方的爭論,也有很多其他地方的那個。

假設你不想或者不能去App Store的路線,PKG和DMG均爲分發程序常用的方法。如果您需要安裝應用程序包以外的文件(不應該是常用用例),請使用PKG。在所有其他情況下,使用DMG提示用戶將應用程序複製到Applications文件夾中。但是很多用戶不會理解他們需要這樣做(除非您的目標受衆是完全知識淵博的計算機用戶)。他們將從磁盤映像運行您的應用程序。在這種情況下,理想情況下,您的程序將檢測到它正在從磁盤映像運行,並提供將其自身複製到Applications文件夾中。

+2

蘋果所做的是讓事情保持一致。這對最終用戶非常有利。 – 2011-08-10 18:44:08

+0

很好的答案。一些鏈接,介紹3種主要方法將不勝感激。請從https://developer.apple.com/osx/distribution/ –

+0

開始,請您詳細說明一下程序如何能夠從DMG運行? (使用哪種Cocoa /其他API)以及程序如何將其自身複製到Applications文件夾?這需要認證/授權,不是嗎?有沒有這種技術的示例代碼? –

3

在OS X中,許多應用程序只是作爲Relocatable 應用程序包創建的,用戶只需將其複製到 /Application文件夾(或任何其他位置)。在其他情況下,當您需要在機器上執行某些操作時(例如添加用戶 或更改權限),可以使用PKG安裝程序(例如使用PackageMaker構建),該程序允許 執行一些安裝前和安裝後腳本,支持一些基本的 安裝配置,如選擇安裝驅動器。

有時候,與複雜的服務器軟件,你需要更多的靈活性,例如顯示自定義的頁面 安裝您 應用程序所需的最終用戶請求的信息,如MySQL的端口和密碼或代理信息 下載要求(或者只是爲了讓它看起來更漂亮) :))。對於這種情況,還有其他安裝程序解決方案,如我們的BitRock InstallBuilder(免責聲明,我是開發人員之一)。 InstallBuilder還具有生成多平臺 安裝程序的優勢,該安裝程序使用相同的項目,每個 平臺的定製化很少。

7

我們正在討論兩件事情:

  • 第一個也是最重要的,標準的方法,通過它可執行文件的位就會在某種程度上這是訪問,並通過系統正確註冊在磁盤上的佈局
  • 秒,該機構準備的。應用程序的建議,蘋果

Apple's site一箇舊的營銷頁面說,這是建議創建包(所以安裝應用程序可以在一個地方移到位)與Packag eMaker應用程序。 它的用法描述在這裏:mactech.com/articles/mactech/Vol.25/25.03/2503MacEnterprise-PackagingforSystemAdministrators/index.html。

但正如其他人所說,房間裏的大象是MacAppStore(簡稱MAS)。在首次亮相之前,大型公司的標準是將自己的自定義腳本放入舊式「捆綁」軟件包或使用VISE安裝程序等可執行文件。較小的開發人員通常會嘗試通過拖放操作來安裝應用程序,並將其分發到zip存檔或磁盤映像中(爲了簡單起見)。 MAS不同:從10.7開始,它使用一種被稱爲扁平軟件包(真正的xar壓縮文件,解釋here) 的軟件包格式(通過http傳輸到隱藏文件夾),直接安裝到應用程序(之後將其下載到的臨時文件夾刪除)。它將收據和賬單或材料文件放入/ private/var/db中,因此可通過內置命令行pkgutil工具進行審計,如下所述:mactech.com/articles/mactech/Vol.25/25.12 /2512MacEnterprise-PackagesReceiptsandSnow/index.html

使用扁平封裝格式的好處是您可以更安全,更高效地在網絡上傳輸內容,但是如果您要測試的話,那麼使用捆綁軟件包就不那麼容易並定期修改軟件包,或迭代以確保執行操作或檢查的腳本正常工作。即使是平坦的,建議將pkg放在檔案或磁盤映像中以提高靈活性。更多的分發工具期望DMG的比zip更好,所以也是如此。

除了Apple推薦的標準常規做法之外,還有這篇文章:https://www.afp548.com/2010/06/03/the-commandments-of-packaging-in-os-x/,它討論了爲什麼和爲什麼(儘管主要是爲了系統管理員)對包裝進行更廣泛的分發。強烈建議更多地瞭解如何以及爲何出現問題,以及應該避免什麼。

+3

包裝製造商已棄用相當一段時間 - 相反您應該使用pkgbuild命令行工具創建軟件包。 –

6

嘗試Iceberg! 另一個包創建者。

相關問題