Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zestaw SDK aplikacji Microsoft Intune dla systemu Android umożliwia włączenie Intune zasad ochrony aplikacji do natywnej aplikacji Java/Kotlin dla systemu Android. Te zasady są również nazywane zasadami zarządzania aplikacjami mobilnymi. Aplikacja zarządzana Intune jest zintegrowana z zestawem Intune App SDK. Gdy Intune aktywnie zarządza aplikacją, administratorzy Intune mogą łatwo wdrażać zasady ochrony aplikacji w aplikacji zarządzanej Intune.
Uwaga
Ten przewodnik jest podzielony na kilka odrębnych etapów. Zacznij od przejrzenia etapu 1. Planowanie integracji.
Etap 3. Wprowadzenie z aplikacjami mobilnymi
Cele etapów
- Pobierz zestaw SDK aplikacji Intune.
- Dowiedz się, jakie pliki znajdują się w zestawie Intune App SDK.
- Odwołaj się do zestawu SDK aplikacji Intune w aplikacji.
- Skonfiguruj wtyczkę kompilacji Intune App Gradle Lub użyj narzędzia kompilacji wiersza polecenia.
- Upewnij się, że zestaw SDK aplikacji Intune jest prawidłowo uwzględniony w kompilacji.
Tło
Teraz, gdy aplikacja pomyślnie zintegrowała msal, nadszedł czas, aby pobrać zestaw Intune App SDK i uwzględnić go w procesie kompilacji aplikacji.
Duża część integracji zestawu Intune App SDK zastępuje standardowe klasy i wywołania metod systemu Android Intune wersji tych klas i wywołań metod. Zestaw SDK zawiera narzędzia kompilacji, które automatycznie tworzą większość tych zamienników. Jeśli chcesz dowiedzieć się więcej na temat tej logiki zastępczej, zobacz sekcję zamiany klas i metod w dodatku.
Pobieranie zestawu SDK aplikacji Intune
Aby pobrać zestaw SDK, zobacz Pobieranie plików zestawu SDK.
Co jest w zestawie SDK?
Zestaw Intune App SDK 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 ułatwia integrację zestawu SDK.
- CHANGELOG.md: zawiera rekord zmian wprowadzonych w każdej wersji zestawu SDK.
-
Microsoft. Intune. MAM. Zestaw SDK. DownlevelStubs.aar: ten Archiwum systemu Android (AAR) zawiera wycinki dla klas systemu Android, które są obecne tylko na nowszych urządzeniach, ale są przywoływane przez metody w funkcji MAMActivity. Nowsze urządzenia ignorują te klasy wycinka. Ta funkcja AAR jest niezbędna tylko wtedy, gdy aplikacja wykonuje refleksję nad klasami pochodzącymi z
MAMActivityprogramu , a większość aplikacji nie musi jej uwzględniać. AAR zawiera reguły ProGuard, aby wykluczyć wszystkie jego klasy.
Odwoływanie się do bibliotek aplikacji Intune
Zestaw Intune App SDK 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 kompilacji, postępuj zgodnie z instrukcjami Dodawanie biblioteki AAR lub JAR jako zależności z dokumentacji systemu Android.
Visual Studio
Zestaw SDK aplikacji Intune dla pakietu NuGet dla platformy .NET MAUI — Android musi zostać dodany jako zależność.
Postępuj zgodnie z procesem instalowania pakietów i zarządzania nimi w programie Visual Studio przy użyciu Menedżera pakietów NuGet.
Microsoft.Intune. MAM. Plik SDK.aar jest powiązany z tworzeniem odwołań w języku Microsoft.Intune.Mam C#, które są ograniczone do przestrzeni nazw.
ProGuard
Aplikacja może już używać narzędzia ProGuard (lub innego mechanizmu zmniejszania/zaciemniania) jako kroku kompilacji. Zestaw SDK aplikacji Intune ma reguły konfiguracji ProGuard, które muszą zostać uwzględnione w tym kroku kompilacji. Łącznie z elementem . Biblioteka AAR w kompilacji, zgodnie z wcześniejszym opisem, automatycznie integruje konfigurację zestawu SDK z krokiem ProGuard, dzięki czemu niezbędne pliki klas są przechowywane. Jeśli dołączono element . AAR, nie jest wymagana żadna inna zmiana.
Biblioteka Microsoft Authentication Library (MSAL) jest dostarczana z własną konfiguracją ProGuard. Jeśli aplikacja integruje bibliotekę MSAL, zapoznaj się z dokumentacją msal , aby uzyskać więcej szczegółów.
Tworzenie narzędzi
Zestaw SDK udostępnia narzędzia kompilacji (wtyczkę dla kompilacji Gradle, obiekty docelowe dla kompilacji platformy .NET i narzędzie wiersza polecenia), które automatycznie wykonują zamiany funkcji MAM. Te narzędzia przekształcają pliki klas wygenerowane przez kompilację Języka Java; nie modyfikują oryginalnego kodu źródłowego. Musisz użyć wtyczki Gradle, pakietu NuGet platformy .NET lub narzędzia wiersza polecenia.
Samo narzędzie kompilacji nie wystarcza do pełnej integracji aplikacji. Narzędzia wykonują tylko zamiany klas i metod . Nie wykonują one żadnych bardziej złożonych integracji zestawu SDK, takich jak wiele tożsamości, rejestrowanie w zasadach ochrony aplikacji, zasady ograniczania transferu danych między aplikacjami i lokalizacjami magazynu urządzenia lub chmury albo konfiguracja biblioteki MSAL. Musisz ukończyć te integracje, zanim aplikacja będzie w pełni Intune włączona. Dokładnie przejrzyj pozostałą część tej dokumentacji, aby zapoznać się z punktami integracji dotyczącymi aplikacji.
Debugowanie
Narzędzie kompilacji wykonuje zamiany po kompilacji. Te zamiany zmieniają niektóre nazwy metod. W związku z tym może to mieć wpływ na debugowanie punktów przerwania ustawionych dla nazw metod. Mogą nie zostać zatrzymane zgodnie z oczekiwaniami. Nie ma to wpływu na punkty przerwania numerów wierszy.
Zarządzanie aplikacjami mobilnymi w stosie
Integracja zestawu Intune App SDK w dużym stopniu opiera się na zamianach klas i metod. Ze względu na to poleganie widać mam ślady stosu.
Jeśli aplikacja nie ma konta objętego zasadami ochrony aplikacji, cały ten kod mam jest uśpiony. Na przykład działa MAMActivity identycznie i ActivityonMAMCreate działa identycznie jak onCreate.
Zawsze, gdy widzisz mam w stosie, najpierw sprawdź:
- Czy konto jest objęte zasadami ochrony aplikacji?
- Czy Intune — Portal firmy jest zainstalowana?
O ile odpowiedź na obie strony nie brzmi "tak", kod MAM działa jako prosty przekazywanie.
Jakiego narzędzia potrzebuję?
Jeśli tworzysz aplikację za pomocą narzędzia Gradle, zobacz Integrating with the Gradle Build Plugin (Integracja z wtyczką kompilacji Gradle)
Jeśli skompilujesz aplikację przy użyciu interfejsu MAUI platformy .NET, zobacz Integrowanie z obiektami docelowymi maui platformy .NET.
Jeśli skompilujesz aplikację przy użyciu żadnego z poprzednich narzędzi, zobacz Integrating with the Command Line Tool (Integrowanie z narzędziem wiersza polecenia).
Integracja z wtyczką kompilacji Gradle
Wtyczka zestawu SDK aplikacji Intune jest dystrybuowana jako część zestawu SDK jako GradlePlugin/com.microsoft.intune.mam.build.jar.
Aby wtyczka została rozpoznana przez narzędzie Gradle, należy ją dodać do ścieżki buildscript klasy.
Wtyczka zależy od języka Javassist, który również musi zostać dodany. Aby uzyskać więcej informacji na temat zależności javassist, zobacz Zależności.
Aby dodać je do ścieżki klasy, dodaj następujące elementy do katalogu głównego 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 aplikacji i modułów 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ę testów.
Uwaga
Począwszy od zestawu SDK aplikacji Intune 8.0, nie można już selektywnie przetwarzać bibliotek. Wszystkie biblioteki są przetwarzane.
Zależności
Wtyczka Gradle ma zależność od języka Javassist, która musi zostać udostępniona do rozwiązania zależności narzędzia Gradle. Środowisko Javassist jest używane 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 Intune App SDK.
Macierz zgodności
Wtyczka kompilacji zestawu MAM SDK jest zgodna z wymaganiami dotyczącymi kompilacji systemu Android i tabelami zgodności. Wersje, które nie są wymienione w tym miejscu, mogą lub mogą nie działać.
| Zestaw SDK zarządzania aplikacjami mobilnymi | Wersja systemu Android | Gradle | Wtyczka Android Gradle | Wersja Kotlin | Wersja języka 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 ponownych zapisów. Wykluczenia są głównie przydatne w przypadku składników, które nie są istotne dla zarządzania aplikacjami mobilnymi (tj. 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 mają interfejsu z bibliotekami systemu Android ani interfejsami API systemu. Są one również przydatne w przypadku projektów, które nie obsługują danych firmowych. Na przykład projekt, który zawiera wyłącznie natywny kod do wykonywania operacji sieciowych niskiego poziomu, może być dobrym kandydatem. Jeśli projekt ma szerokie interfejsy z bibliotekami systemu Android lub interfejsami API systemu, unikaj tych wykluczeń. -
excludeClassesumożliwia wykluczenie listy klas. Te wykluczenia są przydatne w przypadku klas, które nie obsługują ani nie prezentują danych firmowych. Na przykład ekrany powitalne i dołączanieActivitysą dobrymi kandydatami. Nie można wykluczyć klasy, jeśli którakolwiek z jej superklas jest przetwarzana. -
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ć smak aplikacji bez zarządzania aplikacjami mobilnymi. Jeśli na przykład aplikacja ma typydebugkompilacji ireleasema smaki {noMAM,MAM} i {mock,production} można określić:-
noMAMaby wykluczyć wszystkie warianty o smaku noMAM lub -
noMAMMockDebugaby wykluczyć tylko ten dokładny wariant.
-
Uwaga
Nie należy lekceważyć wykluczeń. Nieprawidłowe zastosowanie wykluczeń może spowodować poważne wycieki danych w aplikacji. Zawsze weryfikuj wpływ wszelkich zastosowanych wykluczeń.
Przykład częściowego pliku 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 ponownie zapisywany, ponieważ jest uwzględniony wexcludeProjects -
:product:foo-projectjest ponownie zapisywany, z wyjątkiemcom.contoso.SplashActivityelementu , który jest pomijany, ponieważ znajduje się wexcludeClasses -
com.microsoft.bar:baz.1.0.0jest ponownie zapisywany, ponieważ wszystkie biblioteki zewnętrzne są dołączone do przetwarzania. - Warianty o
noMAMsmaku nie są zapisywane ponownie.
Raportowanie
Wtyczka kompilacji może wygenerować raport HTML dotyczący wprowadzonych zmian.
Aby zażądać wygenerowania tego raportu, określ report = true w intunemam bloku konfiguracji.
Jeśli zostanie wygenerowany, raport zostanie zapisany outputs/logs w katalogu kompilacji.
intunemam {
report = true
}
Weryfikacji
Wtyczka kompilacji może uruchomić więcej weryfikacji w celu wyszukania możliwych błędów w klasach przetwarzania. Te kontrole ułatwiają ochronę przed potencjalnymi błędami środowiska uruchomieniowego wywołanymi przez wtyczkę.
Aby zażądać weryfikacji w kompilacji, określ verify = true w intunemam bloku konfiguracji.
Może to dodać kilka sekund do czasu potrzebnego na wykonanie zadania wtyczki.
intunemam {
verify = true
}
Ogólnie rzecz biorąc, błąd weryfikacji reprezentuje usterkę w wtyczce kompilacji. Aby uzyskać pomoc dotyczącą awarii, eskaluj problem z pomocą techniczną firmy Microsoft. Jeśli nie masz umowy pomocy technicznej firmy Microsoft, otwórz problem z usługą GitHub.
Kompilacje przyrostowe
Aby włączyć obsługę tworzenia przyrostowego, określ incremental = true w intunemam bloku konfiguracji.
Ta funkcja zwiększa wydajność kompilacji, przetwarzając tylko pliki wejściowe, które się zmieniają.
Domyślna konfiguracja elementu incremental to false.
intunemam {
incremental = true
}
Konfiguracja modułu funkcji dynamicznych
Moduły funkcji dynamicznych są kompilowane oddzielnie od projektu aplikacji. W związku z tym moduły funkcji dynamicznych muszą również zastosować wtyczkę kompilacji Gradle.
Wtyczka Gradle ma ograniczenia techniczne w używanych interfejsach API. Z powodu tych ograniczeń klasy aplikacji muszą zostać ponownie przetworzone podczas przekształcania klas modułów funkcji dynamicznych. Aby upewnić się, że można wykonać to ponowne przetwarzanie, skonfiguruj wszystkie moduły funkcji z tymi samymi ustawieniami co aplikacja.
Jeśli na przykład aplikacja wyklucza klasę, moduł funkcji dynamicznej powinien również wykluczyć tę klasę.
Integracja z elementami docelowymi maui platformy .NET
Obiekty docelowe zestawu SDK aplikacji 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 Intune App SDK for .NET MAUI — Android NuGet.
Integracja z narzędziem kompilacji wiersza polecenia
Narzędzie kompilacji wiersza polecenia jest dostępne w folderze BuildTool listy rozwijanej zestawu SDK.
Wykonuje ona tę samą funkcję co wtyczka Gradle i obiekty docelowe platformy .NET wyszczególnione powyżej. Narzędzie wiersza polecenia można jednak zintegrować z niestandardowymi systemami kompilacji.
Ponieważ narzędzie jest bardziej ogólne, wywoływanie go jest bardziej złożone. Użyj wtyczki Gradle lub obiektów docelowych platformy .NET zawsze, gdy jest to możliwe.
Korzystanie z narzędzia Command-Line
Narzędzie wiersza polecenia można wywołać przy użyciu udostępnionych skryptów pomocnika znajdujących się w BuildTool\bin 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 klasy do zmodyfikowania. Uwzględnij wszystkie adresy JARs i katalogi, które zamierzasz ponownie zapisać. |
--output |
Tak | Rozdzielana średnikami lista plików JAR i katalogów do przechowywania zmodyfikowanych klas. Podaj jeden wpis wyjściowy na wpis wejściowy wymieniony w tej samej kolejności. |
--classpath |
Tak | Ścieżka klasy kompilacji. Może 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 ponownego pisania. |
--report |
Nie | Katalog do napisania raportu HTML o zmodyfikowanych klasach. Jeśli nie zostanie określony, żaden raport nie zostanie zapisany. |
--processed Opcjonalna opcja służy do włączania kompilacji przyrostowych.
Zestaw plików/katalogów wymienionych tutaj powinien być rozłączny z listami wejściowymi i classpath.
Porada
W systemach podobnych do systemu Unix średnik jest separatorem poleceń. Aby uniknąć dzielenia poleceń przez powłokę, pamiętaj o ucieczce każdego średnika za pomocą znaku "" lub zawijaniu pełnego parametru w cudzysłowie.
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:
-
product-foo-projectkatalog jest ponownie zapisywany wmam-build\product-foo-project -
bar.jarjest ponownie zapisywany wmam-build\libs\bar.jar -
zap.jarnie jest przepisywany, ponieważ znajduje się tylko na liście--classpath - Klasa
com.contoso.SplashActivitynie jest zapisywana ponownie, nawet jeśli jest w--input
Ostrzeżenie
Narzędzie kompilacji obecnie nie obsługuje plików aar.
Jeśli system kompilacji nie został jeszcze wyodrębniony classes.jar podczas pracy z plikami aar, wyodrębnij go przed wywołaniem narzędzia kompilacji.
Ustawianie aplikacji MAM
Jeśli aplikacja tworzy podklasę , wtyczka kompilacji android.app.Applicationlub narzędzie wiersza polecenia przekształca klasę aplikacji.
Jeśli 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żyj najnowszych narzędzi kompilacji zestawu Android SDK.
- Usuń wszystkie niepotrzebne i nieużywane biblioteki (na przykład android.support.v4).
Po automatycznym zastąpieniu zestaw SDK aplikacji Intune nadal utrzymuje kontrakt dostarczony przez interfejs API systemu Android. Jednak warunki niepowodzenia mogą być wyzwalane częściej w wyniku wymuszania zasad. Te najlepsze rozwiązania dotyczące systemu Android zmniejszają prawdopodobieństwo awarii:
- Funkcje zestawu Android SDK, które mogą teraz zostać zwrócone
null, mają większe prawdopodobieństwo zwrócenianull. Upewnij się, żenullkontrole 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ępczych funkcji ZARZĄDZANIA aplikacjami mobilnymi, takich jakMAMClipboard.getPrimaryClipDescription(clipboardManager). - Wszystkie funkcje pochodne muszą wywoływać ich wersje superklasy.
- Unikaj używania dowolnego interfejsu API w niejednoznaczny sposób. Na przykład używanie metody
Activity.startActivityForResultbez sprawdzania przyczyn nietypowegorequestCodezachowania.
Usługi
Wymuszanie zasad może mieć wpływ na interakcje z usługą systemu Android.
Metody, które ustanawiają powiązanego połączenia usługi, takie jak Context.bindService może zakończyć się niepowodzeniem z powodu wymuszania zasad bazowych i Service.onBind mogą spowodować ServiceConnection.onNullBinding lub ServiceConnection.onServiceDisconnected.
Interakcja z ustaloną usługą powiązaną SecurityException może spowodować wystąpienie problemu z powodu wymuszania zasad w programie Binder.onTransact.
Klienci powiązanych usług są zachęcani do sprawdzania wyjątków zgłaszanych przez usługę. Nie zezwalaj na propagowanie wyjątków do pozostałej części aplikacji klienckiej.
Kryteria zakończenia
Po skonfigurowaniu wtyczki kompilacji lub zintegrowaniu narzędzia wiersza polecenia z procesem kompilacji sprawdź, czy jest ono uruchomione pomyślnie:
- Upewnij się, że kompilacja została pomyślnie skompilowana i skompilowana.
- Skonfiguruj flagę
report, a następnie otwórz dokument raportu i potwierdź, że występują zamiany klas i metod:- Jeśli używasz wtyczki, wykonaj kroki opisane w temacie 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 powoduje ona błędów. Zobacz Weryfikacja. - Sprawdź dokładnie wszystkie wykluczenia (
excludeProjects,excludeClassesiexcludeVariants) w pliku build.gradle. Upewnij się, że każde wykluczenie jest konieczne i nie dotyczy chronionych danych. W przeszłości wystąpiło wiele błędów wycieku danych z powodu nadmiernie agresywnych wykluczeń. -
Bez zainstalowanego Intune — Portal firmy uruchom skompilowaną aplikację. Zaloguj się przy użyciu użytkownika Microsoft Entra, który nie jest objęty zasadami ochrony aplikacji. Upewnij się, że aplikacja działa zgodnie z oczekiwaniami.
- Wyloguj się i powtórz ten test z zainstalowanym Intune — Portal firmy.
Często zadawane pytania
Moja aplikacja wcześniej zintegrowała zestaw SDK bez wtyczki kompilacji; jak mogę użyć wtyczki kompilacji?
Starsze wersje zestawu Intune App SDK nie zawierały żadnego zautomatyzowanego sposobu wykonywania zamian klas i metod. Deweloperzy musieli wykonać te zamiany ręcznie w kodzie źródłowym. Jeśli aplikacja jest zintegrowana w ten sposób, można bezpiecznie zastosować wtyczkę kompilacji lub narzędzie do kompilacji wiersza polecenia. Nie potrzebujesz żadnych modyfikacji kodu źródłowego. Projekt musi nadal wyświetlać listę zestawu SDK zarządzania aplikacjami mobilnymi jako zależność.
Następne kroki
Po ukończeniu wszystkich kryteriów zakończenia przejdź do etapu 4: Podstawy integracji mam.