Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zestaw SDK aplikacji usługi Microsoft Intune dla systemu Android umożliwia dołączanie zasad ochrony aplikacji usługi Intune do natywnej aplikacji systemu Android Java/Kotlin. Te zasady są również nazywane zasadami MAM. Aplikacja zarządzana przez usługę Intune to aplikacja zintegrowana z zestawem SDK aplikacji usługi Intune. Gdy usługa Intune aktywnie zarządza aplikacją, administratorzy usługi Intune mogą łatwo wdrażać zasady ochrony aplikacji w aplikacji zarządzanej przez usługę Intune.
Uwaga
Ten przewodnik jest podzielony na kilka odrębnych etapów. Zacznij od zapoznania się z etapem 1: Planowanie integracji.
Etap 3: Wprowadzenie do zarządzania aplikacjami mobilnymi
Cele etapu
- Pobierz zestaw SDK aplikacji usługi Intune.
- Dowiedz się, jakie pliki są zawarte w zestawie SDK aplikacji usługi Intune.
- Odwołaj się do zestawu SDK aplikacji usługi Intune w aplikacji.
- Skonfiguruj wtyczkę kompilacji Gradle aplikacji usługi Intune lub skorzystaj z narzędzia do kompilacji wiersza polecenia.
- Upewnij się, że zestaw SDK aplikacji usługi Intune jest prawidłowo uwzględniony w kompilacji.
Tło
Teraz, gdy Twoja aplikacja pomyślnie zintegrowała bibliotekę MSAL, nadszedł czas, aby pobrać zestaw SDK aplikacji usługi Intune i uwzględnić go w procesie kompilacji aplikacji.
Duża część integracji zestawu SDK aplikacji usługi Intune zastępuje standardowe klasy systemu Android i wywołania metod wersjami usługi Intune tych klas i wywołań metod. Zestaw SDK zawiera narzędzia do kompilacji, które automatycznie wykonują większość tych zamiany za Ciebie. Jeśli chcesz dowiedzieć się więcej o tej logice zamiany, zobacz sekcję dotyczącą zastępowań klas i metodw dodatku.
Pobierz zestaw SDK aplikacji usługi Intune
Aby pobrać zestaw SDK, zobacz Pobieranie plików zestawu SDK.
Co zawiera zestaw SDK?
Zestaw SDK aplikacji usługi Intune składa się z następujących plików:
- Microsoft. Intune. MAM. SDK.aar: składniki zestawu SDK, z wyjątkiem plików JAR biblioteki pomocy technicznej.
- com.microsoft.intune.mam.build.jar: Wtyczka Gradle, która pomaga w integracji SDK.
- CHANGELOG.md: Zawiera rekord zmian wprowadzonych w każdej wersji zestawu SDK.
-
Microsoft. Intune. MAM. Zestaw SDK. DownlevelStubs.aar: to archiwum systemu Android (AAR) zawiera obiekty zastępcze dla klas systemu Android, które są obecne tylko na nowszych urządzeniach, ale są przywoływane przez metody w MAMActivity. Nowsze urządzenia ignorują te klasy zastępcze. To AAR jest konieczne tylko wtedy, gdy aplikacja wykonuje odbicie klas pochodzących z
MAMActivity, a większość aplikacji nie musi go uwzględniać. AAR zawiera reguły narzędzia ProGuard umożliwiające wykluczenie wszystkich jego klas.
Odwoływanie się do bibliotek aplikacji usługi Intune
Zestaw SDK aplikacji usługi Intune to standardowa biblioteka systemu Android bez zależności zewnętrznych. Microsoft. Intune. MAM. Plik SDK.aar zawiera interfejsy niezbędne do włączenia zasad ochrony aplikacji. Zawiera również kod niezbędny do współdziałania z aplikacją Microsoft Intune Portal firmy.
Android Studio
Microsoft. Intune. MAM. Plik SDK.aar musi być określony jako odwołanie do biblioteki systemu Android. Aby dodać tę zależność do swojej kompilacji, postępuj zgodnie z instrukcjami Dodaj AAR lub JAR jako zależność z dokumentacji systemu Android.
Visual Studio
The Intune App SDK for .NET MAUI - Android NuGet package must be added as a dependency.
Postępuj zgodnie z procesem instalowania pakietów i zarządzania nimi w programie Visual Studio przy użyciu Menedżera pakietów NuGet.
Witryna Microsoft.Intune. MAM. Plik SDK.aar jest powiązany z tworzeniem odwołań do języka C#, które są ograniczone do Microsoft.Intune.Mam przestrzeni nazw.
ProGuard
Twoja aplikacja może już używać ProGuard (lub dowolnego innego mechanizmu zmniejszania/zaciemniania) jako kroku kompilacji. Zestaw SDK aplikacji usługi Intune zawiera reguły konfiguracji narzędzia ProGuard, które muszą zostać uwzględnione w tym kroku kompilacji. W tym . Usługa AAR w kompilacji, jak opisano wcześniej, automatycznie integruje konfigurację zestawu SDK z krokiem ProGuard, dzięki czemu są zachowywane niezbędne pliki klas. Jeśli dodano . AAR, nie jest potrzebna żadna inna zmiana.
Biblioteka uwierzytelniania firmy Microsoft (MSAL) jest dostarczana z własną konfiguracją narzędzia ProGuard. Jeśli Twoja aplikacja integruje bibliotekę MSAL, zapoznaj się z dokumentacją biblioteki MSAL , aby uzyskać więcej informacji.
Narzędzia do kompilacji
Zestaw SDK udostępnia narzędzia do kompilacji (wtyczkę do kompilacji Gradle, cele dla kompilacji .NET i narzędzie wiersza polecenia), które automatycznie wykonują zastąpienie zarządzania aplikacjami mobilnymi. Narzędzia te przekształcają pliki klas generowane przez kompilację języka Java; Nie modyfikują oryginalnego kodu źródłowego. Wymagane jest użycie wtyczki Gradle, pakietu NuGet platformy .NET lub narzędzia wiersza polecenia.
Same narzędzia kompilacji nie wystarczą, aby w pełni zintegrować aplikację. Narzędzia te wykonują tylko zamianę klas i metod . Nie wykonują one żadnych bardziej złożonych integracji zestawu SDK, takich jak Multi-Identity, Rejestrowanie w celu ochrony aplikacji, Zasady ograniczania transferu danych między aplikacjami i urządzeniami lub lokalizacjami magazynu w chmurze lub konfiguracja MSAL. Musisz ukończyć te integracje, zanim Twoja aplikacja będzie w pełni włączona w usłudze Intune. Uważnie przejrzyj pozostałą część tej dokumentacji, aby znaleźć punkty integracji istotne dla Twojej aplikacji.
Debugowanie
Narzędzie kompilacji wykonuje zamianę po kompilacji. Te zamiany powodują zmianę niektórych nazw metod. W związku z tym może to mieć wpływ na debugowanie punktów przerwania ustawionych dla nazw metod. Mogą nie zatrzymać się zgodnie z oczekiwaniami. Nie ma to wpływu na punkty przerwania numerów wierszy.
Zarządzanie aplikacjami mobilnymi w stosie
Integracja zestawu SDK aplikacji usługi Intune opiera się w dużym stopniu na zastępstwie klas i metod. Ze względu na tę zależność widać mam w całym stosie ślady.
Jeśli Twoja aplikacja nie ma konta objętego zasadami ochrony aplikacji, cały ten kod zarządzania aplikacjami mobilnymi pozostaje w stanie uśpienia. Na przykład działa MAMActivity identycznie onMAMCreate i Activity działa identycznie z onCreate.
Za każdym razem, gdy widzisz mam w stosie, najpierw sprawdź:
- Czy konto jest objęte zasadami ochrony aplikacji?
- Czy usługa Intune — Portal firmy jest zainstalowana?
Jeśli odpowiedź na oba pytania nie brzmi "tak", kod zarządzania aplikacjami mobilnymi działa jak proste przekazanie.
Jakiego narzędzia potrzebuję?
Jeśli kompilujesz aplikację za pomocą narzędzia Gradle, zobacz Integrowanie z wtyczką kompilacji narzędzia Gradle
Jeśli kompilujesz aplikację przy użyciu . NET MAUI, zobacz Integrowanie z obiektami docelowymi .NET MAUI.
Jeśli kompilujesz aplikację przy użyciu żadnego z poprzednich narzędzi, zobacz Integrowanie z narzędziem wiersza polecenia.
Integracja z wtyczką Gradle Build
Wtyczka Intune App SDK jest dystrybuowana jako część zestawu SDK jako GradlePlugin/com.microsoft.intune.mam.build.jar.
Aby wtyczka została rozpoznana przez Gradle, musi zostać dodana do buildscript ścieżki klasy.
Wtyczka zależy od Javassista, którego również należy dodać. Aby uzyskać więcej informacji na temat zależności Javassist, zobacz Dependencies.
Aby dodać je do ścieżki klasy, dodaj następujący element w katalogu głównym build.gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.javassist:javassist:3.29.2-GA"
classpath files("$PATH_TO_MAM_SDK/GradlePlugin/com.microsoft.intune.mam.build.jar")
}
}
Następnie, aby zastosować wtyczkę, dodaj następujące elementy do build.gradle pliku dla modułów aplikacji i funkcji dynamicznych:
apply plugin: 'com.microsoft.intune.mam'
Domyślnie wtyczka działa na project zależnościach i bibliotekach zewnętrznych.
Nie ma to wpływu na kompilację testową.
Uwaga
Począwszy od zestawu SDK aplikacji usługi Intune 8.0, nie można już selektywnie przetwarzać bibliotek. Przetwarzane są wszystkie biblioteki.
Zależności
Wtyczka Gradle ma zależność od Javassist, która musi być udostępniona do rozwiązywania zależności Gradle. Javassist jest używany wyłącznie w czasie kompilacji podczas uruchamiania wtyczki i do aplikacji nie jest dodawany żaden kod Javassist.
| Zestaw SDK zarządzania aplikacjami mobilnymi | Wersja Javassist |
|---|---|
| ≥ 10.0.0 | 3.29.2-GA |
| ≥ 7.0.0 | 3.27.0 — GA |
| < 7.0.0 | 3.22.0-GA |
Uwaga
Wersje Javassist mogą nie być zgodne z poprzednimi wersjami. Ogólnie rzecz biorąc, należy użyć dokładnej wersji oczekiwanej przez zestaw SDK aplikacji usługi Intune.
Macierz zgodności
Wtyczka kompilacji zestawu SDK zarządzania aplikacjami mobilnymi jest zgodna z wymaganiami dotyczącymi kompilacji systemu Android i tabelami zgodności. Wersje, których tu nie wymieniono, mogą, ale nie muszą działać.
| Zestaw SDK zarządzania aplikacjami mobilnymi | Wersja systemu Android | Narzędzie Gradle | Wtyczka Android Gradle | Wersja Kotlina | Wersja Java |
|---|---|---|---|---|---|
| 10.0.0 | 14 | 8.2 | 8.2.2 | 1.9.25 | 17 |
| 11.0.0 | 15 | 8.7 | 8.6.1 | 2.0.21 | 17 |
| 12.0.0 | 16 | 8.11.1 | 8.9.1 | 2.1.21 | 17 |
Wykluczenia
Można podać więcej konfiguracji, aby wykluczyć określone składniki w aplikacji z modyfikacji. Wykluczenia są przydatne głównie w przypadku składników, które nie są istotne dla zarządzania aplikacjami mobilnymi (czyli nie obsługują ani nie wyświetlają danych firmowych).
Wykluczenia można skonfigurować dla różnych zakresów:
-
excludeProjectsumożliwia wykluczenie listy projektów Gradle. Te wykluczenia są przydatne w przypadku projektów, które nie współpracują z bibliotekami systemu Android lub systemowymi interfejsami API. Są one również przydatne w projektach, które nie obsługują danych firmowych. Dobrym kandydatem może być na przykład projekt zawierający wyłącznie kod natywny do wykonywania niskopoziomowych operacji sieciowych. Jeśli projekt ogólnie łączy się z bibliotekami systemu Android lub systemowymi interfejsami API, unikaj tych wykluczeń. -
excludeClassesUmożliwia wykluczenie listy zajęć. Te wykluczenia są przydatne w przypadku klas, które nie obsługują ani nie prezentują danych firmowych. Dobrymi kandydatami są na przykład ekrany powitalne i elementy wdrażająceActivity. Nie można wykluczyć klasy, jeśli przetwarzana jest którakolwiek z jej nadklas. -
excludeVariantsUmożliwia wykluczenie wariantów projektu. Te wykluczenia mogą odnosić się do pełnej nazwy wariantu lub pojedynczego smaku. Są one szczególnie przydatne, jeśli chcesz utworzyć wersję aplikacji inną niż MAM. Jeśli na przykład aplikacja ma typydebugkompilacji ireleasesmaki {noMAM,MAM} i {mock,production}, możesz określić:-
noMAMaby wykluczyć wszystkie warianty o smaku noMAM lub -
noMAMMockDebugaby wykluczyć tylko ten dokładny wariant.
-
Uwaga
Wyłączeń nie należy lekceważyć. Nieprawidłowe zastosowanie wykluczeń może spowodować poważne wycieki danych w aplikacji. Zawsze sprawdzaj wpływ każdego zastosowanego wykluczenia.
Przykład: fragment build.gradle z wykluczeniami
apply plugin: 'com.microsoft.intune.mam'
dependencies {
implementation project(':product:FooLib')
implementation project(':product:foo-project')
implementation "com.microsoft.bar:baz:1.0.0"
// Include the MAM SDK
implementation files("$PATH_TO_MAM_SDK/Microsoft.Intune.MAM.SDK.aar")
}
intunemam {
excludeProjects = [':product:FooLib']
excludeClasses = ['com.contoso.SplashActivity']
excludeVariants = ['noMAM']
}
Miałoby to następujące skutki:
-
:product:FooLibnie jest przepisywany, ponieważ jest zawarty wexcludeProjects -
:product:foo-projectjest przepisywany, z wyjątkiemcom.contoso.SplashActivity, który jest pomijany, ponieważ jest wexcludeClasses -
com.microsoft.bar:baz.1.0.0jest przepisywany, ponieważ wszystkie biblioteki zewnętrzne są dołączane do przetwarzania. - Warianty ze smakiem
noMAMnie są przepisywane.
Raportowanie
Wtyczka kompilacji może wygenerować raport html o wprowadzonych zmianach.
Aby zażądać wygenerowania tego raportu, określ report = true w intunemam bloku konfiguracyjnym.
W przypadku wygenerowania raport jest zapisywany outputs/logs w katalogu kompilacji.
intunemam {
report = true
}
Weryfikacja
Wtyczka kompilacji może uruchomić więcej weryfikacji w poszukiwaniu możliwych błędów w klasach przetwarzania. Te testy pomagają zabezpieczyć się przed potencjalnymi awariami środowiska uruchomieniowego wywołanymi przez wtyczkę.
Aby zażądać, aby weryfikacja została przeprowadzona w Twojej kompilacji, określ verify = true w intunemam bloku konfiguracji.
Może to wydłużyć czas wykonywania zadania wtyczki o kilka sekund.
intunemam {
verify = true
}
Ogólnie rzecz biorąc, błąd weryfikacji oznacza błąd we wtyczce kompilacji. Aby uzyskać pomoc w przypadku awarii, eskaluj problem do pomocy technicznej firmy Microsoft. Jeśli nie masz umowy o świadczenie pomocy technicznej z firmą Microsoft, otwórz zgłoszenie w usłudze GitHub.
Kompilacje przyrostowe
Aby włączyć obsługę przyrostowego kompilowania, określ incremental = true w intunemam bloku konfiguracji.
Ta funkcja zwiększa wydajność kompilacji, przetwarzając tylko zmieniające się pliki wejściowe.
Domyślna konfiguracja to incrementalfalse.
intunemam {
incremental = true
}
Konfiguracja modułu funkcji dynamicznych
Dynamiczne moduły funkcyjne są konstruowane niezależnie od projektu aplikacji. W związku z tym moduły funkcji dynamicznych muszą również stosować wtyczkę kompilacji Gradle.
Wtyczka Gradle ma ograniczenia techniczne w interfejsach API, z których korzysta. Ze względu na te ograniczenia klasy aplikacji muszą być ponownie przetwarzane podczas przekształcania klas modułów funkcji dynamicznych. Aby upewnić się, że ponowne przetwarzanie danych będzie możliwe, skonfiguruj wszystkie moduły funkcji z takimi samymi ustawieniami jak aplikacja.
Jeśli na przykład aplikacja wyklucza klasę, moduł funkcji dynamicznych powinien również wykluczyć tę klasę.
Integracja z obiektami docelowymi programu .NET MAUI
Obiekty docelowe zestawu SDK aplikacji usługi Intune są dystrybuowane w ramach zestawu SDK jako Microsoft.Intune. Maui.Essentials.android.targets.
Obiekty docelowe są automatycznie importowane do aplikacji w czasie kompilacji po dodaniu pakietu NuGet usługi Intune App SDK dla platformy .NET MAUI — Android.
Integracja z narzędziem do kompilacji wiersza polecenia
Narzędzie kompilacji wiersza polecenia jest dostępne w folderze BuildTool dropu zestawu SDK.
Pełni tę samą funkcję, co wtyczka Gradle i obiekty docelowe platformy .NET opisane powyżej. Jednak narzędzie wiersza polecenia można zintegrować z niestandardowymi systemami kompilacji.
Ponieważ narzędzie jest bardziej ogólne, jego wywołanie jest bardziej złożone. Użyj wtyczki Gradle lub obiektów docelowych platformy .NET, gdy tylko jest to możliwe.
Korzystanie z narzędzia Command-Line
Narzędzie wiersza polecenia można wywołać za pomocą dostarczonych skryptów pomocniczych znajdujących się BuildTool\bin w katalogu.
Narzędzie oczekuje następujących parametrów.
| Parametr | Wymagany | Opis |
|---|---|---|
--input |
Tak | Rozdzielana średnikami lista plików JAR i katalogów plików klas do modyfikacji. Dołącz wszystkie pliki JAR i katalogi, które zamierzasz zapisać ponownie. |
--output |
Tak | Rozdzielana średnikami lista plików JAR i katalogów do przechowywania zmodyfikowanych klas. Podaj jeden wpis wyjściowy na każdy wpis wejściowy, wymieniony w tej samej kolejności. |
--classpath |
Tak | Ścieżka klasy kompilacji. Może to zawierać zarówno pliki JAR, jak i katalogi klas. |
--processed |
Nie | Rozdzielana średnikami lista plików JAR i katalogów zawierających klasy, które zostały już przetworzone przez poprzednie wywołanie narzędzia kompilacji. |
--excludeClasses |
Nie | Lista rozdzielana średnikami zawierająca nazwy klas, które powinny zostać wykluczone z przepisywania. |
--report |
Nie | Katalog do zapisu raportu HTML o zmodyfikowanych klasach. Jeśli nie zostanie określony, żaden raport nie zostanie napisany. |
Opcjonalna --processed opcja służy do włączania kompilacji przyrostowych.
Wymieniony tutaj zestaw plików/katalogów powinien być rozłączny z listami wejściowymi i classpath.
Porada
W systemach uniksopodobnych średnik jest separatorem poleceń. Aby uniknąć dzielenia poleceń przez powłokę, upewnij się, że każdy średnik jest poprzedzony znakiem '' lub ujęty w cudzysłów.
Przykład wywołania narzędzia Command-Line
> BuildTool\bin\BuildTool.bat --input build\product-foo-project;libs\bar.jar --output mam-build\product-foo-project;mam-build\libs\bar.jar --classpath build\zap.jar;libs\Microsoft.Intune.MAM.SDK\classes.jar;%ANDROID_SDK_ROOT%\platforms\android-27\android.jar --excludeClasses com.contoso.SplashActivity
Miałoby to następujące skutki:
- Katalog
product-foo-projectjest przepisywany wmam-build\product-foo-project -
bar.jarjest przepisany namam-build\libs\bar.jar -
zap.jarnie jest przepisywany, ponieważ jest wymieniony tylko w--classpath - Zajęcia
com.contoso.SplashActivitynie są przepisywane, nawet jeśli są w--input
Ostrzeżenie
Narzędzie do kompilacji obecnie nie obsługuje plików AAR.
Jeśli twój system kompilacji nie wyodrębnia już classes.jar podczas pracy z plikami aar, wyodrębnij go przed wywołaniem narzędzia kompilacji.
Ustawianie aplikacji MAMApplication
Jeśli aplikacja tworzy podklasę android.app.Application, to wtyczka kompilacji lub narzędzie wiersza polecenia przekształca klasę aplikacji.
Jeśli Twoja aplikacja nie ma podklasy android.app.Application, musisz ustawić "com.microsoft.intune.mam.client.app.MAMApplication" jako "android:name" atrybut w tagu <application> AndroidManifest.xml.
Zalecane najlepsze rozwiązania dotyczące systemu Android
- Używaj najnowszych narzędzi do tworzenia Android SDK.
- Usuń wszystkie niepotrzebne i nieużywane biblioteki (na przykład android.support.v4).
Po wykonaniu automatycznych zamiany zestaw Intune App SDK nadal zachowuje umowę dostarczoną przez interfejs API systemu Android. Jednak warunki awarii mogą być wyzwalane częściej w wyniku wymuszania zasad. Te najlepsze rozwiązania dotyczące systemu Android zmniejszają prawdopodobieństwo niepowodzenia:
- Funkcje zestawu SDK systemu Android, które mogą zostać zwrócone
null, mają teraz większe prawdopodobieństwo zwrócenianullplików . Upewnij się, żenulltesty chronią te wywołania funkcji. - Funkcje, które można sprawdzić, takie jak
clipboardManager.getPrimaryClipDescription(), muszą być sprawdzane za pośrednictwem interfejsów API zastępowania zarządzania aplikacjami mobilnymi, takich jakMAMClipboard.getPrimaryClipDescription(clipboardManager). - Wszystkie funkcje pochodne muszą wywoływać ich wersje nadklasy.
- Unikaj używania interfejsu API w sposób niejednoznaczny. Na przykład używanie
Activity.startActivityForResultbez sprawdzeniarequestCodepowoduje dziwne zachowanie.
Usługi
Wymuszanie zasad może mieć wpływ na interakcje z usługą systemu Android.
Metody, które ustanawiają powiązane połączenie usługi, takie jak Context.bindService mogą zakończyć się niepowodzeniem z powodu podstawowego wymuszania zasad w Service.onBind i mogą skutkować lub ServiceConnection.onNullBindingServiceConnection.onServiceDisconnected.
Interakcja z ustanowioną usługą powiązaną może spowodować SecurityException wymuszenie zasad w Binder.onTransact.
Zachęcamy klientów usług powiązanych do sprawdzania, czy nie występują wyjątki zgłaszane przez usługę. Nie pozwól, aby wyjątki były propagowane w pozostałej części aplikacji klienckiej.
Kryteria zakończenia
Po skonfigurowaniu wtyczki kompilacji lub zintegrowaniu narzędzia wiersza polecenia z procesem kompilacji sprawdź, czy działa pomyślnie:
- Upewnij się, że kompilacja została pomyślnie skompilowana i skompilowana.
- Skonfiguruj
reportflagę, a następnie otwórz dokument raportu i potwierdź, że następuje zamiana klas i metod:- Jeśli używasz wtyczki, wykonaj kroki opisane w sekcji Raportowanie.
- Jeśli używasz narzędzia wiersza polecenia, dołącz flagę
--report.
- Jeśli używasz wtyczki, skonfiguruj flagę
verifyi upewnij się, że nie generuje błędów. Zobacz Weryfikacja. - Sprawdź dokładnie wszystkie wykluczenia (
excludeProjects,excludeClasses, orazexcludeVariants) w pliku build.gradle. Upewnij się, że każde wykluczenie jest konieczne i nie dotyczy danych chronionych. W przeszłości wiele błędów związanych z wyciekiem danych występowało z powodu zbyt agresywnych wykluczeń. -
Bez zainstalowanej aplikacji Intune — Portal firmy uruchom skompilowaną aplikację. Zaloguj się jako użytkownik usługi Microsoft Entra, który nie jest objęty zasadami ochrony aplikacji. Potwierdź, że aplikacja działa zgodnie z oczekiwaniami.
- Wyloguj się i powtórz ten test z zainstalowaną usługą Intune — Portal firmy.
Często zadawane pytania
Moja aplikacja wcześniej integrowała zestaw SDK bez wtyczki kompilacji; jak mogę używać wtyczki build?
Starsze wersje zestawu SDK aplikacji usługi Intune nie zawierały żadnego automatycznego sposobu zastępowania klas i metod. Programiści musieli wykonać te zamiany ręcznie w kodzie źródłowym. Jeśli Twoja aplikacja jest zintegrowana w ten sposób, można bezpiecznie zastosować wtyczkę do kompilacji lub narzędzie do kompilacji wiersza polecenia. Nie potrzebujesz żadnych modyfikacji kodu źródłowego. Projekt musi nadal zawierać zestaw SDK zarządzania aplikacjami mobilnymi jako zależność.
Następne kroki
Po spełnieniu wszystkich kryteriów wyjścia przejdź do etapu 4: MAM Integration Essentials.