共用方式為


用 Intune App Wrapping Tool 準備 iOS 應用程式的應用程式保護政策

使用 iOS Microsoft Intune App Wrapping Tool 啟用Intune內部 iOS 應用程式的保護政策,且不必更改應用程式本身的程式碼。

這個工具是一個 macOS 命令列應用程式,可以為應用程式建立一個包裝器。 應用程式處理完成後,你可以透過部署 應用程式保護政策 來更改其功能。

欲下載此工具,請參閱 GitHub 上的 iOS Microsoft Intune App Wrapping Tool

注意事項

如果你在應用程式中使用Intune App Wrapping Tool遇到問題,請在 GitHub 上提出協助請求。

App Wrapping Tool 的一般前提條件

在執行 App Wrapping Tool 之前,你需要先滿足一些基本的先決條件:

  • 請從 GitHub 下載 iOS 版的Microsoft Intune App Wrapping Tool

  • 一台安裝 Xcode 工具組版本 16.0 或更新的 macOS 電腦。

  • 您的公司或獨立軟體供應商 (ISV) 必須開發並簽署輸入 iOS 應用程式。

    • 檔案副檔名必須為 .ipa.app

    • 必須為 iOS 16.0 或更新版本編譯。

    • 它無法加密。

    • 沒有擴充檔案屬性。

    • 在用Intune App Wrapping Tool處理應用程式前,先設定權利。 權限賦予 應用程式更多權限和功能,超出通常授予的權限。 請參閱 「設定應用程式權限 」以獲得說明。

  • 確保系統鑰匙圈中有有效的簽署憑證。 如果你遇到應用程式的程式碼簽章問題,請採取以下步驟來解決:
    • 重設所有相關憑證的信任設定
    • 在系統鑰匙圈與登入鑰匙圈中安裝中間憑證
    • 卸載並重新安裝所有相關憑證

用 Microsoft Entra ID 註冊你的應用程式

  1. 請用 Microsoft Entra ID 註冊你的應用程式。 欲了解更多資訊,請參閱「向 Microsoft 身分識別平台註冊應用程式」。
  2. 把自訂的轉址網址加到你的應用程式設定裡。 更多資訊請參閱「配置 MSAL」。
  3. 讓你的應用程式存取 Intune MAM 服務。 欲了解更多資訊,請參閱「讓你的應用程式存取 Intune 行動應用程式管理服務」。
  4. 完成上述變更後,執行最新版本的 Intune 應用程式包裝工具。 為 MSAL) (Microsoft 驗證函式庫設定你的應用程式:將 Microsoft Entra 應用程式的客戶端 ID 加入命令列參數,並附上 Intune App Wrapping Tool。 欲了解更多資訊,請參閱 命令列參數

注意事項

-ac參數 和 -ar 是必要的參數。 每個應用程式都需要一組獨特的參數。 -aa 僅適用於單一租戶申請。

  1. 部署應用程式。

App Wrapping Tool 的 Apple 開發者先決條件

要將包裝式應用程式獨家分發給組織用戶,你需要擁有 Apple 開發者企業計畫 的帳號,以及與你的 Apple 開發者帳號連結的多個應用程式簽署實體。

想了解更多關於如何在組織內部分發 iOS 應用程式給貴組織用戶的資訊,請閱讀官方指南《 分發蘋果開發者企業計畫應用程式》。

你需要以下條件來分發 Intune 包裝的應用程式:

  • 蘋果開發者企業計畫的開發者帳號。

  • 內部及臨時發行的簽署憑證,附有有效的團隊識別碼。

    • 你需要簽署憑證的 SHA1 雜湊值作為Intune App Wrapping Tool的參數。
  • 內部分發配置設定檔。

建立 Apple 開發者企業帳號

  1. 請前往 蘋果開發者企業計畫網站

  2. 在頁面右上角,選擇 「註冊」。

  3. 請閱讀你需要報名的清單。 在頁面底部選擇 「開始您的註冊 」選項。

  4. 請使用你組織的 Apple 帳號登入。 如果你沒有,請選擇 建立 Apple 帳號

  5. 選擇您的實體類型並選擇繼續。

  6. 請填寫您組織的資訊。 選取 [繼續]。 此時,Apple 會聯絡你確認是否被授權註冊你的組織。

  7. 驗證後,選擇 同意授權

  8. 同意授權後,請購買 並啟用該程式

  9. 如果你是團隊代理人 (加入你組織) 蘋果開發者企業計畫的人,邀請團隊成員並分配角色來建立你的團隊。 想了解如何管理你的團隊,請閱讀蘋果關於 管理你的開發者帳戶團隊的文件。

建立 Apple 簽署憑證

  1. 前往 Apple 開發者入口網站

  2. 在頁面右上角,選擇 帳戶

  3. 請使用您的組織 Apple 帳號登入

  4. 選擇 證書、ID & 個人資料

    Apple 開發者入口網站 - 憑證、ID & 個人資料

  5. 選擇右上角的 Apple 開發者入口網站並登入 。 此動作會新增 iOS 憑證。

  6. 選擇在製作部門創建內部及臨時證書。

    選擇 In-House 與臨時證書

    注意事項

    如果你不打算發佈應用程式,只想在內部測試,可以用 iOS 應用程式開發憑證代替正式生產憑證。 如果你使用開發憑證,請確保行動配置檔包含你打算安裝該應用程式的裝置。

  7. 在頁面底部選擇 「下一步 」。

  8. 請閱讀使用您 macOS 電腦上的 Keychain Access 應用程式 (建立 CSR 憑證簽署請求) 的說明。

    閱讀說明以建立CSR

  9. 請依照前述指示建立憑證簽署請求。 在您的 macOS 電腦上,啟動 鑰匙圈存取 應用程式。

  10. 在螢幕頂端的 macOS 選單中,請前往「 鑰匙圈存取 > 憑證助理 > 」向憑證機構申請憑證

    向鑰匙圈存取權認證機構申請憑證

  11. 請依照 Apple 開發者網站的指示,建立憑證簽署請求 (CSR) 檔案。 把 CSR 檔案存到你的 macOS 電腦。

    輸入您申請的證書資訊

  12. 返回蘋果開發者網站。 選取 [繼續]。 然後上傳 CSR 檔案。

  13. Apple 會產生你的簽署憑證。 下載並儲存到你 macOS 電腦上一個難忘的位置。

    下載您的簽署憑證

  14. 雙擊你下載的證書檔案,將證書加入鑰匙圈。

  15. 再次開啟 鑰匙圈存取 。 在右上角搜尋證書名稱即可找到您的證書。 右鍵點擊該項目以跳出選單,並選擇 「取得資訊」。 在範例畫面中,我們使用的是開發證書,而非生產證書。

    將你的證書加入鑰匙圈

  16. 資訊視窗出現。 往下滑到最底,看看指 標籤下面。 複製 SHA1 字串 (模糊) ,作為 App Wrapping Tool 「-c」的參數。

    iPhone 資訊 - 指紋 SHA1 字串

建立 In-House 分發配置設定檔

  1. 返回 Apple 開發者帳號入口網站,並用你的組織 Apple 帳號登入

  2. 選擇 證書、ID & 個人資料

  3. 選擇右上角的 Apple 開發者入口網站並登入 。 此操作會新增一個 iOS 配置設定檔。

  4. 選擇在「分發」下建立內部配置設定檔。

    選擇內部配置設定檔

  5. 選取 [繼續]。 務必將先前產生的簽署憑證連結到配置設定檔。

  6. 請依照步驟將你的個人資料 (及擴充) .mobileprovision 下載到你的 macOS 電腦。

  7. 將檔案保存在一個令人難忘的位置。 此檔案用於使用 App Wrapping Tool 時的 -p 參數。

下載 App Wrapping Tool

  1. GitHub 下載 App Wrapping Tool 的檔案到 macOS 電腦。

  2. 雙擊Microsoft Intune應用程式限制套件以取得iOS.dmg。 會出現一個顯示終端使用者授權協議 (EULA) 的視窗。 仔細閱讀文件。

  3. 選擇 「同意 接受 EULA」,這樣套件就會掛載到你的電腦上。

執行 App Wrapping Tool

重要事項

Intune 定期發布Intune App Wrapping Tool更新。 定期查看 iOS Intune App Wrapping Tool 更新,並將此納入軟體開發發布週期,確保你的應用程式支援最新的應用程式保護政策設定。

使用終端機

打開 macOS 終端機並執行以下指令:

/Volumes/IntuneMAMAppPackager/IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i /<path of input app>/<app filename> -o /<path to output folder>/<app filename> -p /<path to provisioning profile> -c <SHA1 hash of the certificate> -ac <client ID of input app> -ar <redirect URI of input app> [-aa <authority URI of input app>] [-b [<output app build string>]] [-v] [-e] [-x /<array of extension provisioning profile paths>] [-dt] [-dl] [-ds]

注意事項

部分參數為可選,如下表所示。

例:以下範例指令在名為 MyApp.ipa 的應用程式上執行 App Wrapping Tool。 會指定一個配置設定檔和簽署憑證的 SHA-1 雜湊值來簽署包裹後的應用程式。 輸出應用程式 (MyApp_Wrapped.ipa) 會建立並儲存在你的桌面資料夾中。

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i ~/Desktop/MyApp.ipa -o ~/Desktop/MyApp_Wrapped.ipa -p ~/Desktop/My_Provisioning_Profile_.mobileprovision -c "12 A3 BC 45 D6 7E F8 90 1A 2B 3C DE F4 AB C5 D6 E7 89 0F AB" -ac "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ar "msauth.myAppsBundleID://auth" -v

命令列參數

你可以用 App Wrapping Tool 使用以下命令列參數:

例:以下範例指令執行 App Wrapping Tool,並在封裝應用程式以單一租戶內使用時,納入所需的指令。

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i ~/Desktop/MyApp.ipa -o ~/Desktop/MyApp_Wrapped.ipa -p ~/Desktop/My_Provisioning_Profile_.mobileprovision -c "12 A3 BC 45 D6 7E F8 90 1A 2B 3C DE F4 AB C5 D6 E7 89 0F AB" -aa https://login.microsoftonline.com/<tenantID> -ac "Client ID of the input app if the app uses the Microsoft Authentication Library" -ar "Redirect/Reply URI of the input app if the app uses the Microsoft Authentication Library"  -v
Property 如何使用
-i <Path of the input native iOS application file>. 檔案名稱必須以 .app 或 .ipa 結尾。
-o <Path of the wrapped output application>
-p <Path of your provisioning profile for iOS apps>
-c <SHA1 hash of the signing certificate>
-h 顯示 App Wrapping Tool 可用命令列屬性的詳細使用資訊。
-ac <Client ID of the input app if the app uses the Microsoft Authentication Library> 這是你應用程式註冊中客戶端ID欄位的GUID。
-ar <Redirect/Reply URI of the input app if the app uses the Microsoft Authentication Library> 這就是你在應用程式註冊中設定的 Redirect URI。 通常,經紀驗證之後,Microsoft Authenticator 應用程式會返回應用程式的 URL 協定。
-aa (單一租戶應用程式的必要條件) <Authority URI of the input app>https://login.microsoftonline.com/<tenantID>/
-v (可選) 向主控台輸出冗長訊息。 使用此旗標來除錯任何錯誤。
-e (可選) 使用此旗標讓App Wrapping Tool在處理應用程式時移除缺少的權限。 更多資訊請參閱 「設定應用程式權限」。
-xe (Optional) Prints 關於應用程式中 iOS 擴充功能的資訊,以及使用它們所需的權限。 更多資訊請參閱 「設定應用程式權限」。
-x (選修) <An array of paths to extension provisioning profiles>。 如果你的應用程式需要擴充功能配置設定檔,請使用此特性。
-b (可選) 如果你想讓包裝輸出應用程式和輸入應用程式使用相同的組合版本,請使用 -b 而不加參數 (不建議) 。

如果你想讓包裝的應用程式有自訂的 CFBundleVersion,那就用 -b <custom bundle version> 它。 如果你選擇指定自訂的 CFBundleVersion,建議將原生應用程式的 CFBundleVersion 依據最低重要元件(例如 1.0.0 -> 1.0.1)遞增。
-f (可選) <Path to a plist file specifying arguments.> 如果你選擇使用 plist 範本來指定 IntuneMAMPacker 的其他屬性如 -i、-o 和 -p,請在 plist 檔案前方使用此旗標。 請參見「使用 plist 來輸入參數」。
-dt (可選) 關閉Microsoft Intune客戶資料的收集。
-dl (選擇性) 將 MSAL 日誌從 Intune 日誌中停用,適用於與 MSAL 整合並實作自身 MSAL 日誌回撥的應用程式。
-ds (可選) 停用 Intune 對 SFSafariViewController、SFAuthSession 及 ASWebAuthenticationSession 的保護。

使用 plist 來輸入參數

執行 App Wrapping Tool 的一個簡單方法是將所有指令參數放入 plist 檔案中。 Plist 是一種類似 XML 的檔案格式,你可以用表單介面輸入命令列參數。

在 IntuneMAMPackager/Contents/MacOS 資料夾中, (一個 Parameters.plist 空白的 plist 範本,) 文字編輯器或 Xcode 開啟。 請輸入你對以下鍵的論證:

Plist 鍵 類型 預設值 附註
輸入應用程式封裝路徑 字串 和 -i 一樣
輸出應用程式封裝路徑 字串 和 -o 一樣
配置配置設定路徑 字串 和 -p 一樣
SHA-1 憑證雜湊 字串 和 -c 一樣
MSAL 管理局 字串 和 -aa 一樣
MSAL 用戶端識別碼 字串 跟 -ac 一樣
MSAL 回覆 URI 字串 和 -ar 一樣
Verbose 啟用 布林值 和 -v 一樣
移除缺少的權利 布林值 和 -e 一樣
防止預設建置更新 布林值 等同於使用 -b 但不使用參數
建置字串覆寫 字串 自訂的 CFBundleVersion 包裝輸出應用程式
擴充配置配置路徑 字串陣列 應用程式的擴充配置配置檔數列。
關閉遙測 布林值 和 -dt 一樣
停用 MSAL 日誌覆寫 布林值 和 -dl 一樣

用 IntuneMAMPackager 執行,只用 plist 作為參數:

./IntuneMAMPackager –f Parameters.plist

包裹後

包裝過程完成後,會顯示「應用程式已成功包裝」的訊息。 若發生錯誤,請參閱 錯誤訊息 以尋求協助。

包裝後的應用程式會儲存在你之前指定的輸出資料夾裡。 你可以將應用程式上傳到 Intune 管理中心,並與行動應用程式管理政策關聯。

重要事項

上傳包裝版應用程式時,如果已有較舊的 (包裝或原生) 版本部署到Intune,你可以嘗試更新舊版應用程式。 如果遇到錯誤,請將應用程式上傳為新應用程式,並刪除舊版本。

你現在可以將應用程式部署到使用者群組,並針對應用程式設定保護政策。 應用程式會依照你指定的保護政策在裝置上執行。

我應該多久用 Intune App Wrapping Tool 重新包裝我的 iOS 應用程式?

你需要重新包裝應用程式的主要情境如下:

  • 應用程式本身釋出了新版本。 先前版本的應用程式已被包裝並上傳至 Intune 管理中心。
  • iOS Intune App Wrapping Tool釋出新版本,啟用關鍵錯誤修正或專屬Intune應用程式保護政策功能。 iOS Microsoft Intune App Wrapping Tool 版本每 6 至 8 週透過 GitHub 倉庫釋出一次。

對於 iOS/iPadOS,你可以用與原本簽約應用程式不同的憑證或配置設定檔包裝應用程式。 然而,如果新的配置設定檔沒有包含應用程式中指定的權限,包裝過程就會失敗。 如果你使用「-e」命令列選項,能移除應用程式中缺少的權限,強制包裝避免失敗,可能會導致應用程式功能失效。

重新包裹的一些最佳實務包括:

  • 確保不同的配置設定檔擁有與先前任何配置配置檔相同的所有必要權限。

錯誤訊息與日誌檔案

請參考以下資訊來排解應用程式包裝工具的故障。

錯誤訊息

若應用程式包裝工具未能成功完成,主控台會顯示以下錯誤訊息之一:

錯誤訊息 其他相關資訊
您必須指定有效的 iOS 配置設定檔。 你的配置設定檔可能無效。 檢查你是否擁有正確的裝置權限,且你的設定檔是否正確針對開發或發行。 你的配置設定檔也可能過期了。
指定一個有效的輸入應用程式名稱。 請確認指定的輸入應用程式名稱是否正確。
指定一條有效路徑到輸出應用程式。 確保你指定的輸出應用程式路徑存在且正確。
指定一個有效的輸入配置檔。 請確保你提供了有效的配置設定檔名稱和擴充功能。 你的配置設定檔可能缺少權限,或 –p 是沒有包含命令列選項。
你指定的輸入應用程式找不到。 指定一個有效的輸入應用程式名稱與路徑。 確保你的輸入應用程式路徑有效且存在。 確保輸入應用程式存在於該位置。
你指定的輸入配置檔檔案找不到。 指定一個有效的輸入配置設定檔。 確保輸入配置檔案的路徑有效,且你指定的檔案存在。
你指定的輸出應用程式資料夾找不到。 指定一條有效路徑到輸出應用程式。 確保輸出路徑有效且存在。
Output 應用程式沒有 .ipa 副檔名。 App Wrapping Tool只接受帶有 .app.ipa 副檔名的應用程式。 確保你的輸出檔副檔名有效。
指定了無效的簽署憑證。 請指定有效的 Apple 簽署憑證。 請確定你從蘋果開發者入口網站下載了正確的簽署憑證。 你的憑證可能已過期,或缺少公鑰或私鑰。 如果你的 Apple 憑證和配置設定檔能在 Xcode 中正確簽署應用程式,那麼它們對 App Wrapping Tool 是有效的。 此外,請確認簽署憑證在主機 macOS 機器的鑰匙圈中是否有唯一名稱。 如果鑰匙圈中存在多個相同憑證的版本,工具會回傳此錯誤。
你指定的輸入應用程式是無效的。 請指定有效的申請。 請確保你的有效 iOS 應用程式是編譯成 .app or .ipa 檔案。
你指定的輸入應用程式是加密的。 指定一個有效的未加密應用程式。 App Wrapping Tool 不支援加密應用程式。 提供一個未加密的應用程式。
你指定的輸入應用程式不是 PIE) (Position Independent Executable 格式。 請以 PIE 格式指定一個有效的申請。 位置無關執行檔 (PIE) 應用程式在執行時可從隨機記憶體位址載入。 此功能能帶來安全效益。 想了解更多安全效益,請參閱你的 Apple 開發者文件。
你指定的輸入應用程式是被包裝的。 指定一個有效的未包裝應用程式。 如果工具已經處理過,你就無法處理一個應用程式。 如果你想重新處理一個應用程式,就用原始版本執行該工具。
你指定的輸入應用程式沒有簽名。 指定一個有效的簽署應用程式。 應用程式包裝工具需要應用程式簽名。 請參考你的開發者文件,了解如何簽署包裝式應用程式。
你指定的輸入應用程式必須是 .ipa 或 .app 格式。 應用程式包裝工具只接受 .app.ipa 擴充功能。 請確保你的輸入檔副檔名有效,且是作為 or .ipa 檔來補充.app的。
你指定的輸入應用程式是包裝的,且使用最新的政策範本版本。 App Wrapping Tool 不會用最新的政策範本版本重新包裝現有的 App。
警告:你沒有指定 SHA1 憑證雜湊值。 部署前務必確保你的包裝應用程式已簽署。 請確保你在命令列旗標後 –c 指定一個有效的 SHA1 雜湊值。

從裝置收集你包裝應用程式的日誌

請在故障排除時,請使用以下步驟取得封裝應用程式的日誌。

  1. 到你裝置上的 iOS 設定應用程式,選擇你的 LOB 應用程式。
  2. 選擇 Microsoft Intune
  3. 顯示診斷主控台 的設定切換到 開啟
  4. 啟動你的 LOB 應用程式。
  5. 請點選「開始」連結。
  6. 你現在可以直接將日誌傳送給 Microsoft,或透過裝置上的另一個應用程式分享。

注意事項

日誌功能已啟用於以 7.1.13 或更高版本包裝的應用程式Intune App Wrapping Tool。

從系統收集當機日誌

你的應用程式可能正在將有用資訊記錄到 iOS 用戶端裝置主控台。 當你遇到應用程式問題,需要判斷問題是出在 App Wrapping Tool 還是應用程式本身時,這些資訊非常有用。 要取得此資訊,請使用以下步驟:

  1. 透過執行應用程式重現這個問題。

  2. 依照蘋果的 除錯 iOS 應用程式指示,收集主控台輸出。

封裝應用程式也會讓用戶在應用程式當機後,透過電子郵件直接從裝置傳送日誌。 使用者可以將日誌寄給你檢查,必要時轉發給 Microsoft。

憑證、配置設定檔與認證要求

iOS 版 App Wrapping Tool 有一些必須符合的條件,才能保證完整功能。

需求 詳細資料
iOS 配置設定檔 在加入之前,請確保配置設定檔是有效的。 App Wrapping Tool 在處理 iOS 應用程式時不會檢查配置設定檔是否過期。 如果你指定過期的配置設定檔,應用程式包裝工具會包含它。 你不會看到問題,直到應用程式在 iOS 裝置上安裝失敗。
iOS 簽署憑證 在指定之前,請確認簽署憑證是否有效。 這個工具在處理 iOS 應用程式時不會檢查憑證是否過期。 如果提供了過期憑證的雜湊值,工具會處理並簽署應用程式,但無法安裝到裝置上。

確保用於簽署包裹應用程式的憑證在配置設定檔中與之匹配。 工具不會驗證配置檔是否與簽署包裹應用程式所提供的憑證相符。
驗證 裝置必須有 PIN 碼才能進行加密。 在你部署包裝應用程式的裝置上,點擊該裝置的狀態列需要使用者以工作或學校帳號重新登入。 包裝式應用程式的預設政策是 重新啟動時進行驗證。 iOS 處理任何外部通知 (例如電話) ,都是退出應用程式再重新啟動。

設定應用程式權限

在包裝應用程式之前,你可以授予 權限,賦予 應用程式超出一般應用程式能力的額外權限和功能。 權限 檔案 在程式碼簽署時用來指定應用程式內的特殊權限 (例如存取共享鑰匙圈) 。 在 Xcode 開發過程中,會啟用特定的應用程式服務,稱為 能力(capabilities )。 啟用後,這些能力會反映在你的權限檔案中。 欲了解更多權限與能力資訊,請參閱 iOS 開發者函式庫 中的新增功能 。 完整支援功能清單請參見 支援功能

iOS App Wrapping Tool 支援的功能

功能 描述 建議指引
應用程式群組 利用應用程式群組讓多個應用程式存取共享容器,並允許應用程式間更多程序間的通訊。

要啟用應用程式群組,請打開能力面板,並在應用程式群組中選擇開啟。 你可以新增應用程式群組或選擇現有的群組。
在設定應用程式群組時,請使用反向網域名稱系統 (DNS) 表示法:

group.com.companyName.AppGroup
背景模式 啟用背景模式後,iOS 應用程式可以繼續在背景運行。
資料保護 資料保護為 iOS 應用程式儲存在磁碟上的檔案增添了一層安全性。 資料保護利用特定裝置內建的加密硬體,將檔案以加密格式儲存在磁碟上。 你的應用程式需要被設定為使用資料保護。
應用內購買 應用內購買會讓你能連接商店並安全地處理用戶付款,直接將商店嵌入你的應用程式中。 你可以利用應用程式內購買來收取增強功能或更多應用程式可用內容的付款。
鑰匙圈共享 啟用鑰匙圈共享,讓你的應用程式能與團隊開發的其他應用程式共享鑰匙圈中的密碼。 使用鑰匙圈共享時,請使用反向 DNS 表示法:

com.companyName.KeychainGroup
個人VPN 啟用個人 VPN,讓您的應用程式能利用網路擴充框架建立並控制自訂系統 VPN 設定。
推播通知 Apple 推播通知服務 (APNs) 讓未在前景運行的應用程式通知使用者,通知使用者已有該用戶的資訊。 要讓推播通知正常運作,你需要使用應用程式專屬的配置設定檔。

請依照 Apple 開發者文件中的步驟操作。
無線配件配置 啟用無線配件設定會將外部配件框架加入你的專案,並讓你的應用程式能設定 Made for iPhone (MFi) Wi-Fi 配件。

啟用權利的步驟

  1. 啟用應用程式中的功能:

    a. 在 Xcode 中,前往你應用程式的目標,選擇 「能力」。

    b. 開啟相應的功能。 關於各項功能的詳細資訊及正確數值的判斷,請參閱 iOS 開發者資料庫中的 「新增能力 」。

    c. 請注意你在過程中建立的任何ID。 這些 ID 可能被稱為值 AppIdentifierPrefix

    d. 建立並簽署你的應用程式,讓它被包裝。

  2. 在您的配置設定檔中啟用權限:

    a. 登入蘋果開發者會員中心。

    b. 為你的應用程式建立一個配置設定檔。 關於說明,請參閱《如何取得 iOS Intune App Wrapping Tool的前置條件》。

    c. 在你的配置設定檔中,啟用與應用程式相同的權限。 你需要提供與開發應用程式時相同的 ID (AppIdentifierPrefix 數值) 。

    d. 完成配置設定檔精靈並下載你的檔案。

  3. 確保你符合所有先決條件,然後完成申請。

排除授權常見錯誤

如果 iOS 版 App Wrapping Tool 顯示權限錯誤,請嘗試以下故障排除步驟。

問題 原因 解決方案
未能解析由輸入應用程式產生的權限。 App Wrapping Tool 無法讀取從應用程式中解壓的 entitlements 檔案。 權益檔案可能格式不佳。 檢查你應用程式的權限檔案。 以下說明說明如何操作。 檢查權限檔案時,檢查是否有語法錯誤。 檔案應該是 XML 格式。
配置檔中缺少權限 (缺少的權限會被列) 。 重新打包應用程式,加入包含這些權限的配置設定檔。 配置設定檔啟用的權限和應用程式中啟用的功能之間存在不匹配。 這種不匹配也適用於特定功能相關的 ID, (如應用程式群組和鑰匙圈存取) 。 一般來說,你可以建立一個新的配置設定檔,啟用與應用程式相同的功能。 當個人檔案和應用程式之間的 ID 不匹配時,App Wrapping Tool 會替換這些 ID(如果能的話)。 如果建立新的配置設定檔後仍出現此錯誤,你可以嘗試使用 –e 參數移除應用程式中的權限, (參見「使用 –e 參數移除應用程式權限」章節) 。

找出已簽署應用程式的現有權限

要檢視已簽署應用程式及配置設定檔的現有權限:

  1. 找到 .ipa 檔案,並將副檔名改成 .zip。

  2. 展開 .zip 檔案。 此動作會建立一個包含 .app 包的 Payload 資料夾。

  3. 使用codesign工具檢查.app組合的權利,.app組合的實際名稱在哪裡 YourApp.app

    codesign -d --entitlements :- "Payload/YourApp.app"
    
  4. 使用安全工具檢查應用程式內嵌的配置設定檔的權限,其中 YourApp.app 是你.app套件的實際名稱。

    security cms -D -i "Payload/YourApp.app/embedded.mobileprovision"
    

使用 –e 參數移除應用程式中的權限

這個指令會移除應用程式中所有未在權限檔案中啟用的功能。 如果你移除應用程式正在使用的功能,可能會讓應用程式失效。 一個可能移除缺失能力的例子是廠商開發的應用程式預設具備所有功能。

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager –i /<path of input app>/<app filename> -o /<path to output folder>/<app filename> `–p` /<path to provisioning profile> –c <SHA1 hash of the certificate> -ac <client ID of input app> -ar <redirect URI of input app> -e

App Wrapping Tool 的安全與隱私

使用 App Wrapping Tool 時,請遵循以下安全與隱私最佳實務。

  • 你指定的簽署憑證、配置設定檔和業務線應用程式必須與你用來執行應用程式包裝工具的同一台 macOS 電腦上。 如果檔案在 UNC 路徑上,請確保 macOS 機器能存取它們。 路徑必須透過 IPsec 或 SMB 簽章來保護。

    匯入管理中心的包裝應用程式應該是在你執行工具的同一台電腦上。 如果檔案在 UNC 路徑上,請確保它能在執行管理中心的電腦上存取。 路徑必須透過 IPsec 或 SMB 簽章來保護。

  • 從 GitHub 倉庫下載 App Wrapping Tool 的環境需要透過 IPsec 或 SMB 簽章來保護。

  • 你所處理的應用程式必須來自可信來源,以確保防範攻擊。

  • 確保你在 App Wrapping Tool 中指定的輸出資料夾是安全的,尤其是遠端資料夾。

  • 包含檔案上傳對話框的 iOS 應用程式,可以讓使用者繞過、剪切、複製並貼上應用程式上的限制。 例如,使用者可以使用檔案上傳對話框上傳應用程式資料的截圖。

  • 當你在包裹式應用程式中監控裝置上的文件資料夾時,你可能會看到一個名為 .msftintuneapplauncher的資料夾。 如果你更改或刪除這個檔案,可能會影響受限制應用程式的正常運作。

  • 註冊自訂 URL 方案後,特定 URL 可以重新導向到你的應用程式。 iOS 和 iPadOS 允許多個應用程式註冊相同的自訂 URL 方案,作業系統會決定呼叫哪個應用程式。 請參閱 Apple 文件《 為你的應用程式定義自訂 URL 方案 》,以獲得避免自訂 URL 方案碰撞及處理錯誤 URL 的安全指引。

其他資源