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

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

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

Чтобы скачать средство, см. статью Средство упаковки приложений Microsoft Intune для iOS на сайте GitHub.

Примечание.

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

Общие предварительные требования для средства упаковки приложений

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

  • Скачайте средство упаковки приложений Microsoft Intune для iOS из GitHub.

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

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

    • Входной файл приложения должен иметь расширение IPA или .app.

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

    • Входное приложение не может быть зашифровано.

    • Входное приложение не может иметь расширенные атрибуты файла.

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

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

Регистрация приложения с помощью Идентификатора Microsoft Entra

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

Примечание.

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

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

Предварительные требования для разработчиков Apple для средства упаковки приложений

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

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

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

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

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

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

Действия по созданию учетной записи Apple Developer Enterprise

  1. Перейдите на сайт Apple Developer Enterprise Program.

  2. В правом верхнем углу страницы щелкните Регистрация.

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

  4. Войдите с идентификатором Apple ID вашей организации. Если у вас его нет, нажмите кнопку Создать идентификатор Apple ID.

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

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

  7. После проверки нажмите кнопку Принять лицензию.

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

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

Действия по созданию сертификата подписи Apple

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

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

  3. Войдите с помощью идентификатора Apple ID организации.

  4. Щелкните Сертификаты, идентификаторы & Профили.

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

  5. Щелкните портал разработчика Apple и войдите в правый верхний угол, чтобы добавить сертификат iOS.

  6. Выберите создать внутренний и нерегламентированный сертификат в рабочей среде.

    Выберите In-House и нерегламентированный сертификат

    Примечание.

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

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

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

    Ознакомьтесь с инструкциями по созданию CSR

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. Щелкните Сертификаты, идентификаторы & Профили.

  3. Щелкните портал разработчика Apple и войдите в правый верхний угол, чтобы добавить профиль подготовки iOS.

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

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

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

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

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

Скачивание средства упаковки приложений

  1. Скачайте файлы для средства упаковки приложений из GitHub на компьютер macOS.

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

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

Запуск средства упаковки приложений

Важно!

Intune регулярно выпускает обновления для средства упаковки приложений Intune. Регулярно проверяйте средство упаковки приложений Intune для 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> [-b [<output app build string>]] [-v] [-e] [-x /<array of extension provisioning profile paths>]

Примечание.

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

Пример: В следующем примере команда запускает средство упаковки приложений в приложении MyApp.ipa. Профиль подготовки и хэш SHA-1 сертификата подписи указываются и используются для подписи упаковаемого приложения. Выходное приложение (MyApp_Wrapped.ipa) создается и сохраняется в папке Desktop.

./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"  -v true

Параметры командной строки

С помощью средства упаковки приложений можно использовать следующие параметры командной строки:

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

./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 true
Property Как использовать эту возможность
<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 Показывает подробные сведения об использовании доступных свойств командной строки для средства упаковки приложений.
-переменный ток <Client ID of the input app if the app uses the Microsoft Authentication Library> Это GUID в поле Идентификатор клиента из списка приложения в колонке Регистрация приложения.
-ар <Redirect/Reply URI of the input app if the app uses the Microsoft Authentication Library> Это URI перенаправления, настроенный в регистрации приложения. Как правило, это протокол URL-адреса приложения, к которому приложение Microsoft Authenticator будет возвращаться после проверки подлинности через посредника.
-Аа (Требуется для приложений с одним клиентом) <Authority URI of the input app> то есть https://login.microsoftonline.com/<tenantID>/
-v (Необязательно) Выводит подробные сообщения в консоль. Рекомендуется использовать этот флаг для отладки ошибок.
-e (Необязательно) Используйте этот флаг, чтобы средство упаковки приложений удалило отсутствующие права при обработке приложения. Дополнительные сведения см. в разделе Настройка прав приложений .
-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.

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

Простой способ запустить средство упаковки приложений — поместить все аргументы команды в 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

Запустите IntuneMAMPackager с plist в качестве единственного аргумента:

./IntuneMAMPackager –f Parameters.plist

После упаковки

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

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

Важно!

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

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

Как часто следует перезаписывать приложение iOS с помощью средства упаковки приложений Intune?

Ниже приведены основные сценарии, в которых потребуется перезапись приложений.

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

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

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

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

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

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

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

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

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

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

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

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

Примечание.

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

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

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

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

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

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

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

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

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

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

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

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

Поддерживаемые возможности средства упаковки приложений для iOS

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

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

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

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

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

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

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

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

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

    c. Обратите внимание на все идентификаторы, созданные во время процесса. Их также можно назвать значениями AppIdentifierPrefix .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. Используйте средство codesign, чтобы проверить права в пакете .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> -e

Безопасность и конфиденциальность средства упаковки приложений

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

  • Сертификат подписи, профиль подготовки и указанное бизнес-приложение должны находиться на том же компьютере macOS, который используется для запуска средства упаковки приложений. Если файлы находятся по пути UNC, убедитесь, что они доступны с компьютера macOS. Путь должен быть защищен с помощью подписи IPsec или SMB.

    Упаковаемое приложение, импортированное в Центр администрирования, должно находиться на том же компьютере, на который запущено средство. Если файл находится по UNC-пути, убедитесь, что он доступен на компьютере, на котором запущен Центр администрирования. Путь должен быть защищен с помощью подписи IPsec или SMB.

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

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

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

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

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

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

См. также