Подготовка приложений iOS к использованию политик защиты приложений с помощью Intune App Wrapping Tool

Используйте Microsoft Intune App Wrapping Tool для iOS, чтобы включить Intune политики защиты для собственных приложений iOS, не изменяя код самого приложения.

Инструмент представляет собой приложение командной строки macOS, создающее оболочку вокруг приложения. После обработки приложения его функциональность можно изменить, развернув для него политики защиты приложений .

Чтобы скачать средство, см. Microsoft Intune App Wrapping Tool для iOS на GitHub.

Примечание.

Если у вас возникли проблемы с использованием Intune App Wrapping Tool с приложениями, отправьте запрос на помощь в GitHub.

Общие требования к инструменту App Wrapping Tool

Перед запуском средства App Wrapping Tool необходимо выполнить некоторые общие предварительные требования.

  • Скачайте Microsoft Intune App Wrapping Tool для iOS с сайта GitHub.

  • Компьютер с macOS с установленным набором инструментов Xcode версии 16.0 или более поздней.

  • Ваша компания или независимый поставщик программного обеспечения (ISV) должны разработать и подписать приложение ввода для iOS.

    • Файл должен иметь расширение .ipa или .app.

    • Он должен быть скомпилирован для iOS 16.0 или более поздней версии.

    • Его нельзя зашифровать.

    • Нет расширенных атрибутов файла.

    • Установите права перед обработкой приложения с помощью Intune App Wrapping Tool. Права предоставляют приложению больше разрешений и возможностей, выходящих за рамки обычно предоставляемых. Инструкции см. в разделе "Настройка прав приложений ".

  • Убедитесь в наличии действительных сертификатов подписи в цепочке ключей системы. Если у вас возникли проблемы с подписыванием кода приложения, выполните следующие действия, чтобы устранить их:
    • Сброс параметров доверия для всех связанных сертификатов
    • Установка промежуточных сертификатов в системную цепочку ключей и цепочку ключей входа
    • Удалите и переустановите все связанные сертификаты

Зарегистрируйте свое приложение с помощью Microsoft Entra ID

  1. Зарегистрируйте свои приложения с помощью Microsoft Entra ID. Подробнее см. в разделе Регистрация приложения с помощью платформы удостоверений Майкрософт.
  2. Добавьте настраиваемый URL-адрес перенаправления в параметры приложения. Дополнительные сведения см. в разделе Настройка MSAL.
  3. Предоставьте своему приложению доступ к службе Intune MAM. Дополнительные сведения см. в разделе "Предоставление вашему приложению доступа к службе управления мобильными приложениями Intune".
  4. После внесения указанных выше изменений запустите последнюю версию средства упаковки приложений Intune. Настройка приложений для библиотеки проверки подлинности Майкрософт (MSAL). Добавьте Microsoft Entra идентификатор клиента приложения в параметры командной строки с помощью Intune App Wrapping Tool. Дополнительные сведения см. в разделе "Параметры командной строки".

Примечание.

Параметры -ac и являются обязательными -ar . Каждому приложению нужен уникальный набор этих параметров. -aa требуется только для приложений с одним клиентом.

  1. Разверните приложение.

Предварительные требования к разработчикам Apple для App Wrapping Tool

Чтобы распространять упакованные приложения исключительно для пользователей вашей организации, вам необходима учетная запись в программе Apple Developer Enterprise Program и несколько сущностей для подписи приложений, связанных с вашей учетной записью разработчика Apple.

Дополнительные сведения о внутреннем распространении приложений iOS для пользователей вашей организации см. в официальном руководстве по распространению приложений Apple Developer Enterprise Program.

Для распространения приложений, обернутых в Intune, требуется следующее:

  • Учетная запись разработчика в программе Apple Developer Enterprise.

  • Внутренний и специальный сертификат подписи распределения с действительным идентификатором команды.

    • В качестве параметра для Intune App Wrapping Tool требуется хэш SHA1 сертификата подписи.
  • Внутренний профиль подготовки к распространению.

Создание учетной записи Apple Developer Enterprise

  1. Перейдите на сайт программы Apple Developer Enterprise Program.

  2. В правом верхнем углу страницы выберите Записаться.

  3. Ознакомьтесь с контрольным списком того, что вам нужно зарегистрировать. Выберите "Начать регистрацию" внизу страницы.

  4. Войдите с помощью учетной записи Apple вашей организации. Если у вас ее нет, выберите «Создать учетную запись Apple».

  5. Выберите тип сущности и нажмите кнопку "Продолжить".

  6. Заполните форму, указав сведения о вашей организации. Нажмите Продолжить. На этом этапе Apple связывается с вами, чтобы подтвердить, что у вас есть полномочия для регистрации организации.

  7. После проверки выберите "Согласиться с лицензией".

  8. После получения лицензии завершите процедуру, купив и активировав программу.

  9. Если вы являетесь агентом команды (человеком, который присоединяется к программе Apple Developer Enterprise Program для вашей организации), пригласите членов команды и назначьте роли для создания команды. Чтобы узнать, как управлять командой, ознакомьтесь с документацией Apple по управлению командой учетных записей разработчиков.

Создание сертификата подписи Apple

  1. Перейдите на портал разработчиков Apple.

  2. В правом верхнем углу страницы выберите "Учетная запись".

  3. Войдите с помощью учетной записи Apple вашей организации.

  4. Выберите сертификаты, идентификаторы & профили.

    Портал разработчиков Apple — сертификаты, идентификаторы & профили

  5. Выберите портал разработчиков Apple со знаком в правом верхнем углу. Это действие добавляет сертификат iOS.

  6. Выберите создание внутреннего и специального сертификата в разделе "Производство".

    Выбор In-House и специальный сертификат

    Примечание.

    Если вы не планируете распространять приложение, а хотите протестировать его только внутри компании, вы можете использовать сертификат разработки приложений для iOS вместо сертификата для рабочей среды. Если вы используете сертификат разработки, убедитесь, что профиль подготовки мобильных устройств включает устройства, на которых вы планируете установить приложение.

  7. Нажмите кнопку " Далее " внизу страницы.

  8. Прочтите инструкции по созданию запроса на подпись сертификата (CSR) с помощью приложения Keychain Access на компьютере с macOS.

    Прочитайте инструкции по созданию CSR

  9. Следуйте предыдущим инструкциям, чтобы создать запрос на подпись сертификата. На компьютере с macOS запустите приложение "Доступ к цепочке ключей ".

  10. В меню macOS в верхней части экрана выберите Помощник > по проверке сертификатов доступа > к связке ключей Запросить сертификат в центре сертификации.

    Запрос сертификата в центре сертификации в разделе

  11. Следуйте инструкциям сайта разработчиков Apple, чтобы создать файл запроса подписи сертификата (CSR). Сохраните CSR-файл на компьютере с macOS.

    Введите сведения для запрашиваемого сертификата

  12. Вернитесь на сайт разработчиков Apple. Нажмите Продолжить. Затем отправьте CSR-файл.

  13. Apple создает ваш сертификат подписи. Скачайте и сохраните его в запоминающемся месте на компьютере macOS.

    Скачайте сертификат подписи

  14. Дважды щелкните скачанный файл сертификата, чтобы добавить его в цепочку ключей.

  15. Снова откройте доступ к связке ключей. Чтобы найти сертификат, выполните поиск по его имени в правом верхнем углу панели поиска. Щелкните элемент правой кнопкой мыши, чтобы открыть меню и выбрать "Получить сведения". На экранах примеров используется сертификат разработки вместо производственного сертификата.

    Добавление сертификата в цепочку ключей

  16. Откроется информационное окно. Прокрутите вниз и посмотрите под надписью "Отпечатки пальцев ". Скопируйте строку SHA1 (размытую), чтобы использовать ее в качестве аргумента "-c" для App Wrapping Tool.

    Сведения об iPhone: строка SHA1 отпечатков пальцев

Создание профиля подготовки к распространению In-House

  1. Назад на портал учетной записи разработчика Apple и войдите с помощью учетной записи Apple организации.

  2. Выберите сертификаты, идентификаторы & профили.

  3. Выберите портал разработчиков Apple со знаком в правом верхнем углу. Это действие добавляет профиль подготовки iOS.

  4. Выберите создание профиля подготовки "Внутри компании " в разделе "Распространение".

    Выберите профиль подготовки

  5. Нажмите Продолжить. Обязательно свяжите ранее созданный сертификат подписи с профилем подготовки.

  6. Следуйте инструкциям, чтобы загрузить свой профиль (с расширением .mobileprovision) на компьютер с macOS.

  7. Сохраните файл в памятном месте. Этот файл используется для параметра -p при использовании инструмента App Wrapping Tool.

Скачать средство App Wrapping Tool

  1. Скачайте файлы для средства App Wrapping Tool с GitHub на компьютер с macOS.

  2. Дважды щелкните Microsoft Intune Упаковщик ограничений приложений для iOS.dmg. Откроется окно с лицензионным соглашением (EULA). Внимательно прочтите документ.

  3. Выберите "Принимаю", чтобы принять лицензионное соглашение с конечным пользователем, которое подключает пакет к вашему компьютеру.

Запустите средство App Wrapping Tool

Важно!

Intune регулярно выпускает обновления для Intune App Wrapping Tool. Регулярно проверка Intune App Wrapping Tool для iOS на наличие обновлений и включайте в цикл выпуска разработки программного обеспечения, чтобы обеспечить поддержку вашими приложениями последних параметров политики защиты приложений.

Использование терминала

Откройте терминал 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]

Примечание.

Как показано в следующей таблице, некоторые параметры являются необязательными.

Пример: В следующем примере команды выполняется средство App Wrapping Tool в приложении MyApp.ipa. Для подписания упакованного приложения указываются профиль подготовки и хэш 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> Это GUID в поле "Идентификатор клиента" из списка приложения в разделе регистрации приложения.
-ar <Redirect/Reply URI of the input app if the app uses the Microsoft Authentication Library> Это URI перенаправления, настроенный в регистрации приложения. Как правило, это протокол URL-адреса приложения, к которому приложение Microsoft Authenticator возвращается после проверки подлинности при посредничестве.
-aa (Требуется для приложений с одним клиентом) <Authority URI of the input app> т.е. https://login.microsoftonline.com/<tenantID>/
-v (Необязательно) Выводит подробные сообщения на консоль. Используйте этот флаг для отладки любых ошибок.
-e (Необязательно) Используйте этот флаг, чтобы средство App Wrapping Tool удаляло отсутствующие права по мере обработки приложения. Дополнительные сведения см. в разделе Настройка прав приложения.
-xe (Необязательно) Печатает сведения о расширениях iOS в приложении и необходимых для их использования данных. Дополнительные сведения см. в разделе Настройка прав приложения.
-x (Необязательно). <An array of paths to extension provisioning profiles> Используйте это свойство, если вашему приложению требуются профили подготовки расширений.
-b (Необязательно) Используйте -b без аргумента, если вы хотите, чтобы упакованное выходное приложение имело ту же версию пакета, что и приложение ввода (не рекомендуется).

Используйте -b <custom bundle version> , если нужно, чтобы упакованное приложение имело настраиваемую версию CFBundleVersion. Если вы решили указать собственную CFBundleVersion, рекомендуется увеличить CFBundleVersion собственного приложения на наименее значащий компонент, например 1.0.0> –1.0.1.
-f (Необязательно) <Path to a plist file specifying arguments.> Используйте этот флаг перед файлом PLIST , если вы решили использовать шаблон PLIST для указания остальных свойств IntuneMAMPackager, таких как -i, -o и -p. См. статью Использование файла PLIST для ввода аргументов.
-dt (Необязательно) Отключите сбор данных клиента Microsoft Intune.
-dl (Необязательно) Отключите журналы MSAL из журналов Intune для приложений, интегрированных с MSAL, и реализуйте собственный обратный вызов ведения журнала MSAL.
-ds (Необязательно) Отключите средства защиты Intune для SFSafariViewController, SFAuthSession и ASWebAuthenticationSession.
-mp (Необязательно). <Path to a plist file containing MAM settings to merge into the wrapped app> Укажите пользовательские параметры пакета SDK MAM для Intune, которые будут объединены со словарем IntuneMAMSettings приложения в процессе упаковки. Примечание. Параметры MultiIdentity, MAMPolicyRequired, , AutoEnrollOnLaunchи ContainingAppBundleId не поддерживаются с помощью -mp, так как они автоматически настраиваются инструментом App Wrapping Tool. Параметры аутентификации (ADALAuthority, ADALClientId, ADALRedirectUri) также не поддерживаются через -mp и должны быть настроены с помощью параметров командной строки -aa, -ac и -ar.

Использование файла PLIST для ввода аргументов

Простой способ запустить средство App Wrapping Tool — поместить все аргументы команды в файл PLIST. Plist — это формат файлов, похожий на XML, который можно использовать для ввода аргументов командной строки с помощью интерфейса формы.

В папке IntuneMAMPackager/Contents/MacOS откройте Parameters.plist (пустой шаблон PLIST) с помощью текстового редактора или Xcode. Введите аргументы для следующих ключей:

Клавиша PLIST Тип Значение по умолчанию Примечания
Путь к пакету приложения ввода String пусто То же, что и -i
Путь к выходному пакету приложения String пусто То же, что и -o
Путь к профилю подготовки String пусто То же, что и -p
Хэш сертификата SHA-1 String пусто То же, что и -c
Полномочия MSAL String пусто То же, что и -aa
Идентификатор клиента MSAL String пусто То же, что и -ac
URI ответа MSAL String пусто То же, что и -ar
Подробная информация включена Логический false То же, что и -v
Удаление отсутствующих прав Логический false То же, что и -e
Запретить обновление сборки по умолчанию Логический false Эквивалентно использованию -b без аргументов
Переопределение строки сборки String пусто Настраиваемая CFBundleVersion упакованного приложения вывода
Пути к профилям подготовки расширений Массив строк пусто Массив профилей подготовки расширений для приложения.
Отключение телеметрии Логический false То же, что и -dt
Отключение переопределения журнала MSAL Логический false То же, что и -dl
Параметры MAM Путь к файлу PLIST String пусто То же, что и -mp

Запустите IntuneMAMPackager с файлом PLIST в качестве единственного аргумента:

./IntuneMAMPackager –f Parameters.plist

Пост-упаковка

После завершения процесса упаковки отобразится сообщение "Приложение успешно упаковано". Если возникает ошибка, см. раздел "Сообщения об ошибках " для получения справки.

Приложение-оболочка сохранится в папке вывода, указанной ранее. Вы можете отправить приложение в Центр администрирования Intune и связать его с политикой управления мобильными приложениями.

Важно!

При отправке упакованного приложения вы можете попытаться обновить более раннюю версию приложения, если старая (упакованная или встроенная) версия уже развернута в Intune. Если возникла ошибка, отправьте приложение как новое приложение и удалите старую версию.

Теперь вы можете развернуть приложение в группах пользователей и настроить для этого приложения целые политики защиты приложений. Приложение работает на устройстве с использованием указанных политик защиты приложений.

Как часто следует менять упаковку приложения iOS с помощью Intune App Wrapping Tool?

Основные сценарии, в которых необходимо выполнить переоболочку приложений, следующие:

  • Само приложение выпустило новую версию. Предыдущая версия приложения была упакована и отправлена в Центр администрирования Intune.
  • Выпущена новая версия Intune App Wrapping Tool для iOS, в которой можно исправить основные ошибки или добавить новые функции политики защиты приложений Intune. Выпуск новой версии происходит каждые 6–8 недель через репозиторий GitHub для Microsoft Intune App Wrapping Tool для iOS.

Для iOS/iPadOS приложение можно обернуть с помощью сертификата или профиля подготовки, отличающегося от того, который первоначально использовался для подписи приложения. Однако если новый профиль подготовки не включает права, указанные в приложении, процесс упаковки завершится сбоем. Если вы используете параметр командной строки "-e", который удаляет все отсутствующие права из приложения, принудительный сбой упаковки в этом сценарии может привести к нарушению функциональности приложения.

Ниже приведены некоторые рекомендации по переносу упаковки.

  • Обеспечение того, чтобы другой профиль подготовки имел все необходимые права, что и любой предыдущий профиль подготовки.

Сообщения об ошибках и файлы журналов

Используйте следующие сведения для устранения неполадок, связанных со средством упаковки приложений.

Сообщения об ошибках

Если не удается запустить средство упаковки приложений, на консоли отображается одно из следующих сообщений об ошибке:

Сообщение об ошибке Дополнительная информация
Необходимо указать действительный профиль подготовки iOS. Возможно, ваш профиль подготовки недействителен. Убедитесь, что у вас есть соответствующие разрешения для устройств, а ваш профиль правильно предназначен для разработки или распространения. Возможно, истек срок действия вашего профиля подготовки.
Укажите допустимое имя приложения ввода. Убедитесь, что имя приложения ввода указано правильно.
Укажите допустимый путь к выходному приложению. Убедитесь, что указанное вами приложение выводов существует и является правильным.
Укажите допустимый профиль подготовки ввода. Убедитесь, что вы указали действительное имя профиля подготовки и расширение. Возможно, в профиле подготовки отсутствуют активные права или не включен параметр командной строки –p .
Указанное вами приложение ввода не найдено. Укажите допустимое имя приложения ввода и путь к нему. Убедитесь, что путь к приложению ввода является допустимым и существует. Убедитесь, что приложение ввода существует в этом расположении.
Не найден указанный файл профиля подготовки ввода. Укажите допустимый файл профиля подготовки ввода. Убедитесь, что путь к файлу подготовки ввода допустимый и что указанный файл существует.
Указанная папка выходного приложения не найдена. Укажите допустимый путь к выходному приложению. Убедитесь, что выходной путь является допустимым и существует.
Приложение вывода не имеет расширения IPA . В App Wrapping Tool принимаются только приложения с расширениями .app и IPA. Убедитесь в том, что выходной файл имеет допустимое расширение.
Указан недопустимый сертификат подписи. Укажите действительный сертификат подписи Apple. Убедитесь, что вы загрузили правильный сертификат подписи с портала разработчика Apple. Возможно, истек срок действия сертификата или отсутствует открытый или закрытый ключ. Если ваш сертификат Apple и профиль подготовки можно использовать для правильной подписи приложения в Xcode, то они действительны для App Wrapping Tool. Кроме того, убедитесь, что сертификат подписи имеет уникальное имя в цепочке ключей хост-компьютера macOS. Если в цепочке ключей существует несколько версий одного и того же сертификата, средство возвращает эту ошибку.
Недопустимое указанное приложение ввода. Укажите допустимое приложение. Убедитесь, что ваше действительное .app приложение iOS скомпилировано как файл или..ipa
Указанное приложение ввода шифруется. Укажите допустимое незашифрованное приложение. App Wrapping Tool не поддерживает зашифрованные приложения. Предоставьте незашифрованное приложение.
Указанное вами приложение ввода не имеет формата PIE. Укажите допустимое приложение в формате PIE. Независимые от позиции приложения PIE могут загружаться по случайному адресу памяти при запуске. Эта функция может обеспечить преимущества в плане безопасности. Дополнительные сведения о преимуществах безопасности см. в документации Apple для разработчиков.
Указанное приложение ввода будет перенесено. Укажите допустимое неупакованное приложение. Вы не сможете обработать приложение, если средство уже обработало его. Если вы хотите снова обработать приложение, запустите средство, используя исходную версию приложения.
Указанное приложение ввода не подписано. Укажите действительное подписанное приложение. Для использования средства упаковки приложений необходимо, чтобы приложения были подписаны. Сведения о том, как подписать упакованное приложение, см. в документации для разработчиков.
Указанное приложение ввода должно иметь формат .ipa или .app. Средство упаковки приложений принимает .app.ipa только расширения. Убедитесь, что входной файл имеет допустимое расширение и скомпонован как файл или.ipa..app
Указанное вами приложение ввода является оболоченным и использует последнюю версию шаблона политики. App Wrapping Tool не переносит существующее упакованное приложение в последнюю версию шаблона политики.
ПРЕДУПРЕЖДЕНИЕ! Вы не указали хэш сертификата SHA1. Перед развертыванием убедитесь, что упакованное приложение подписано. Убедитесь, что вы указали допустимый хэш SHA1 после флага командной строки –c .

Сбор журналов для упакованных приложений с устройства

Выполните следующие действия, чтобы получить журналы для упакованных приложений во время устранения неполадок.

  1. Откройте приложение "Параметры iOS" на устройстве и выберите бизнес-приложение.
  2. Выберите Microsoft Intune.
  3. Переключите параметр консоли диагностики дисплеяв положение Вкл.
  4. Запустите бизнес-приложение.
  5. Щелкните ссылку "Начало работы".
  6. Теперь вы можете отправлять журналы напрямую в корпорацию Майкрософт или делиться ими с помощью другого приложения на устройстве.

Примечание.

Функция ведения журнала включена для приложений, включенных в оболочку Intune App Wrapping Tool версии 7.1.13 или более поздней.

Сбор журналов сбоев в системе

Ваше приложение может регистрировать полезные сведения на консоли устройства клиента с iOS. Эти сведения полезны, если у вас возникли проблемы с приложением и необходимо определить, связана ли проблема со средством App Wrapping Tool или с самим приложением. Чтобы получить эти сведения, выполните следующие действия.

  1. Воспроизведите проблему, запустив приложение.

  2. Соберите выходные данные консоли, следуя инструкциям Apple по отладке развернутых приложений iOS.

Упакованные приложения также предоставляют пользователям возможность отправлять журналы непосредственно с устройства по электронной почте после сбоя приложения. Пользователи могут отправлять журналы вам для проверки и пересылки в Майкрософт при необходимости.

Требования к сертификату, профилю подготовки и проверке подлинности

App Wrapping Tool для iOS имеет некоторые требования, которые должны быть соблюдены, чтобы гарантировать полную функциональность.

Требование Сведения
Профиль подготовки iOS Перед включением убедитесь, что профиль подготовки действителен. При обработке приложения iOS App Wrapping Tool не проверка, истек ли срок действия профиля подготовки. Если указан просроченный профиль подготовки, средство упаковки приложений включает его. Вы не видите проблему, пока приложение не удастся установить на устройстве с iOS.
Сертификат подписи iOS Прежде чем указывать сертификат, убедитесь в его действительности. Инструмент не проверка, истек ли срок действия сертификата при обработке приложений для iOS. Если указан хэш сертификата с истекшим сроком действия, средство обрабатывает и подписывает приложение, но его не удается установить на устройствах.

Убедитесь, что сертификат, предоставленный для подписи упакованного приложения, совпадает в профиле подготовки. Средство не проверяет, совпадает ли профиль подготовки с сертификатом, предоставленным для подписи упакованного приложения.
Проверка подлинности Для шифрования устройство должно иметь PIN-код. На устройствах, на которых развернуто упакованное приложение, при касании строки состояния на устройстве пользователю потребуется повторно войти с помощью рабочей или учебной учетной записи. Политикой по умолчанию в упакованном приложении является проверка подлинности при перезапуске. iOS обрабатывает любое внешнее уведомление (например, телефонный звонок), закрывая приложение и перезапуская его.

Настройка прав приложений

Перед оболочкой приложения вы можете предоставить приложению дополнительные разрешения и возможности, выходящие за рамки того, что обычно может делать приложение. Файл прав используется во время подписывания кода для указания специальных разрешений в приложении (например, доступа к общей цепочке ключей). Определенные службы приложений, называемые возможностями , включаются в Xcode во время разработки приложений. После включения возможности отражаются в файле прав. Дополнительные сведения об правах и возможностях см. в статье Добавление возможностей в библиотеку iOS для разработчиков. Полный список поддерживаемых возможностей см. в разделе "Поддерживаемые возможности".

Поддерживаемые возможности App Wrapping Tool для iOS

Возможность Описание Рекомендуемое руководство
Группы приложений Используйте группы приложений, чтобы предоставить нескольким приложениям доступ к общим контейнерам и обеспечить дополнительное взаимодействие между процессами между приложениями.

Чтобы включить группы приложений, откройте панель "Возможности " и выберите "ВКЛ" в разделе "Группы приложений". Можно добавить группы приложений или выбрать существующие.
Используйте обратную нотацию DNS при настройке групп приложений:

group.com.companyName.AppGroup
Фоновые режимы Включение фоновых режимов позволяет приложению iOS продолжить работу в фоновом режиме.
Защита данных Защита данных повышает уровень безопасности файлов, которые хранятся на диске в приложении для iOS. Защита данных использует встроенное оборудование шифрования, присутствующее на определенных устройствах, для хранения файлов в зашифрованном формате на диске. Ваше приложение должно быть подготовлено для использования защиты данных.
Покупка из приложения Покупка из приложения встраивает магазин непосредственно в ваше приложение, позволяя подключаться к магазину и безопасно обрабатывать платежи от пользователя. Вы можете использовать покупки из приложения, чтобы собирать плату за расширенные функции или за большее количество содержимого, доступного в вашем приложении.
Общий доступ к связке ключей Включение общего доступа к связке ключей позволяет вашему приложению делиться паролями в цепочке ключей с другими приложениями, разработанными вашей командой. При использовании общего доступа к цепочке ключей используйте обратную нотацию DNS:

com.companyName.KeychainGroup
Личный VPN Включите личный VPN, чтобы разрешить приложению создавать пользовательскую конфигурацию VPN системы и управлять ею с помощью платформы сетевых расширений.
Push-уведомления Служба push-уведомлений Apple (APNs) позволяет приложению, которое не работает на переднем плане, уведомить пользователя о том, что у него есть сведения для пользователя. Чтобы push-уведомления работали, необходимо использовать профиль подготовки для конкретного приложения.

Следуйте инструкциям в документации для разработчиков Apple.
Настройка беспроводных аксессуаров Включение беспроводной конфигурации аксессуаров добавляет в проект платформу внешних аксессуаров и позволяет приложению настраивать Made for iPhone (MFi) Wi-Fi аксессуаров.

Действия по включению прав

  1. Включите возможности в своем приложении:

    А. В Xcode перейдите к целевому объекту приложения и выберите «Возможности».

    Б. Включите соответствующие возможности. Подробные сведения о каждой возможности и способах определения правильных значений см. в статье Добавление возможностей в библиотеку разработчиков iOS.

    c. Запишите все идентификаторы, созданные в ходе процесса. Эти идентификаторы могут называться значениями AppIdentifierPrefix .

    d. Создайте и подпишите приложение, которое будет упаковано.

  2. Включите права в профиле подготовки:

    А. Войдите в Центр участников для разработчиков Apple.

    Б. Создайте профиль подготовки для приложения. Инструкции см. в статье «Как получить необходимые условия для Intune App Wrapping Tool для iOS».

    c. В профиле подготовки включите те же права, что и в приложении. Необходимо предоставить те же идентификаторы ( AppIdentifierPrefix значения), которые вы указали при разработке приложения.

    d. Завершите работу мастера подготовки профиля и скачайте файл.

  3. Убедитесь, что выполнены все необходимые условия, а затем оберните приложение.

Устранение распространенных ошибок с правами

Если в средстве App Wrapping Tool для iOS отображается ошибка предоставления прав, попробуйте выполнить следующие действия по устранению неполадок.

Проблема Причина Решение
Не удалось проанализировать права, созданные приложением ввода. App Wrapping Tool не может прочитать файл прав, извлеченный из приложения. Возможно, файл прав имеет неверный формат. Проверьте файл прав для приложения. Ниже описано, как это сделать. При проверке файла прав проверка на наличие неправильно сформированного синтаксиса. Файл должен быть в формате XML.
В профиле подготовки отсутствуют права (перечислены отсутствующие права). Переупакуйте приложение с профилем подготовки с этими правами. Существует несоответствие между правами, включенными в профиле подготовки, и возможностями, включенными в приложении. Это несоответствие также распространяется на идентификаторы, связанные с определенными возможностями (например, группами приложений и доступом к цепочке ключей). Как правило, можно создать новый профиль подготовки, который включает те же возможности, что и приложение. Если идентификаторы профиля и приложения не совпадают, средство App Wrapping Tool заменяет идентификаторы, если возможно. Если эта ошибка по-прежнему возникает после создания нового профиля подготовки, попробуйте удалить права из приложения с помощью параметра –e (см. раздел Использование параметра –e для удаления прав из раздела приложения).

Поиск существующих прав подписанного приложения

Чтобы просмотреть существующие права подписанного приложения и профиля подготовки, выполните следующие действия.

  1. Найдите IPA-файл и измените его расширение на .zip.

  2. Разверните файл .zip. В результате этого действия создается папка полезных данных, содержащая пакет .app.

  3. Используйте средство совместного проектирования, чтобы проверка права в пакете .app, где YourApp.app является фактическим именем пакета .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.

  • Среда, в которой средство App Wrapping Tool загружается из репозитория GitHub, должна быть защищена с помощью подписи IPsec или SMB.

  • Для обеспечения защиты от атак обрабатываемое приложение должно поступать из надежного источника.

  • Убедитесь, что выходная папка, указанная в средстве App Wrapping Tool, защищена, особенно если это удаленная папка.

  • Приложения для iOS, которые включают диалоговое окно отправки файла, могут позволить пользователям обходить ограничения, вырезать, копировать и вставлять приложения. Например, пользователь может использовать диалоговое окно отправки файла для отправки снимка экрана с данными приложения.

  • Если вы отслеживаете папку с документами на устройстве из приложения-оболочки, вы можете увидеть папку с именем .msftintuneapplauncher. Если вы измените или удалите этот файл, это может повлиять на правильную работу приложений с ограниченным доступом.

  • Регистрация пользовательских схем URL-адресов позволяет определенным URL-адресам перенаправлять в ваше приложение. iOS и iPadOS позволяют нескольким приложениям регистрировать одну и ту же пользовательскую схему URL-адресов, и ОС определяет, какое приложение вызывается. Обратитесь к документации Apple в разделе "Определение пользовательской схемы URL-адресов для приложения " для получения рекомендаций по предотвращению конфликтов пользовательской схемы URL-адресов и рекомендаций по безопасности при обработке искаженных URL-адресов.

Дополнительные ресурсы