發布內部專用 App 到 Apple 裝置
Apple 裝置支援以無線方式安裝內部專用 App,無需使用 Mac 或透過 App Store。在你可以發布這些 App 之前,你必須先具備佈建描述檔。佈建描述檔可以使用行動裝置管理(MDM)解決方案來安裝和管理,然後由使用者透過 MDM 或 App 更新來安裝。在佈建描述檔到期前,請參閱 Apple 開發者網站來為 App 製作新的描述檔。針對 iOS 或 iPadOS App,以新的佈建描述檔輸出新的 App 套件(.ipa 檔案),提供給首次安裝該 App 的使用者。
佈建和管理內部專用 App 開發者的使用者
內部專用 App 開發者擁有佈建和管理使用者的 Apple APIs 取用權限,可以自動化佈建描述檔產生和將使用者管理整合到現有工作流程中等作業。
有兩種方式可讓你發布內部專用 App:
使用 MDM
使用網站
這兩種方式皆需準備 App 進行發布,其包含資訊檔的準備。
【重要事項】在 iOS 18 和 iPadOS 18 或以上版本中,手動安裝(未使用 MDM)的內部專用 App 需要裝置重新啟動才能完成佈建描述檔的信任。
準備要進行無線發布的內部專用 App
若要準備內部專用 App 來進行無線發布,你要建立封存版本(.ipa 檔)及資訊檔來啟用 App 的無線發布和安裝功能。使用 Xcode 來製作 App 的版本化封存,然後輸出 App 以供發布到組織。Xcode 會使用發布憑證並包含適當的佈建描述檔。資訊檔是 Apple 裝置用來從你的網頁伺服器尋找、下載和安裝 App 的 XML 屬性列表(.plist 檔案)。Xcode 會使用你在分享封存的 App 以供發布到組織時提供的資訊來製作資訊檔。若要檢視屬性列表和相關值,請參閱 Apple 開發者網站上的安裝應用程式指令。
管理 Mac 電腦的內部專用 App
在 macOS 14 或以上版本中,你可以管理更多應用程式。若套件包含多個應用程式套件,任何部署到 /應用程式的應用程式都會受管理。管理式 App 必須保留在 /Applications 檔案夾才可視為已受管。
使用 MDM,組織可以定義是否在取消註冊時保留或移除受管理的應用程式,或甚至使用 MDM 解除安裝應用程式。這會從 /應用程式移除應用程式套件。由套件安裝的任何資料或在其他位置中的相關工序指令不會受到影響。
此外,使用「使用者註冊」或帳號導向的「裝置註冊」時,受管理應用程式的資料會位於獨立卷宗。
佈建和管理內部專用 App 開發者的使用者
內部專用 App 開發者擁有佈建和管理使用者的 Apple APIs 取用權限,可以自動化佈建描述檔產生和將使用者管理整合到現有工作流程中等作業。
如需更多資訊,請參閱 Apple 開發者網站上的企業程式 API。
取得 Mac 應用程式的套件識別碼
若要取得套件識別碼(也稱為套件 ID),請按住 Control 鍵並按一下應用程式,然後選取「顯示套件內容」。打開「內容」檔案夾,然後打開 Info.plist 檔。若不確定要使用哪個 App,請在「文字編輯」中打開檔案。使用 App 的「尋找」功能來尋找檔案中的 CFBundleIdentifier
,然後拷貝該行下方的字串。例如,com.betterbag.applicationname。將應用程式套件識別碼貼到文字檔中,或貼到備忘錄中以便稍後使用。
使用 MDM 來發布 App
若要使用 MDM,請使用包含 InstallEnterpriseApplication
(資訊檔或內嵌的資訊檔)指令或 InstallApplication
(資訊檔)指令的資訊檔。macOS 也支援 sha256 和憑證關聯。搭配不同作業系統使用這些指令時有額外的選項:
在安裝 iOS 17.2 或 iPadOS 17.2 或以上版本的裝置上,你也可以使用宣告式 App 設定。
在安裝 macOS 的裝置上,你可以使用:
InstallApplication
指令用於大量採購和 .pkg 安裝。InstallEnterpriseApplication
指令僅限用於 .pkg 安裝。
如需更多資訊,請參閱:MDM 指令。
使用網站來發布 App
如需無線 App 安裝,iOS、iPadOS 和 visionOS 1.1 App 必須符合下列需求:
App 格式必須為 .ipa,並搭配內部專用佈建描述檔來建立。
必須包含 XML 資訊檔。
必須下載自網址開頭為 HTTPS 的網站。
必須由裝置上受信任的憑證簽署。
其網路設定必須能讓裝置連接 Apple 伺服器。如需更多資訊,請參閱 Apple 支援文章:在企業網路上使用 Apple 產品。
若要安裝套件,使用者可使用特殊 URL 前置詞從你的網站下載資訊檔。你可以透過 iMessage 或電子郵件訊息發布下載資訊檔的 URL。以下為已加入前置碼的連結範例:
<a href="itms-services://?action=download-manifest&url=https://betterbag.com/manifest.plist">Install App</a>
你可以決定是否要設計或提供用來發布這些 App 類型的網站。請確定使用者已進行認證並視需求確定網站可從你的內部網路或網際網路連接。你的網站可以是只連結到資訊檔的單一頁面。當使用者點一下網頁連結,便會下載資訊檔,而資訊檔會啟動網頁已描述之項目的下載和安裝動作。
請確定你依照此額外指示操作:
請勿將網頁的連結直接加入封存的 App(.ipa)中。當資訊檔載入後,裝置會下載 .ipa 檔案。雖然 URL 的通訊協定部分是 itms-services,但 App Store 並未納入此程序中。
請確定 .ipa 檔案可以透過 HTTPS 存取,且你的網站是受 iOS 和 iPadOS 信任的憑證簽署。如果自簽憑證沒有受信任的來源,也無法通過裝置的驗證,則安裝便會失敗。
將這些項目上傳到你網站中某個可供認證使用者連接的區域:
資訊檔(副檔名為 .plist)
App 檔案(副檔名為 .ipa)
你可能會需要設定網頁伺服器,以正確地傳輸資訊檔和 App 檔案。對於伺服器,請將 MIME 類型加入到網頁伺服器的 MIME 類型設定:
application/octet-stream ipa
text/xml plist
若為 Microsoft 的 Internet Information Server(IIS),請使用「IIS 管理員」來將 MIME 類型加到伺服器的「屬性」頁面中:
.ipa application/octet-stream
.plist text/xml
【注意】如果建立了自助式入口網站,可以考慮將 Web Clip 加入到使用者的主畫面,方便將他們導回入口網站來取得後續的資訊,如新的設定描述檔、推薦的 App Store App,以及在 MDM 解決方案裡允許他們註冊。
憑證的驗證
使用者初次打開 App 時,裝置會聯絡 Apple OCSP 伺服器來驗證發布憑證。若憑證已遭撤銷,App 將不會啟動。若要驗證狀態,該裝置必須可以連接 ocsp.apple.com。
OCSP 回應會以快取儲存在裝置上,儲存的時間長短由 OCSP 伺服器指定,目前是介於 3 至 7 天。憑證的有效性將會等到裝置重新啟動且快取的回應已過期時,才會再次進行檢查。如果在此時收到撤銷,App 將不會啟動。
【警告】撤銷發布憑證會使你已簽署的所有 App 無效。你應將撤銷憑證作為最後的方式,也就是說,除非你確定密鑰已遺失或是認為憑證遭盜用,否則不要輕易撤銷憑證。
提供已更新的內部專用 App
你自己發布的 App 不會自動更新。當有新版本時,請通知使用者有更新項目,並指導他們安裝 App。請考慮讓 App 檢查更新項目,並在 App 打開時通知使用者。確定通知有提供 itms-services 連結。你也可以使用從 App 內使用 openURL 來安裝更新。
如果你想要讓使用者保留其裝置上儲存的 App 資料,請確定新版本與其要取代之版本使用相同的套件識別碼,並告知使用者不要在安裝新版本前刪除舊有版本。
在佈建描述檔到期前,請透過 iOS 開發者網站、iPadOS 開發者網站或 visionOS 開發者網站製作 App 的新描述檔。以新的佈建描述檔輸出新的 App 套件(.ipa 檔案),提供給首次安裝該 App 的使用者。
若使用者已擁有 App,建議你規劃下一版發行的時間,以便在新版本裡加入新的佈建描述檔。以此方式,使用者在使用你的 App 作業時便不會遭到中斷。若你不想這麼做,也可以只發布新的 .mobileprovision 檔案,讓使用者無需再次安裝 App。新的佈建描述檔會覆蓋 App 封存中原有的檔案。
發布用的佈建描述檔會在核發後的 12 個月到期。過了到期日,描述檔會移除,且 App 將無法啟動。
若你的發布憑證過期,App 將不會啟動而你將需要使用新的發布憑證來重建 App。發布憑證的有效期限為核發後三年或直到你的「Apple 企業開發人員計畫」(Apple Developer Enterprise Program)會員資格到期為止,視何者先到期。若要避免憑證到期,請確定在到期前更新你的會員資格。
你可以同時讓兩個個別的發布憑證為有效狀態;彼此為互相獨立。第二個憑證會提供延長的期限,以便在第一個憑證過期後用來更新你的 App。當你要求第二個發布憑證時,請確定你並未撤銷第一個憑證。
無線 App 發布的疑難解答
如果無法透過無線方式發布 App,並出現「無法下載」的訊息:
確定 App 已正確簽署。使用 Mac 版 Apple Configurator 將應用程式安裝到裝置上來加以測試,並查看是否有任何錯誤發生。
確定資訊檔的連結正確,且網頁使用者可取用資訊檔。
確定 .ipa 檔案的 URL(位於資訊檔中)是正確的,且網頁使用者可透過 HTTPS 取用該 .ipa 檔案。