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

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

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

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

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

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

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

Этапы разработки

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

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

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

MobileIron — EMM-платформа, с 2020 года входящая в состав Ivanti под названием Ivanti Mobile@Work и Ivanti Neurons for MDM. Встречается в enterprise-организациях с длинной историей MDM-развёртывания: банки, государственные структуры, крупный retail. Если заказчик уже использует MobileIron/Ivanti — интеграция приложения строится на MobileIron AppConnect SDK или через стандартный Managed App Configuration протокол Apple/Android Enterprise.

Два пути интеграции: AppConnect SDK vs Managed Config

Путь 1: MobileIron AppConnect SDK. Проприетарный SDK, который создаёт изолированный контейнер вокруг приложения. Данные приложения шифруются независимым ключом, управляемым MobileIron сервером. Контейнер открывается только при наличии активной MobileIron-регистрации.

Путь 2: Managed App Configuration (Apple) / Android Managed Configurations. Стандартный механизм без проприетарного SDK. MobileIron как MDM-сервер поддерживает оба протокола. Приложение не зависит от вендора EMM — работает и с Intune, и с Workspace ONE, и с MobileIron.

Для новых проектов предпочитаем Managed App Configuration — меньше vendor lock-in. AppConnect SDK оправдан, если нужны специфические функции: AppConnect Tunnel (per-app VPN), шифрование AppConnect Keychain, или инфраструктура уже на MobileIron и переход не планируется.

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
    }

    // Получаем конфигурацию от MobileIron сервера
    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)
    }

    // Политика DLP изменилась
    func appConnectPolicyReceived(_ policy: [AnyHashable: Any]?) {
        let copyPasteAllowed = policy?["copy_paste_out"] as? Bool ?? false
        DLPEnforcer.shared.setCopyPasteEnabled(copyPasteAllowed)
    }
}

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

AppConnect предоставляет собственный Keychain, зашифрованный ключом MobileIron-контейнера. Если MDM-регистрация отзывается — ключи недоступны без повторной авторизации.

// Сохранение через AppConnect Keychain
let acKeychain = ACKeychain()
acKeychain.setData(tokenData, forKey: "auth_token", inGroup: "corporate")

// Чтение
let tokenData = acKeychain.data(forKey: "auth_token", inGroup: "corporate")

Отличие от стандартного iOS Keychain: при remote wipe через MobileIron AppConnect Keychain очищается независимо от системного Keychain. Личные ключи пользователя не затрагиваются.

Android: MobileIron Android AppConnect

На Android AppConnect работает аналогично, но реализован через AppConnect wrapper вокруг Application:

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

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

Ivanti Neurons for MDM: современный API

После ребрендинга в Ivanti появился новый cloud-native MDM с REST API для управления: GET /api/v1/devices, POST /api/v1/policies, DELETE /api/v1/apps/{appId}. Это позволяет автоматизировать управление приложением из CI/CD без ручных действий в UI консоли.

Пример: автоматический push нового IPA при релизе через GitHub Actions:

# Ivanti Neurons REST API
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 не инициализируется при первом запуске. Причина: MobileIron Go (клиентское приложение) не установлено или не залогинено. AppConnect SDK требует MobileIron Go как «сторожа контейнера». В production enrollment workflow — MobileIron Go устанавливается первым через MDM.

Конфигурация не приходит после смены политики на сервере. AppConnect polling interval по умолчанию — 15 минут. Для force-sync: ACManager.shared().checkIn(). В production добавляем checkin при каждом applicationWillEnterForeground.

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

Анализ инфраструктуры MobileIron/Ivanti → выбор AppConnect SDK или Managed App Configuration → интеграция SDK → реализация config/policy callbacks → AppConnect Keychain → тестирование enrollment и wipe → деплой через MobileIron App Catalog.

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