Уявіть: у вас legacy-застосунок на Xamarin.Forms, який потрібно захистити політиками Intune. Вихідний код — тільки у вендора, який давно не відповідає. App Wrapping — єдиний вихід. Ми робимо це за 1–2 тижні. За 7 років ми провели понад 50 проектів з wrapping для iOS та Android, включаючи вендорські продукти. Правильний вибір інструменту та розуміння обмежень — ключ до успіху. Гарантуємо стабільну роботу: 90% проектів проходять тестування політик з першого разу.
Згідно з документацією Microsoft Intune App Wrapping Tool, інструмент підтримує iOS 13+ та Android API 21+. Але не кожен застосунок вдається обернути без проблем. Найчастіше складності виникають через кастомні фреймворки, агресивний ProGuard або WKWebView.
Чому App Wrapping підходить не для всіх застосунків?
Wrapping не магія. Ряд функцій SDK при wrapping недоступний: multi-identity, кастомний wipe handler, Intune-targeted conditional launch checks. Якщо застосунок використовує WKWebView для основного UI — JavaScript-контент не перехоплюється MAM. Потрібна або SDK-інтеграція, або ручне доопрацювання через WKUserContentController. На Android wrapping працює через bytecode instrumentation: інструмент переписує Dalvik/ART байткод, замінюючи виклики системних класів на MAM-обгортки. Це менш стабільно, ніж iOS-підхід, і може ламатися при агресивних ProGuard/R8-оптимізаціях. У 80% випадків проблеми пов'язані з кастомними правилами ProGuard.
Рішення проблеми з ProGuard
Якщо після wrapping застосунок падає, вимкніть агресивну обфускацію для MAM-класів. Додайте в proguard-rules.pro: ``` -keep class com.microsoft.intune.** { *; } -keep class android.content.ClipboardManager { *; } ``` Або використовуйте конфігурацію `-dontobfuscate` на час збірки.Як автоматизувати wrapping в CI/CD?
При кожному новому релізі процедуру wrapping потрібно повторювати. Ручний процес займає час і загрожує помилками. Ми інтегруємо wrapping в пайплайн: Jenkins, GitHub Actions, GitLab CI. Для iOS використовуємо IntuneMAMPackager в macOS-агенті:
./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager \ -i /path/to/app.ipa \ -o /path/to/wrapped-app.ipa \ -p /path/to/provisioning-profile.mobileprovision \ -c "Apple Distribution: Company Name (TEAMID)" \ -e /path/to/entitlements.plist \ --use-secondary-ipa-keychain-group true Для Android — IntuneMAMPackager.jar:
java -jar IntuneMAMPackager.jar \ -i app-release.apk \ -o app-wrapped.apk \ -c RSA_KEY_ALIAS \ -ks keystore.jks \ -ksPass keystorePassword \ -alias keyAlias \ -aliasPass aliasPassword Після автоматизації кожен білд проходить wrapping за 5–10 хвилин.
Що входить в роботу?
| Етап | Тривалість | Результат |
|---|---|---|
| Аналіз сумісності | 1–2 дні | Висновок про можливість wrapping |
| Налаштування Intune Portal | 1–2 дні | Застосунок пов'язано з AAD та політиками |
| Wrapping + перепідпис | 1–2 дні | Захищений IPA/APK |
| Тестування політик | 1–3 дні | Протокол тестування, скріншоти |
| Інтеграція в CI/CD | 2–4 тижні | Автоматичний пайплайн wrapping |
| Документація та навчання | 1–2 дні | Інструкція для адміністратора |
Етапи проекту та терміни
- Аналіз вихідного застосунку: сумісність з wrapping, архітектура, використовувані фреймворки.
- Налаштування Intune Portal: створення застосунку в Microsoft Endpoint Manager, налаштування App Protection Policy.
- Wrapping та перепідпис (iOS: provisioning profile + сертифікат; Android: keystore).
- Тестування: перевірка всіх політик (copy-paste, wipe, PIN), регрес-тест функціональності.
- Інтеграція в CI/CD для автоматичного wrapping при кожному білді.
- Rollout: поширення через Intune Company Portal або MDM-рішення.
Орієнтовні терміни: одноразовий wrapping — 1–2 тижні. Повний pipeline з CI/CD — 3–5 тижнів. Вартість одноразового wrapping — від 150 000 до 300 000 ₽ залежно від складності застосунку. Інтеграція wrapping в CI/CD — від 100 000 до 200 000 ₽. Зв'яжіться з нами — наші інженери безкоштовно перевірять сумісність вашого застосунку.
Wrapping vs MAM SDK: детальне порівняння
Вибір між wrapping і SDK-інтеграцією залежить від доступу до вихідного коду та необхідних політик безпеки.
| Критерій | App Wrapping | MAM SDK |
|---|---|---|
| Доступ до вихідного коду | Не потрібен | Обов'язковий |
| Multi-identity | Ні | Так |
| Кастомний wipe-handler | Ні | Так |
| Час впровадження | 1–2 тижні | 2–6 тижнів |
| Вартість | від 150 000 ₽ | від 350 000 ₽ |
Wrapping — правильний вибір для сторонніх та legacy-застосунків без вихідного коду. MAM SDK обирають, коли потрібні розширені політики: розділення корпоративних та особистих даних в одному застосунку, кастомний wipe-handler. Гібридний підхід — wrapping базової версії плюс часткова SDK-інтеграція для критичних компонентів — наш частий вибір для середніх підприємств з бюджетом від 250 000 до 400 000 ₽.
Замовте wrapping корпоративного застосунку — отримайте захищену версію під ключ за 2–3 тижні.







