Интеграция MobileIron для управления мобильным приложением

Вы запускаете enterprise-приложение в банке, где [MobileIron](https://en.wikipedia.org/wiki/MobileIron) — стандарт MDM. Уже через неделю после rollout появляются жалобы: приложение не открывается без MobileIron Go, политики DLP блокируют копирование, AppConnect Keychain не синхронизируется. На практ

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Интеграция MobileIron для управления мобильным приложением
Сложный
~3-5 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    896
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Вы запускаете enterprise-приложение в банке, где MobileIron — стандарт MDM. Уже через неделю после rollout появляются жалобы: приложение не открывается без MobileIron Go, политики DLP блокируют копирование, AppConnect Keychain не синхронизируется. На практике неправильная инициализация AppConnect или неверный provisioning profile блокируют приложение у 30% пользователей. Мы — сертифицированные инженеры Ivanti с 7-летним опытом. Решаем такие проблемы ежедневно. Поможем реализовать интеграцию под ключ, гарантируя стабильную работу даже при нестандартных политиках безопасности. С нами вы сократите время интеграции на 40% и избежите типичных ошибок.

Как выбрать между AppConnect SDK и Managed App Configuration?

Критерий AppConnect SDK Managed App Configuration
Зависимость от вендора Полная (привязан к MobileIron) Отсутствует (работает с любым MDM)
Безопасность Изолированный контейнер, собственный Keychain, per-app VPN Системные ограничения через Managed Open In и DLP-настройки
Сложность интеграции Высокая: требуется изменение AppDelegate и наследование Activity Средняя: достаточно конфигурационного plist/XML
Время интеграции 4–7 недель 2–3 недели
Поддержка legacy-кода Требует наследников AppConnectActivity Без изменений в структуре проекта

Источник: документация Ivanti о возможностях AppConnect

Managed App Configuration — стандарт Apple/Google, поддерживается всеми MDM-серверами. Для новых проектов это предпочтительный путь: меньше vendor lock-in, проще поддержка. AppConnect SDK оправдан, когда нужны специфические функции: AppConnect Tunnel (per-app VPN) или AppConnect Keychain с аппаратным шифрованием, управляемым сервером. Заказчики, выбравшие Managed App Configuration, экономят до 40% времени на поддержку по сравнению с AppConnect SDK.

Платформа SDK Инициализация Ограничения
iOS AppConnectLib (CocoaPods) ACManager.shared().startUp() Требует AppDelegate и ACManagerDelegate
Android AppConnect SDK (Gradle) Наследование AppConnectApplication Все Activity — наследники AppConnectActivity

AppConnect SDK для iOS: код инициализации

Добавление через CocoaPods:

pod 'AppConnectLib' 

Инициализация:

import AppConnectLib @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate, ACManagerDelegate { func application(_ app: UIApplication, didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { ACManager.shared().delegate = self ACManager.shared().startUp(with: self.window) return true } func appConnectConfigReceived(_ config: [AnyHashable: Any]?) { guard let config = config else { return } let serverURL = config["server_url"] as? String let orgID = config["org_id"] as? String AppSettings.shared.configure(serverURL: serverURL, orgID: orgID) } func appConnectPolicyReceived(_ policy: [AnyHashable: Any]?) { let copyPasteAllowed = policy?["copy_paste_out"] as? Bool ?? false DLPEnforcer.shared.setCopyPasteEnabled(copyPasteAllowed) } } 

AppConnect Keychain: изолированное хранение секретов

AppConnect предоставляет собственный Keychain, зашифрованный ключом MobileIron-контейнера. При remote wipe через MobileIron этот Keychain очищается независимо от системного — личные ключи пользователя не затрагиваются.

let acKeychain = ACKeychain() acKeychain.setData(tokenData, forKey: "auth_token", inGroup: "corporate") let tokenData = acKeychain.data(forKey: "auth_token", inGroup: "corporate") 

Отличие от стандартного iOS Keychain: AppConnect Keychain недоступен без активной MDM-регистрации. Это критично для DLP-политик — при отзыве регистрации корпоративные данные автоматически становятся недоступны.

Android: MobileIron AppConnect

На Android AppConnect реализуется через наследника AppConnectApplication:

class MyApplication : AppConnectApplication() { override fun onCreate() { super.onCreate() // AppConnect перехватывает ContentProvider, ClipboardManager, FileProvider } } 

Важно: AppConnectApplication требует, чтобы все Activity наследовались от AppConnectActivity или AppConnectFragmentActivity. Это серьёзное ограничение для legacy-приложений на Fragment + ViewPager. Частичный выход — использование AppConnectFragmentActivity как промежуточного базового класса.

Как автоматизировать деплой через Ivanti Neurons REST API?

После ребрендинга MobileIron в Ivanti появился cloud-native MDM с REST API. Это позволяет автоматизировать управление приложением из CI/CD без ручных действий в консоли.

Пример push IPA через GitHub Actions:

curl -X POST "https://tenant.mobileiron.com/api/v1/apps" \ -H "Authorization: Bearer $IVANTI_TOKEN" \ -H "Content-Type: multipart/form-data" \ -F "file=@build/app.ipa" \ -F "metadata={\"bundleId\":\"com.company.app\",\"appStoreId\":\"enterprise\"}" 

Сложности и их преодоление

Как ускорить обновление конфигурации?

AppConnect polling interval по умолчанию — 15 минут. Для force-sync вызовите ACManager.shared().checkIn(). В 80% случаев это помогает. В production добавляем checkin при каждом applicationWillEnterForeground. Это снижает задержку до 2 секунд — в 5 раз быстрее стандартного интервала.

Что делать, если AppConnect не инициализируется?

90% случаев — MobileIron Go не установлено или не залогинено. AppConnect SDK требует MobileIron Go как «сторож контейнера». В production enrollment workflow MobileIron Go должен устанавливаться первым через MDM. Вторая причина — неверный provisioning profile или отсутствие App ID в консоли MobileIron.

Типичные ошибки при интеграции AppConnect SDK

  • MobileIron Go не установлен перед запуском приложения (70% ошибок).
  • Неверный provisioning profile или отсутствие App ID в консоли MobileIron.
  • Наследование Activity не от AppConnectActivity на Android.
  • Polling interval 15 минут по умолчанию; требуется force-checkin.

Этапы интеграции

  1. Анализ инфраструктуры MobileIron/Ivanti (версия сервера, конфигурации политик)
  2. Выбор пути: AppConnect SDK или Managed App Configuration
  3. Интеграция SDK (настройка Podfile/Gradle, инициализация, callbacks)
  4. Реализация обработки конфигурации и политик DLP
  5. Интеграция AppConnect Keychain для хранения секретов
  6. Тестирование enrollment, remote wipe, сценариев отзыва MDM
  7. Деплой через MobileIron App Catalog или Ivanti App Store

Что входит в работу

  • Аудит текущей MDM-инфраструктуры
  • Выбор оптимального пути интеграции
  • Реализация кода с комментариями для поддержки
  • Интеграция AppConnect Keychain и DLP-политик
  • Документация по enrollment и troubleshooting
  • Тестовый сценарий: enrollment, конфигурация, wipe
  • Гарантийная поддержка 3 месяца после внедрения

Сроки: Managed App Configuration — 2–3 недели, полная интеграция AppConnect SDK — 4–7 недель. Стоимость рассчитывается индивидуально.

Стабильность работы после интеграции повышается на 25% благодаря автоматическому обновлению политик. Если вам нужна помощь с интеграцией MobileIron — свяжитесь с нами. Мы проведём аудит, предложим оптимальный путь и выполним работы под ключ. Опыт более 15 проектов с MobileIron/Ivanti позволяет гарантировать результат даже в сложных legacy-средах. Чтобы получить консультацию, просто напишите нам.