發布 app 的方式有很多種,這里說一個比較常用的發布到本地的方式。
-
xcode 打開應用工程
-
菜單欄選擇 product -> Archive,此時 xcode 就會打包應用,完成后會跳到類似如下的包管理窗口:

-
點擊
Distribute App按鈕,選擇Copy App:
-
點擊
Next,選擇導出名稱和目錄,這里名稱使用默認,目錄選擇Desktop:
-
點擊
Export之后,就會在Desktop中看到一個步驟4中的名稱相同的目錄,里面就是導出的 app:
以上就完成了 app 的生成。
准備素材
制作 dmg 前需要准備 app 的圖標文件 icns 和背景圖。
app 的圖標文件
這里需要的圖標文件為 icns 格式,博主在開發 iCountdown 的時候只准備了 png 格式的文件,難道還得進行轉換不成,其實不需要,macOS 的應用圖標都是 icns 格式,所以可以從剛剛導出的 app 中獲取這個圖標文件。
-
在剛才導出的 app 上右鍵,選擇
顯示包內容 -
此時會打開顯示 app 內的文件,依次進入
Contents-Resources -
不出意外就會看到一個格式為 icns 的圖片文件,其樣子與 app 的圖標一樣,這就是我們想要的 icns,將其拷貝到桌面:

背景圖片
相信讀者在安裝一下 dmg 文件的應用時,都會知道,打開 dmg 文件后,目錄中有個背景圖片提示將 app 拖放到 applications 文件夾中,像 qq for mac的也是如此:

所以我們也需要一個這樣的背景圖,自己設計就好了,說明意思就 OK,博主使用 sketch 設計了一個簡陋的背景圖( png 格式),也放在了桌面,名為 dmg.png:

制作 dmg
查看 app 、准備的 icns 圖標和背景圖共占空間的大小,博主這里是:
| 文件 | 空間大小 |
|---|---|
| iCountdown.app | 約13.1MB |
| AppIcon.icns | 65KB |
| dmg.png | 33KB |
| 共計 | 約13.2MB(肯定小於13.3MB) |
這里統計三個文件的大小是因為一會兒要使用。
新建空的 dmg 文件
-
打開
磁盤工具.app -
菜單欄中:
文件-新建映像-空白映像 -
在出來的對話框中按您的需求修改橙色框圈起來的地方,其中空間大小設置略大於上面提到的 13.2MB 即可,這里設置為 14.5MB:

-
創建完成后就可以在桌面看到空白的映像
放置 dmg 中的文件
-
將第一節中導出的 app 文件、桌面上的 icns 文件和背景圖全部拖進新建的映像文件中:
-
在映像中創建
/Applications的軟鏈接(在終端下執行命令,cd 的目錄改為您對應映像掛載的目錄)cd /Volumes/iCountdown ln -s /Applications Applications
配置映像文件的顯示選項
-
打開映像掛載目錄,目錄中會看到四個文件:iCountdown.app, dmg.png, AppIcon.icns 和 Applications
-
目錄中右鍵點擊
查看顯示選項,按照下圖更改選項:
-
把 dmg.png 拖入顯示選項下面的框中,為目錄設置背景,調整
iCountdown.app和Applications到合適位置 -
調整窗口大小剛好覆蓋背景圖
-
在桌面映像掛載目錄上右擊選擇
顯示簡介,會跳出目錄的簡介對話框,拖動目錄中的圖標文件到簡介窗口左上角的 logo 位置,就把掛載目錄的圖標修改為應用圖標了 -
最后隱藏圖標文件和背景圖:
cd /Volumes/iCountdown chflags hidden AppIcon.icns chflags hidden dmg.png
最終打開映像的掛載目錄會是類似下面的樣子:

轉換 dmg
最后一步轉換 dmg 文件,這一步主要起到的作用是壓縮文件,減小 dmg 文件的占用空間。
-
彈出掛載的映像目錄
-
打開
磁盤工具.app -
菜單欄 -
映像-轉換,在彈出的對話框中選擇剛剛創建的 dmg 文件:
-
點擊
選取后,在彈窗中配置名稱和導出目錄:
-
點擊
轉換,完成后就看到了最終的 dmg 文件了
