
在「Apple 商務」中為應用程式建立套件安裝程式
你可以為應用程式建立套件安裝程式,然後新增至「Apple 商務」並部署至使用者。如果應用程式沒有套件安裝程式,你可以使用 macOS 的內建工具建立,以便分發。這最適合用在結構簡單的應用程式,像是完整包含在單一 .app 套裝的應用程式(通常位於「/Applications」中)。
簽署套件
在建立套件以供「Apple 商務」分發之前,你需要擁有管理式裝置信任的密碼編譯簽署身分。此身分的用途是確認套件建立方,並確認套件自簽署後未改動。如果你是 Apple Developer Program 的一員,可以使用你的安裝程式身分。請參閱〈為「門禁」簽署應用程式〉。
建立安裝程式身分
如果你沒有簽署身分,可以自行建立。該身分將有你自選的名稱和隨機序號以供辨識(你可以建立不止一個身分)。如果這些步驟在任何時間點失敗,請關閉「終端機」視窗並打開新視窗。你需要在搭載 macOS 13 或以上版本的 Mac 上執行這些步驟。
在桌面建立名稱為 temp 的檔案夾。
打開「終端機」App,然後輸入
cd並按一下空白鍵。將 temp 檔案夾拖移入「終端機」App 視窗中。
你會看到類似的路徑:
cd /Users/[你的簡式使用者名稱]/Desktop/packages按下 Return 鍵。
輸入
ID="name",其中 name 為貴機構的簡稱。如果沒有加上半形雙引號,名稱中就不得使用空格。例如「My Organization」可為「MyOrg」(不含雙引號)或「"My Organization"」(含半形雙引號)。按下 Return 鍵。
【重要事項】所有進一步的命令都需要在此視窗中執行。
貼上下方所有的命令,然後按下 Return 鍵。
KEY="InstallerCertificate_${ID}_PrivateKey.pem"openssl req -x509 -nodes -days 365 -newkey rsa:4096 -sha256 \-addext basicConstraints=critical,CA:false \-addext keyUsage=critical,digitalSignature \-set_serial "0x$(openssl rand -hex 4)" \-subj "/CN=Installer Certificate ($ID)" \-out InstallerCertificate_"$ID".pem \-keyout "$KEY"在相同的「終端機」視窗中,貼上下方所有命令,然後按下 Return 鍵。輸入你的密碼,以將新身分的憑證設定為信任。
security import "InstallerCertificate_$ID.pem"security import "$KEY" \-T /usr/bin/productbuild -T /usr/bin/pkgbuildsecurity add-trusted-cert -d InstallerCertificate_"$ID".pem打開 temp 檔案夾檢查名為 InstallerCertificate_name.pem 的新憑證及 InstallerCertificate_name_PrivateKey.pem 的專用密鑰,其中「name」是你在步驟 4 選擇的名稱。
請保留一份憑證以作記錄;你需要憑證才能讓裝置信任以該憑證簽署的套件。
專用密鑰已輸入你的鑰匙圈並已妥善儲存,因此可從檔案夾刪除。
【重要事項】請務必刪除憑證的密鑰,以避免他人偽裝貴機構的成員並簽署套件。
該身分將於建立一年後失效。屆時需再次按照此程序操作,並重新簽署上一個身分簽署過且仍處於分發狀態的套件。為了安全起見,你身分的 RSA 專用密鑰會儲存在鑰匙圈中。如果你需要在其他 Mac 上建立並簽署套件,你需要輸出專用密鑰,以輸入另一部 Mac 中。
讓裝置信任你的簽署身分
建立簽署身分後,需要讓裝置信任你的簽署身分。將身分憑證當作設定分發,就能讓裝置信任你的簽署身分。
擷取身分的 InstallerCertificate_name.pem,其中「name」是建立時選擇的名稱。
按照〈建立「憑證」設定〉作業的步驟操作,將憑證指派到你要安裝套件的所有裝置。
【重要事項】擁有簽署身分專用密鑰的任何人都可以建立受所設定裝置信任的套件,且使用者不會收到警告。因此,如果你有理由認為與憑證相符的專用密鑰已遺失,或未經授權而遭到拷貝,你可刪除憑證設定並建立新的簽署身分。
為單一套裝的應用程式建立套件
獲得裝置信任的簽署身分後,你就能用該身分建立套件,並將 App 分發到裝置。當你這麼做時,請注意包含在單一 .app 套件中的應用程式最容易分配。
確認你的應用程式位於「/應用程式」檔案夾中。
在桌面建立名稱為 packages 的檔案夾。
打開「終端機」App,然後輸入
cd並按一下空白鍵。將 packages 檔案夾拖曳到「終端機」App 視窗,然後按下 Return 鍵。
你會看到類似的路徑:
$ /Users/[你的簡式使用者名稱]/Desktop/packages輸入
productbuild --sign,然後按一下空白鍵。新增身分的名稱(其中「名稱」是你在「建立安裝程式身分」任務步驟 4 中輸入的名稱),按一下空白鍵,輸入
--component,然後再次按一下空白鍵。將應用程式從「/應用程式」拖曳到「終端機」視窗,然後按一下空白鍵。
輸入套件的名稱,其結尾須為
.pkg且通常與應用程式的名稱相同。範例如下:
productbuild --sign MyCo --component /Applications/AppName AppName.pkg按下 Return 鍵。
此
productbuild命令會列印資訊,其中包含應用程式,並在你的套件檔案夾中建立套件。如果你是第一次使用自己建立的身分,系統會提示你輸入密碼並授予使用該身分密鑰的權限。如果是這樣的情況,請輸入你的密碼,然後選取「一律允許」。
結束「終端機」App。
【注意】除非套件是由裝置管理服務傳送到已信任該身分的管理式裝置,否則若套件由非 Apple Developer Program 建立的身分所簽署,會一律遭「Apple 商務」拒絕。如果你嘗試在其他裝置上安裝以此方法建立的套件,安裝將會失敗。