Przygotowywanie aplikacji systemu iOS pod kątem zasad ochrony aplikacji za pomocą narzędzia opakowującego aplikacje usługi IntunePrepare iOS apps for app protection policies with the Intune App Wrapping Tool

Czy ta strona jest pomocna?

Za pomocą dostępnego w usłudze Microsoft Intune narzędzia opakowującego aplikacje dla systemu iOS można włączyć zasady ochrony aplikacji w usłudze Intune dla wewnętrznych aplikacji systemu iOS bez konieczności zmieniania kodu aplikacji.Use the Microsoft Intune App Wrapping Tool for iOS to enable Intune app protection policies for in-house iOS apps without changing the code of the app itself.

Narzędzie to jest aplikacją wiersza polecenia systemu Mac OS, tworzącą „otokę” dla aplikacji.The tool is a macOS command-line application that creates a wrapper around an app. Po przetworzeniu aplikacji można zmienić funkcje aplikacji przez wdrożenie w niej zasad ochrony aplikacji.Once an app is processed, you can change the app's functionality by deploying app protection policies to it.

Aby pobrać narzędzie, zobacz temat Microsoft Intune App Wrapping Tool for iOS (Narzędzie opakowujące aplikacje usługi Microsoft Intune dla systemu iOS) w serwisie GitHub.To download the tool, see Microsoft Intune App Wrapping Tool for iOS on GitHub.

Ogólne wymagania wstępne dotyczące narzędzia opakowującego aplikacjeGeneral prerequisites for the App Wrapping Tool

Przed uruchomieniem narzędzia opakowującego aplikacje należy spełnić pewne ogólne wymagania wstępne:Before you run the App Wrapping Tool, you need to fulfill some general prerequisites:

  • Pobierz narzędzie opakowujące aplikacje usługi Microsoft Intune dla systemu iOS z witryny GitHub.Download the Microsoft Intune App Wrapping Tool for iOS from GitHub.

  • Komputer z systemem macOS X 10.8.5 lub nowszym z zainstalowanym zestawem narzędzi Xcode w wersji 9 lub nowszej.A macOS computer that runs OS X 10.8.5 or later and has the Xcode toolset version 9 or later installed.

  • Aplikacje wejściowe systemu iOS muszą być opracowane i podpisane przez Twoją firmę lub niezależnego dostawcę oprogramowania.The input iOS app must be developed and signed by your company or an independent software vendor (ISV).

    • Plik aplikacji wejściowej musi mieć rozszerzenie ipa lub app.The input app file must have the extension .ipa or .app.

    • Aplikacja wejściowa musi być skompilowana dla systemu iOS w wersji 10 lub nowszej.The input app must be compiled for iOS 10 or later.

    • Aplikacja wejściowa nie może być zaszyfrowana.The input app cannot be encrypted.

    • Aplikacja wejściowa nie może mieć rozszerzonych atrybutów pliku.The input app cannot have extended file attributes.

    • Aplikacja wejściowa musi mieć ustawione uprawnienia, aby mogła zostać przetworzona przez narzędzie opakowujące aplikacje usługi Intune.The input app must have entitlements set before being processed by the Intune App Wrapping Tool. Uprawnienia zapewniają aplikacji dodatkowe możliwości poza tymi, które są zwykle przyznawane.Entitlements give the app additional permissions and capabilities beyond those typically granted. Instrukcje można znaleźć w artykule Ustawienie uprawnień dla aplikacji.See Setting app entitlements for instructions.

Wymagania wstępne dotyczące narzędzia opakowującego aplikacje dla deweloperów firmy AppleApple Developer prerequisites for the App Wrapping Tool

Aby można było rozpowszechniać opakowane aplikacje wyłącznie wśród użytkowników w organizacji, musisz mieć konto w ramach programu Apple Developer Enterprise Program i jednostki podpisywania aplikacji połączone z kontem dewelopera firmy Apple.To distribute wrapped apps exclusively to your organization's users, you need an account with the Apple Developer Enterprise Program and several entities for app signing that are linked to your Apple Developer account.

Aby dowiedzieć się więcej na temat wewnętrznego rozpowszechniania aplikacji systemu iOS wśród użytkowników organizacji, przeczytaj oficjalny przewodnik rozpowszechniania aplikacji w ramach programu Apple Developer Enterprise Program.To learn more about distributing iOS apps internally to your organization's users, read the official guide to Distributing Apple Developer Enterprise Program Apps.

Do rozpowszechniania aplikacji opakowanych przez usługę Intune są potrzebne następujące elementy:You will need the following to distribute apps wrapped by Intune:

  • Konto dewelopera w ramach programu Apple Developer Enterprise Program.A developer account with the Apple Developer Enterprise Program.

  • Certyfikat podpisywania dystrybucji wewnętrznej i tymczasowej z prawidłowym identyfikatorem zespołu.In-house and ad-hoc distribution signing certificate with valid Team Identifier.

    • Jako parametru narzędzia opakowującego aplikacje usługi Intune należy użyć skrótu SHA1 certyfikatu podpisywania.You will need the SHA1 hash of the signing certificate as a parameter to the Intune App Wrapping Tool.
  • Profil aprowizacji dystrybucji wewnętrznej.In-house distribution provisioning profile.

Procedura tworzenia konta programu Apple Developer EnterpriseSteps to create an Apple Developer Enterprise account

  1. Przejdź do witryny programu Apple Developer Enterprise Program.Go to the Apple Developer Enterprise Program site.

  2. W prawym górnym rogu strony kliknij przycisk Enroll (Zarejestruj).In the top right of the page, click Enroll.

  3. Przeczytaj listę kontrolną z wymaganiami dotyczącymi rejestracji.Read the checklist of what you need to enroll. Kliknij przycisk Start Your Enrollment (Rozpocznij rejestrację) u dołu strony.Click Start Your Enrollment at the bottom of the page.

  4. Zaloguj się przy użyciu konta Apple ID organizacji.Sign in with the Apple ID of your organization. Jeśli nie masz konta, kliknij przycisk Create Apple ID (Utwórz konto Apple ID).If you don't have one, click Create Apple ID.

  5. Wybierz wartość w polu Entity Type (Typ jednostki) i kliknij przycisk Continue (Kontynuuj).Select your Entity Type and click Continue.

  6. Wypełnij formularz z informacjami o organizacji.Fill out the form with your organization's information. Kliknij przycisk Kontynuuj.Click Continue. Firma Apple skontaktuje się z Tobą w celu potwierdzenia, że masz uprawnienia do rejestracji organizacji.At this point, Apple contacts you to verify that you are authorized to enroll your organization.

  7. Po zakończeniu weryfikacji kliknij przycisk Agree to License (Akceptuj postanowienia licencyjne).After verification, click Agree to License.

  8. Po zaakceptowaniu postanowień licencji kup i aktywuj program, aby zakończyć.After agreeing to license, finish by purchasing and activating the program.

  9. Jeśli jesteś agentem zespołu (osobą, która dołącza do programu Apple Developer Enterprise Program w imieniu organizacji), najpierw zaproś członków zespołu i przypisz role, aby utworzyć zespół.If you are the team agent (the person who joins the Apple Developer Enterprise Program on behalf of your organization), build your team first by inviting team members and assigning roles. Aby dowiedzieć się, jak zarządzać zespołem, zapoznaj się z dokumentacją firmy Apple dotyczącą zarządzania zespołem konta dewelopera.To learn how to manage your team, read the Apple documentation on Managing Your Developer Account Team.

Procedura tworzenia certyfikatu podpisywania firmy AppleSteps to create an Apple signing certificate

  1. Przejdź do portalu dla deweloperów firmy Apple.Go to the Apple Developer portal.

  2. W prawym górnym rogu strony kliknij pozycję Account (Konto).In the top right of the page, click Account.

  3. Zaloguj się za pomocą konta Apple ID organizacji.Sign in with your organizational Apple ID.

  4. Kliknij pozycję Certificates, IDs & Profiles (Certyfikaty, identyfikatory i profile).Click Certificates, IDs & Profiles.

    Portal dla deweloperów firmy Apple — pozycja Certificates, IDs & Profiles (Certyfikaty, identyfikatory i profile)

  5. Kliknij kartęClick the znak plus w portalu dla deweloperów firmy Apple w prawym górnym rogu, aby dodać certyfikat systemu iOS.in the top right corner to add an iOS certificate.

  6. Utwórz certyfikat wewnętrzny i tymczasowy w obszarze Production (Produkcja).Choose to create an In-House and Ad Hoc certificate under Production.

    Wybieranie certyfikatu wewnętrznego i tymczasowego

    Uwaga

    Jeśli nie planujesz dystrybuować aplikacji i chcesz ją tylko przetestować wewnętrznie, możesz skorzystać z certyfikatu iOS App Development zamiast certyfikatu Production.If do not plan to distribute the app, and only want to test it internally, you can use an iOS App Development certificate instead of a certificate for Production. Jeśli używasz certyfikatu deweloperskiego, upewnij się, że profil aprowizowania dla urządzeń przenośnych odwołuje się do urządzeń, na których aplikacja ma być instalowana.If you use a development certificate, make sure the mobile provisioning profile references the devices on which the app will be installed.

  7. Kliknij pozycję Next (Dalej) w dolnej części strony.Click Next at the bottom of the page.

  8. Przeczytaj instrukcje dotyczące tworzenia żądania podpisania certyfikatu (CSR) za pomocą aplikacji Dostęp do pęku kluczy na komputerze z systemem MacOS.Read the instructions on creating a Certificate Signing Request (CSR) using the Keychain Access application on your macOS computer.

    Przeczytaj instrukcje dotyczące tworzenia żądania CSR

  9. Postępuj zgodnie z powyższymi instrukcjami, aby utworzyć żądanie podpisania certyfikatu.Follow the instructions above to create a Certificate Signing Request. Na komputerze z systemem MacOS uruchom aplikację dostępu łańcucha kluczy.On your macOS computer, launch the Keychain Access application.

  10. W menu systemu macOS u góry ekranu przejdź do pozycji Dostęp do pęku kluczy > Asystent certyfikatów > Wniosek o wydanie certyfikatu z urzędu certyfikacji.On the macOS menu at the top of the screen, go to Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority.

    Wniosek o wydanie certyfikatu z urzędu certyfikacji w aplikacji Dostęp do pęku kluczy

  11. Postępuj zgodnie z powyższymi instrukcjami w witrynie dla deweloperów firmy Apple dotyczącymi tworzenia pliku CSR.Follow the instructions from the Apple developer site above on how to create a CSR file. Zapisz plik CSR na komputerze z systemem macOS.Save the CSR file to your macOS computer.

    Wprowadzanie informacji dotyczących żądanego certyfikatu

  12. Wróć do witryny dla deweloperów firmy Apple.Return to the Apple developer site. Kliknij przycisk Kontynuuj.Click Continue. Następnie przekaż plik CSR.Then upload the CSR file.

  13. Firma Apple wygeneruje certyfikat podpisywania.Apple generates your signing certificate. Pobierz i zapisz go w łatwej do zapamiętania lokalizacji na komputerze z systemem macOS.Download and save it to a memorable location on your macOS computer.

    Pobieranie certyfikatu podpisywania

  14. Kliknij dwukrotnie pobrany właśnie plik certyfikatu, aby dodać certyfikat do łańcucha kluczy.Double-click the certificate file you just downloaded to add the certificate to a keychain.

  15. Ponownie otwórz aplikację Dostęp do pęku kluczy.Open Keychain Access again. Zlokalizuj swój certyfikat, wyszukując jego nazwę na pasku wyszukiwania u góry z prawej strony.Locate your certificate by searching for its name in the top right search bar. Kliknij element prawym przyciskiem myszy, aby wyświetlić menu, i kliknij pozycję Informacje.Right-click on the item to bring up the menu and click Get Info. Na ekranach przykładowych używamy certyfikatu deweloperskiego zamiast certyfikatu produkcyjnego.In the example screens, we are using a development certificate instead of a production certificate.

    Dodawanie certyfikatu do łańcucha kluczy

  16. Zostanie wyświetlone okno z informacjami.An informational window appears. Przewiń do dołu i przejdź do etykiety Skróty kluczy.Scroll to the bottom and look under the Fingerprints label. Skopiuj ciąg SHA1 (rozmyty) do użytku jako argument „-c” dla narzędzia opakowującego aplikacje.Copy the SHA1 string (blurred out) to use as the argument for "-c" for the App Wrapping Tool.

    Informacje dotyczące telefonu iPhone — ciąg SHA1 odcisków palców

Procedura tworzenia profilu aprowizacji dystrybucji wewnętrznejSteps to create an In-House Distribution Provisioning profile

  1. Wróć do portalu konta dewelopera firmy Apple i zaloguj się przy użyciu konta Apple ID organizacji.Go back to the Apple Developer account portal and sign in with your organizational Apple ID.

  2. Kliknij pozycję Certificates, IDs & Profiles (Certyfikaty, identyfikatory i profile).Click Certificates, IDs & Profiles.

  3. Kliknij kartęClick the znak plus w portalu dla deweloperów firmy Apple w prawym górnym rogu, aby dodać profil aprowizacji systemu iOS.in the top right corner to add an iOS provisioning profile.

  4. Utwórz profil aprowizacji In House (Wewnętrzny) w obszarze Distribution (Dystrybucja).Choose to create an In House provisioning profile under Distribution.

    Wybieranie wewnętrznego profilu aprowizacji

  5. Kliknij przycisk Kontynuuj.Click Continue. Upewnij się, że wcześniej wygenerowany certyfikat podpisywania zostanie połączony z profilem aprowizacji.Make sure to link the previously generated signing certificate to the provisioning profile.

  6. Wykonaj procedurę pobierania profilu (z rozszerzeniem mobileprovision) na komputer z systemem macOS.Follow the steps to download your profile (with extension .mobileprovision) to your macOS computer.

  7. Zapisz plik w łatwej do zapamiętania lokalizacji.Save the file in a memorable location. Ten plik zostanie użyty jako parametr -p podczas korzystania z narzędzia opakowującego aplikacje.This file will be used for the -p parameter while using the App Wrapping Tool.

Pobieranie narzędzia opakowującego aplikacjeDownload the App Wrapping Tool

  1. Pobierz pliki narzędzia opakowującego aplikacje z serwisu GitHub na komputer z systemem macOS.Download the files for the App Wrapping Tool from GitHub to a macOS computer.

  2. Kliknij dwukrotnie plik Microsoft Intune App Wrapping Tool for iOS.dmg.Double-click Microsoft Intune App Wrapping Tool for iOS.dmg. Zostanie wyświetlone okno zawierające Umowę licencyjną użytkownika oprogramowania (EULA).A window with the End User License Agreement (EULA) will appear. Zapoznaj się dokładnie z treścią dokumentu.Read the document carefully.

  3. Wybierz pozycję Zgadzam się, aby zaakceptować umowę EULA, co spowoduje zainstalowanie pakietu na komputerze.Choose Agree to accept EULA, which mounts the package to your computer.

Uruchamianie narzędzia opakowującego aplikacjeRun the App Wrapping Tool

Korzystanie z terminalaUse terminal

Otwórz terminal systemu macOS i uruchom następujące polecenie:Open the macOS Terminal and run the following command:

/Volumes/IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i /<path of input app>/<app filename> -o /<path to output folder>/<app filename> -p /<path to provisioning profile> -c <SHA1 hash of the certificate> [-b [<output app build string>]] [-v] [-e] [-x /<array of extension provisioning profile paths>]

Uwaga

Niektóre parametry są opcjonalne, jak pokazano w poniższej tabeli.Some parameters are optional as shown in the following table.

Przykład: następujące przykładowe polecenie uruchamia narzędzie opakowujące aplikacje w celu przetworzenia aplikacji o nazwie MyApp.ipa.Example: The following example command runs the App Wrapping Tool on the app named MyApp.ipa. Profil aprowizowania oraz skrót SHA-1 certyfikatu podpisywania zostaną określone i będą używane do podpisywania opakowanej aplikacji.A provisioning profile and SHA-1 hash of the signing certificate are specified and used to sign the wrapped app. Aplikacja wyjściowa (MyApp_Wrapped.ipa) zostanie utworzona i zapisana w folderze Desktop (Pulpit).The output app (MyApp_Wrapped.ipa) is created and stored in your Desktop folder.

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i ~/Desktop/MyApp.ipa -o ~/Desktop/MyApp_Wrapped.ipa -p ~/Desktop/My_Provisioning_Profile_.mobileprovision -c "12 A3 BC 45 D6 7E F8 90 1A 2B 3C DE F4 AB C5 D6 E7 89 0F AB"  -v true

Parametry wiersza poleceniaCommand-line parameters

Z narzędziem opakowującym aplikacje można użyć następujących parametrów wiersza polecenia:You can use the following command line parameters with the App Wrapping Tool:

WłaściwośćProperty Sposób użyciaHow to use it
-i-i <Path of the input native iOS application file>.<Path of the input native iOS application file>. Nazwa pliku musi mieć zakończenie .app lub .ipa.The file name must end in .app or .ipa.
-o-o <Path of the wrapped output application>
-p-p <Path of your provisioning profile for iOS apps>
-c-c <SHA1 hash of the signing certificate>
-h-h Wyświetla szczegółowe informacje dotyczące użycia dostępnych właściwości wiersza polecenia dla narzędzia opakowującego aplikacje.Shows detailed usage information about the available command line properties for the App Wrapping Tool.
-v-v (Opcjonalna) Zwraca pełne komunikaty wyjściowe do konsoli.(Optional) Outputs verbose messages to the console. Zaleca się użyć tej flagi w celu debugowania wszelkich błędów.It is recommended to use this flag to debug any errors.
-e-e (Opcjonalna) Użyj tej właściwości, aby narzędzie opakowujące aplikacje usuwało brakujące uprawnienia podczas przetwarzania aplikacji.(Optional) Use this flag to have the App Wrapping Tool remove missing entitlements as it processes the app. Zobacz Ustawianie uprawnień dla aplikacji, aby uzyskać szczegółowe informacje.See Setting app entitlements for more details.
-xe-xe (Opcjonalna) Wyświetla informacje na temat rozszerzeń systemu iOS w aplikacji oraz uprawnień wymaganych do ich używania.(Optional) Prints information about the iOS extensions in the app and what entitlements are required to use them. Zobacz Ustawianie uprawnień dla aplikacji, aby uzyskać szczegółowe informacje.See Setting app entitlements for more details.
-x-x (Opcjonalnie) <An array of paths to extension provisioning profiles>.(Optional) <An array of paths to extension provisioning profiles>. Użyj tej właściwości, jeśli aplikacja wymaga profilów aprowizacji rozszerzeń.Use this if your app needs extension provisioning profiles.
-f-f (Opcjonalna) <Path to a plist file specifying arguments.> Poprzedź tą flagą plik plist, jeśli chcesz użyć szablonu pliku plist w celu określenia pozostałych właściwości aplikacji IntuneMAMPackager: -i, -o, -p itd.(Optional) <Path to a plist file specifying arguments.> Use this flag in front of the plist file if you choose to use the plist template to specify the rest of the IntuneMAMPackager properties like -i, -o, and -p. Zobacz temat Wprowadzanie argumentów przy użyciu pliku plist.See Use a plist to input arguments.
-b-b (Opcjonalnie) Użyj właściwości -b bez argumentu, jeśli chcesz, aby opakowana aplikacja wyjściowa miała taką samą wersję pakietu jak aplikacja wejściowa (niezalecane).(Optional) Use -b without an argument if you want the wrapped output app to have the same bundle version as the input app (not recommended).

Użyj właściwości -b <custom bundle version>, jeśli chcesz, aby opakowana aplikacja miała niestandardową wartość CFBundleVersion.Use -b <custom bundle version> if you want the wrapped app to have a custom CFBundleVersion. Jeśli chcesz określić niestandardową wartość CFBundleVersion, zaleca się podwyższenie najmniej istotnego składnika wartości CFBundleVersion aplikacji natywnej, na przykład z 1.0.0 na 1.0.1.If you choose to specify a custom CFBundleVersion, it's a good idea to increment the native app’s CFBundleVersion by the least significant component, like 1.0.0 -> 1.0.1.

Wprowadzanie argumentów przy użyciu pliku plistUse a plist to input arguments

Łatwym sposobem uruchamiania narzędzia opakowującego aplikacje jest wprowadzenie wszystkich argumentów polecenia w pliku plist.An easy way to run the App Wrapping Tool is to put all the command arguments into a plist file. Plist to format pliku podobny do formatu XML, umożliwiający wprowadzanie argumentów wiersza polecenia za pomocą interfejsu formularza.Plist is a file format similar to XML that you can use to input your command line arguments using a form interface.

Za pomocą edytora tekstu lub narzędzia Xcode otwórz plik Parameters.plist, pusty szablon pliku plist znajdujący się w folderze IntuneMAMPackager/Contents/MacOS.In the IntuneMAMPackager/Contents/MacOS folder, open Parameters.plist (a blank plist template) with a text editor or Xcode. Wprowadź argumenty dla następujących kluczy:Enter your arguments for the following keys:

Klucz pliku plistPlist key Wartość domyślnaDefault value UwagiNotes
Input Application Package Path (Ścieżka pakietu aplikacji wejściowej)Input Application Package Path pusteempty Odpowiada właściwości -i.Same as -i
Output Application Package Path (Ścieżka pakietu aplikacji wyjściowej)Output Application Package Path pusteempty Odpowiada właściwości -o.Same as -o
Provisioning Profile Path (Ścieżka profilu aprowizacji)Provisioning Profile Path pusteempty Odpowiada właściwości -p.Same as -p
SHA-1 Certificate Hash (Skrót certyfikatu SHA-1)SHA-1 Certificate Hash pusteempty Odpowiada właściwości -c.Same as -c
Verbose Enabled (Pełne komunikaty włączone)Verbose Enabled fałszfalse Odpowiada właściwości -v.Same as -v
Remove Missing Entitlements (Usuwanie brakujących uprawnień)Remove Missing Entitlements fałszfalse Odpowiada właściwości -c.Same as -c
Prevent Default Build (Zapobieganie użyciu domyślnej kompilacji)Prevent Default Build fałszfalse Odpowiada właściwości -b bez argumentów.Equivalent to using -b without arguments
Build String Override (Zastąpienie ciągu kompilacji)Build String Override pusteempty Niestandardowa wartość CFBundleVersion opakowanej aplikacji wyjściowejThe custom CFBundleVersion of the wrapped output app
Extension Provisioning Profile Paths (Ścieżki profilów aprowizacji rozszerzeń)Extension Provisioning Profile Paths pusteempty Tablica profilów aprowizacji rozszerzeń dla aplikacji.An array of extension provisioning profiles for the app.

Uruchom aplikację IntuneMAMPackager, wprowadzając plik plist jako jedyny argument:Run the IntuneMAMPackager with the plist as the sole argument:

./IntuneMAMPackager –f Parameters.plist

Czynności po opakowaniuPost-wrapping

Po zakończeniu procesu opakowywania zostanie wyświetlony komunikat „The application was successfully wrapped” (Aplikacja została pomyślnie opakowana).After the wrapping process completes, the message "The application was successfully wrapped" will be displayed. W przypadku wystąpienia błędu zobacz Komunikaty o błędach, aby uzyskać pomoc.If an error occurs, see Error messages for help.

Przetworzona aplikacja zostanie zapisana we wskazanym wcześniej folderze wyjściowym.The wrapped app is saved in the output folder you specified previously. Możesz przekazać aplikację do konsoli administracyjnej usługi Intune i skojarzyć ją z zasadami zarządzania aplikacjami mobilnymi.You can upload the app to the Intune admin console and associate it with a mobile application management policy.

Ważne

Podczas przekazywania opakowanej aplikacji możesz spróbować zaktualizować starszą wersję aplikacji, jeśli starsza wersja (opakowana lub natywna) została już wdrożona w usłudze Intune.When uploading a wrapped app, you can try to update an older version of the app if an older (wrapped or native) version was already deployed to Intune. Jeśli wystąpi błąd, przekaż opakowaną aplikację jako nową aplikację, a następnie usuń starszą wersję.If you experience an error, upload the app as a new app and delete the older version.

Teraz możesz wdrożyć aplikację do grup użytkowników i przypisać zasady ochrony do aplikacji.You can now deploy the app to your user groups and target app protection policies to the app. Aplikacja będzie uruchamiana na urządzeniu przy użyciu wybranych zasad ochrony aplikacji.The app will run on the device using the app protection policies you specified.

Jak często należy ponownie opakowywać aplikację systemu iOS za pomocą narzędzia opakowującego aplikacje usługi Intune?How often should I rewrap my iOS application with the Intune App Wrapping Tool?

Główne scenariusze, w których trzeba będzie ponownie opakować aplikacje:The main scenarios in which you would need to rewrap your applications are as follows:

  • Sama aplikacja wydała nową wersję.The application itself has released a new version. Poprzednia wersja aplikacji została opakowana i przekazana do konsoli usługi Intune.The previous version of the app was wrapped and uploaded to the Intune console.
  • Narzędzie opakowujące aplikacje usługi Intune dla systemu iOS wydało nową wersję, która oferuje kluczowe poprawki usterek i nowe funkcje zasad ochrony aplikacji, przeznaczone specjalnie dla usługi Intune.The Intune App Wrapping Tool for iOS has released a new version that enables key bug fixes, or new, specific Intune application protection policy features. Taka sytuacja występuje co 6–8 tygodni za pośrednictwem repozytorium GitHub dla narzędzia opakowującego aplikacje usługi Intune dla systemu iOS.This happens after 6-8 weeks through GitHub repo for the Microsoft Intune App Wrapping Tool for iOS.

W przypadku systemu iOS, chociaż możliwe jest opakowywanie przy użyciu profilu aprowizacji/certyfikatu innego niż oryginalnie zastosowany do podpisania aplikacji, jeśli uprawnienia określone w aplikacji nie zostaną uwzględnione w nowym profilu aprowizacji, opakowywanie nie powiedzie się.For iOS, while it is possible to wrap with different cert/provisioning profile than the original used to sign the app, if the entitlements specified in the app are not included in the new provisioning profile, wrapping will fail. Użycie opcji „-e” wiersza polecenia, która usuwa wszystkie brakujące uprawnienia z aplikacji, w celu wymuszenia zakończenia opakowywania powodzeniem w tym scenariuszu może spowodować uszkodzenie funkcjonalności aplikacji.Using the “-e” command-line option, which removes any missing entitlements from the app, to force wrapping to not fail in this scenario can cause broken functionality in the app.

Niektóre najlepsze rozwiązania dotyczące ponownego opakowywania:Some best practices for rewrapping include:

  • Upewnienie się, że inny profil aprowizacji ma wszystkie wymagane uprawnienia dowolnego poprzedniego profilu aprowizacji.Ensuring that a different provisioning profile has all the required entitlements as any previous provisioning profile.

Komunikaty o błędach i pliki dziennikaError messages and log files

Skorzystaj z poniższych informacji przy rozwiązywaniu problemów z narzędziem opakowującym aplikacje.Use the following information to troubleshoot issues you have with the app wrapping tool.

Komunikaty o błędachError messages

Jeśli przetwarzanie aplikacji przez narzędzie opakowujące aplikacje nie powiedzie się, w konsoli zostanie wyświetlony jeden z następujących komunikatów o błędach:If the app wrapping tool fails to finish successfully, one of the following error messages will be displayed in the console:

Komunikat o błędzieError message Więcej informacjiMore information
Należy określić prawidłowy profil inicjowania obsługi administracyjnej systemu iOS.You must specify a valid iOS provisioning profile. Twój profil inicjowania obsługi administracyjnej może być nieprawidłowy.Your provisioning profile might not be valid. Upewnij się, że masz odpowiednie uprawnienia do urządzeń oraz że Twój profil prawidłowo wskazuje programowanie lub dystrybucję.Check to make sure you have the correct permissions for devices and that your profile is correctly targeting development or distribution. Twój profil inicjowania obsługi administracyjnej mógł również wygasnąć.Your provisioning profile might also be expired.
Określ prawidłową nazwę aplikacji wejściowej.Specify a valid input application name. Upewnij się, że podana nazwa aplikacji wejściowej jest prawidłowa.Make sure that the input application name you specified is correct.
Określ prawidłową ścieżkę do aplikacji wyjściowej.Specify a valid path to the output application. Upewnij się, że podana ścieżka do aplikacji wyjściowej istnieje i że jest prawidłowa.Make sure that the path to the output application you specified exists, and is correct.
Określ prawidłowy wejściowy profil aprowizacji.Specify a valid input provisioning profile. Upewnij się, że podana nazwa oraz rozszerzenie profilu aprowizacji są prawidłowe.Make sure you supplied a valid provisioning profile name and extension. Być może nie wprowadzono opcji wiersza poleceń –p lub w Twoim profilu aprowizacji brakuje uprawnień.Your provisioning profile might be missing entitlements, or you might not have included the –p command line option.
Nie odnaleziono wskazanej aplikacji wejściowej.The input application you specified was not found. Określ prawidłową nazwę i ścieżkę aplikacji wejściowej.Specify a valid input application name and path. Upewnij się, że podana ścieżka do aplikacji wejściowej istnieje i że jest prawidłowa.Make sure your input app path is valid and exists. Upewnij się, że aplikacja wejściowa znajduje się w tej lokalizacji.Make sure the input app exists at that location.
Nie odnaleziono wskazanego wejściowego profilu inicjowania obsługi administracyjnej.The input provisioning profile file you specified was not found. Określ prawidłowy plik wejściowego profilu inicjowania obsługi administracyjnej.Specify a valid input provisioning profile file. Upewnij się, że podana ścieżka do pliku wejściowego profilu inicjowania obsługi administracyjnej jest prawidłowa i że podany plik istnieje.Make sure that the path to the input provisioning file is valid and that the file you specified exists.
Nie odnaleziono wskazanego folderu aplikacji wyjściowej.The output application folder you specified was not found. Określ prawidłową ścieżkę do aplikacji wyjściowej.Specify a valid path to the output application. Upewnij się, że podana ścieżka wyjściowa istnieje i że jest prawidłowa.Make sure that the output path you specified is valid and exists.
Aplikacja wyjściowa nie ma rozszerzenia .ipa.Output app does not have .ipa extension. Narzędzie opakowujące aplikacje obsługuje wyłącznie aplikacje z rozszerzeniami app oraz ipa.Only apps with the .app and .ipa extensions are accepted by the App Wrapping Tool. Upewnij się, że plik wyjściowy ma właściwe rozszerzenie.Make sure your output file has a valid extension.
Określono nieprawidłowy certyfikat podpisywania.An invalid signing certificate was specified. Określ prawidłowy certyfikat podpisywania firmy Apple.Specify a valid Apple signing certificate. Upewnij się, że pobrano prawidłowy certyfikat podpisywania z portalu dla deweloperów firmy Apple.Make sure you’ve downloaded the correct signing certificate from the Apple developer portal. Być może certyfikat wygasł albo brakuje klucza publicznego lub prywatnego.Your certificate might be expired or might be missing a public or private key. Jeśli do prawidłowego podpisania aplikacji w programie Xcode można użyć certyfikatu firmy Apple i profilu inicjowania obsługi administracyjnej, można ich użyć również w narzędziu opakowującym aplikacje.If your Apple certificate and provisioning profile can be used to correctly sign an app within Xcode, then they are valid for the App Wrapping Tool.
Wskazana aplikacja wejściowa jest nieprawidłowa.The input application you specified is invalid. Określ prawidłową aplikację.Specify a valid application. Upewnij się, że masz prawidłową aplikację dla systemu iOS skompilowaną w formacie pliku .app lub .ipa.Make sure you have a valid iOS application that has been compiled as an .app or .ipa file.
Wskazana aplikacja wejściowa jest zaszyfrowana.The input application you specified is encrypted. Określ prawidłową niezaszyfrowaną aplikację.Specify a valid unencrypted application. Narzędzie opakowujące aplikacje nie obsługuje aplikacji zaszyfrowanych.The App Wrapping Tool does not support encrypted apps. Wprowadź aplikację niezaszyfrowaną.Provide an unencrypted app.
Wskazana aplikacja wejściowa nie jest w formacie PIE (Position Independent Executable).The input application you specified is not in a Position Independent Executable (PIE) format. Określ prawidłową aplikację w formacie PIE.Specify a valid application in PIE format. Aplikacje w formacie PIE mogą być uruchamiane w losowym adresie pamięci,Position Independent Executable (PIE) apps can be loaded at a random memory address when run. co może korzystnie wpływać na bezpieczeństwo.This can have security benefits. Więcej informacji na ten temat zawiera dokumentacja dla deweloperów firmy Apple.For more about security benefits, see your Apple Developer documentation.
Wskazana aplikacja wejściowa jest już opakowana.The input app you specified has already been wrapped. Określ prawidłową nieopakowaną aplikację.Specify a valid unwrapped application. Nie można przetwarzać aplikacji, które zostały już przetworzone przez narzędzie.You cannot process an app that has already been processed by the tool. Jeśli chcesz ponownie przetworzyć aplikację, należy uruchomić narzędzie z oryginalną wersją aplikacji.If you want to process an app again, run the tool using the original version of the app.
Wskazana aplikacja wejściowa nie jest podpisana.The input application you specified is not signed. Określ prawidłową podpisaną aplikację.Specify a valid signed application. Narzędzie opakowujące aplikacje wymaga, aby aplikacje były podpisane.The app wrapping tool requires apps to be signed. Sposób podpisywania opakowanych aplikacji opisuje dokumentacja dla deweloperów.Consult your developer documentation to learn how to sign a wrapped app.
Wskazana aplikacja wejściowa musi mieć format .ipa lub .app.The input application you specified must be in the .ipa or .app format. Narzędzie opakowujące aplikacje obsługuje wyłącznie pliki z rozszerzeniami .app oraz .ipa.Only .app and .ipa extensions are accepted by the app wrapping tool. Upewnij się, że plik wejściowy ma prawidłowe rozszerzenie i został skompilowany w formacie .app lub .ipa.Make sure your input file has a valid extension and has been compiled as a .app or .ipa file.
Wskazana aplikacja wejściowa jest już opakowana i korzysta z najnowszej wersji szablonu zasad.The input app you specified has already been wrapped and is on the latest policy template version. Narzędzie opakowujące aplikacje nie opakuje ponownie istniejącej opakowanej aplikacji korzystającej z najnowszej wersji szablonu zasad.The App Wrapping Tool will not rewrap an existing wrapped app with the latest policy template version.
OSTRZEŻENIE: nie określono skrótu SHA1 certyfikatu.WARNING: You did not specify a SHA1 certificate hash. Przed wdrożeniem upewnij się, że opakowana aplikacja jest podpisana.Make sure that your wrapped application is signed before deploying. Upewnij się, że po właściwości wiersza polecenia –c podano prawidłowy skrót SHA1.Ensure that you specify a valid SHA1 hash following the –c command line flag.

Pliki dziennika narzędzia opakowującego aplikacjeLog files for the App Wrapping Tool

Przetwarzanie aplikacji za pomocą narzędzia opakowującego aplikacje wiąże się z generowaniem dzienników zapisywanych w konsoli urządzenia klienta systemu iOS.Apps that have been wrapped by using the App Wrapping Tool generate logs that are written to the iOS client device console. Informacje te są przydatne w przypadku wystąpienia problemów z aplikacją, gdy konieczne jest ustalenie, czy problem jest związany z narzędziem opakowującym aplikacje.This information is useful when you are having problems with the application and need to determine if the issue is related to the App Wrapping Tool. Aby uzyskać dostęp do tych informacji, wykonaj następujące czynności:To retrieve this information, use the following steps:

  1. Uruchom aplikację, aby problem wystąpił ponownie.Reproduce the issue by running the app.

  2. Zbierz dane wyjściowe z konsoli zgodnie z instrukcjami debugowania wdrożonych aplikacji dla systemu iOSfirmy Apple.Collect the console output by following Apple's instructions for Debugging Deployed iOS Apps.

  3. Przefiltruj zapisane dzienniki, aby uzyskać wyniki związane z ograniczeniami aplikacji, wprowadzając w konsoli następujący skrypt:Filter the saved logs for App Restrictions output by entering the following script into the console:

    grep “IntuneAppRestrictions” <text file containing console output> > <required filtered log file name>
    

    Przefiltrowane dzienniki można przesłać do firmy Microsoft.You can submit the filtered logs to Microsoft.

    Uwaga

    W pliku dziennika pozycja „build version” („wersja kompilacji”) oznacza wersję kompilacji narzędzia Xcode.In the log file, the item ‘build version’ represents the build version of Xcode.

    Przetworzone aplikacje oferują również użytkownikom możliwość przesyłania dzienników pocztą e-mail bezpośrednio z urządzenia po awarii aplikacji.Wrapped apps will also present users the option to send logs directly from the device via email after the app crashes. Dzienniki otrzymane od użytkowników możesz zbadać i w razie potrzeby przesłać do firmy Microsoft.Users can send the logs to you to examine and forward to Microsoft if necessary.

Wymagania dotyczące certyfikatu, profilu inicjowania obsługi administracyjnej i uwierzytelnianiaCertificate, provisioning profile, and authentication requirements

Pełna funkcjonalność narzędzia opakowującego aplikacje dla systemu iOS wymaga spełnienia pewnych wymagań.The App Wrapping Tool for iOS has some requirements that must be met in order to guarantee full functionality.

WymaganieRequirement SzczegółyDetails
Profil aprowizacji systemu iOSiOS provisioning profile Przed wprowadzeniem profilu aprowizacji upewnij się, że jest on prawidłowy.Make sure that the provisioning profile is valid before you include it. Podczas przetwarzania aplikacji dla systemu iOS narzędzie opakowujące aplikacje nie sprawdza, czy profil nie wygasł.The App Wrapping Tool does not check whether the provisioning profile is expired when processing an iOS app. Jeśli zostanie wprowadzony wygasły profil aprowizacji, narzędzie opakowujące aplikacje uwzględni go, a problem zostanie zauważony dopiero po niepowodzeniu instalacji aplikacji na urządzeniu z systemem iOS.If an expired provisioning profile is specified, the app wrapping tool will include the expired provisioning profile, and you will not know there is a problem until the app fails to install on an iOS device.
Certyfikat podpisywania systemu iOSiOS signing certificate Przed wprowadzeniem certyfikatu podpisywania upewnij się, że jest on prawidłowy.Make sure that the signing certificate is valid before you specify it. Narzędzie opakowujące aplikacje podczas przetwarzania aplikacji dla systemu iOS nie sprawdza, czy certyfikat nie wygasł.The tool does not check whether a certificate is expired when processing iOS apps. W przypadku wprowadzenia skrótu wygasłego certyfikatu aplikacja zostanie przetworzona i podpisana przez narzędzie, ale nie będzie można jej instalować na urządzeniach.If the hash for an expired certificate is provided, the tool will process and sign the app, but it will fail to install on devices.

Upewnij się, że certyfikat służący do podpisywania opakowanej aplikacji jest zgodny z profilem aprowizacji.Make sure that the certificate provided for signing the wrapped app has a match in the provisioning profile. Narzędzie nie sprawdza zgodności profilu i certyfikatu wprowadzonego w celu podpisania opakowanej aplikacji.The tool does not validate if the provisioning profile has a match for the certificate provided for signing the wrapped application.
UwierzytelnianieAuthentication Aby szyfrowanie działało, urządzenie musi mieć numer PIN.A device must have a PIN for encryption to work. Na urządzeniach, na których wdrożono opakowaną aplikację, dotknięcie paska stanu spowoduje konieczność ponownego zalogowania użytkownika przy użyciu konta służbowego.On devices to which you have deployed a wrapped app, touching the status bar on the device will require the user to sign in again with a work or school account. Domyślne zasady opakowanej aplikacji to uwierzytelnianie przy ponownym uruchamianiu.The default policy in a wrapped app is authentication on re-launch. System iOS obsługuje zewnętrzne powiadomienia (na przykład połączenie telefoniczne) podczas kończenia pracy aplikacji, a następnie jej ponownego uruchamiania.iOS handles any external notification (like a phone call) by exiting the app and then re-launching it.

Ustawianie uprawnień dla aplikacjiSetting app entitlements

Przed opakowaniem aplikacji można przyznać uprawnienia w celu zapewnienia jej dodatkowych uprawnień i możliwości, którymi aplikacje zwykle nie dysponują.Before wrapping your app, you can grant entitlements to give the app additional permissions and capabilities that exceed what an app can typically do. Aby określić dla aplikacji specjalne uprawnienia, takie jak dostęp do udostępnionego łańcucha kluczy, na etapie podpisywania kodu używany jest plik uprawnień.An entitlement file is used during code signing to specify special permissions within your app (for example, access to a shared keychain). Usługi specyficzne dla aplikacji (nazywane możliwościami) są włączane w środowisku Xcode podczas opracowywania aplikacji.Specific app services called capabilities are enabled within Xcode during app development. Po włączeniu te możliwości są odzwierciedlane w pliku uprawnień.Once enabled, the capabilities are reflected in your entitlements file. Aby uzyskać więcej informacji dotyczących uprawnień i możliwości, zobacz Dodawanie możliwości w bibliotece deweloperów systemu iOS.For more information about entitlements and capabilities, see Adding Capabilities in the iOS Developer Library. Aby uzyskać pełną listę obsługiwanych możliwości, zobacz Obsługiwane możliwości.For a complete list of supported capabilities, see Supported capabilities.

Obsługiwane możliwości narzędzia opakowującego aplikacje dla systemu iOSSupported capabilities for the App Wrapping Tool for iOS

MożliwośćCapability OpisDescription Zalecane wskazówkiRecommended guidance
Grupy aplikacjiApp groups Dzięki grupom aplikacji można umożliwić wielu aplikacjom dostęp do udostępnionych kontenerów i zezwolić na dodatkową komunikację międzyprocesową między aplikacjami.Use app groups to allow multiple apps to access shared containers and allow additional interprocess communication between apps.

Aby włączyć grupy aplikacji, otwórz okienko Możliwości i kliknij przełącznik WŁ. w sekcji Grupy aplikacji.To enable app groups, open the Capabilities pane and click ON in App Groups. Można dodać grupy aplikacji lub wybrać istniejące.You can add app groups or select existing ones.
Podczas korzystania z grup aplikacji należy używać odwrotnej notacji DNS:When using App Groups, use reverse DNS notation:

grupa.com.nazwa_firmy.grupa_aplikacjigroup.com.companyName.AppGroup
Tryby tłaBackground modes Włączenie trybów tła umożliwia aplikacji systemu iOS kontynuowanie działania w tle.Enabling background modes lets your iOS app continue running in the background.
Ochrona danychData protection Ochrona danych dodaje poziom zabezpieczeń do plików przechowywanych na dysku przez aplikację systemu iOS.Data protection adds a level of security to files stored on disk by your iOS app. Ochrona danych korzysta z wbudowanego w konkretnym urządzeniu sprzętu do szyfrowania w celu przechowywania plików na dysku w postaci zaszyfrowanej.Data protection uses the built-in encryption hardware present on specific devices to store files in an encrypted format on disk. Twoja aplikacja powinna być przygotowana do korzystania z ochrony danych.Your app needs to be provisioned to use data protection.
Zakup w aplikacjiIn-app purchase Funkcja zakupu w aplikacji pozwala osadzić sklep bezpośrednio w aplikacji, co umożliwia nawiązanie połączenia ze sklepem i bezpieczne przetworzenie płatności użytkownika.In-app purchase embeds a store directly into your app by enabling you to connect to the store and securely process payments from the user. Funkcji zakupu w aplikacji można użyć do zbierania płatności na potrzeby rozszerzenia funkcjonalności lub dodania zawartości możliwej do przetworzenia przez aplikację.You can use in-app purchase to collect payment for enhanced functionality or for additional content usable by your app.
Udostępnianie pęku kluczyKeychain sharing Włączenie udostępniania pęku kluczy umożliwia aplikacji udostępnianie haseł przechowywanych w pęku kluczy innym aplikacjom opracowywanym przez dany zespół.Enabling keychain sharing lets your app share passwords in the keychain with other apps developed by your team. Podczas korzystania z udostępniania pęku kluczy należy używać odwrotnej notacji DNS:When using keychain sharing, use reverse DNS notation:

com.nazwa_firmy.grupa_peku_kluczycom.companyName.KeychainGroup
Osobista sieć VPNPersonal VPN Włącz osobistą sieć VPN, aby umożliwić aplikacji tworzenie niestandardowej konfiguracji sieci VPN w systemie i sterowanie nią za pomocą środowiska rozszerzenia sieci.Enable personal VPN to allow your app to create and control a custom system VPN configuration using the Network Extension framework.
Powiadomienia wypychanePush notifications Usługa Apple Push Notification Service (APNs) umożliwia aplikacji, która nie jest uruchomiona na pierwszym planie, powiadomienie użytkownika o oczekujących informacjach.Apple Push Notification service (APNs) lets an app that isn’t running in the foreground notify the user that it has information for the user. Aby powiadomienia wypychane mogły działać, należy użyć profilu inicjowania obsługi administracyjnej dla aplikacji.For push notifications to work, you need to use an app-specific provisioning profile.

Postępuj zgodnie z instrukcjami znajdującymi się w dokumentacji dla deweloperów firmy Apple.Follow the steps in the Apple developer documentation.
Konfiguracja akcesoriów sieci bezprzewodowejWireless accessory configuration Włączenie konfiguracji akcesoriów sieci bezprzewodowej powoduje dodanie do projektu zewnętrznego środowiska akcesoriów i umożliwia aplikacji skonfigurowanie akcesoriów Wi-Fi MFi.Enabling wireless accessory configuration adds the External Accessory framework to your project and lets your app set up MFi Wi-Fi accessories.

Kroki umożliwiające włączenie uprawnieńSteps to enable entitlements

  1. Włącz możliwości w swojej aplikacji:Enable capabilities in your app:

    a.a. W środowisku Xcode przejdź do elementu docelowego aplikacji i kliknij okienko Możliwości.In Xcode, go to your app’s target, and click Capabilities.

    b.b. Włącz odpowiednie możliwości.Turn on the appropriate capabilities. Aby uzyskać szczegółowe informacje dotyczące poszczególnych możliwości oraz sposobu określania poprawnych wartości, zobacz Dodawanie możliwości w bibliotece deweloperów systemu iOS.For detailed information about each capability and how to determine the correct values, see Adding Capabilities in the iOS Developer Library.

    c.c. Zanotuj wszystkie identyfikatory, które zostały utworzone podczas tego procesu.Note any IDs that you created during the process. Mogą być one również określane jako wartości AppIdentifierPrefix.These may also be referred to as the AppIdentifierPrefix values.

    d.d. Skompiluj i podpisz swoją aplikację w celu jej opakowania.Build and sign your app to be wrapped.

  2. Włącz uprawnień w Twoim profilu inicjowania obsługi administracyjnej:Enable entitlements in your provisioning profile:

    a.a. Zaloguj się do witryny Member Center przeznaczonej dla deweloperów firmy Apple.Sign in to the Apple Developer Member Center.

    b.b. Utwórz profil inicjowania obsługi administracyjnej dla swojej aplikacji.Create a provisioning profile for your app. Aby uzyskać instrukcje, zobacz How to Obtain the Prerequisites for the Intune App Wrapping Tool for iOS (Jak uzyskać wymagania wstępne dotyczące narzędzia opakowującego aplikacje dla systemu iOS w usłudze Intune).For instructions, see How to Obtain the Prerequisites for the Intune App Wrapping Tool for iOS.

    c.c. W swoim profilu inicjowania obsługi administracyjnej włącz takie same uprawnienia, jakie ma Twoja aplikacja.In your provisioning profile, enable the same entitlements that you have in your app. Będzie konieczne podanie takich samych identyfikatorów (wartości AppIdentifierPrefix), jakie zostały określone podczas opracowywania aplikacji.You will need to supply the same IDs (the AppIdentifierPrefix values) that you specified during the development of your app.

    d.d. Zakończ pracę Kreatora profilu aprowizacji i pobierz odpowiedni plik.Finish the provisioning profile wizard and download your file.

  3. Upewnij się, że zostały spełnione wszystkie wymagania wstępne, a następnie opakuj aplikację.Ensure that you have satisfied all the prerequisites, and then wrap the app.

Rozwiązywanie typowych problemów z uprawnieniamiTroubleshoot common errors with entitlements

Jeśli w narzędziu opakowującym aplikacje dla systemu iOS jest wyświetlany błąd uprawnień, spróbuj wykonać następujące kroki w celu rozwiązania problemu.If the App Wrapping Tool for iOS shows an entitlement error, try the following troubleshooting steps.

ProblemIssue PrzyczynaCause RozwiązanieResolution
Nie można przeanalizować uprawnień wygenerowanych z aplikacji wejściowej.Failed to parse entitlements generated from the input application. Narzędzie opakowujące aplikacje nie może odczytać pliku uprawnień, który został wyodrębniony z aplikacji.The App Wrapping Tool cannot read the entitlements file that was extracted from the app. Plik uprawnień może być nieprawidłowo uformowany.The entitlements file might be malformed. Sprawdź plik uprawnień dla swojej aplikacji.Inspect the entitlements file for your app. Postępuj zgodnie z poniższymi instrukcjami.The following instructions explain how to do so. Podczas sprawdzania pliku uprawnień sprawdź, czy nie zawiera on nieprawidłowo sformatowanej składni.When inspecting the entitlements file, check for any malformed syntax. Ten plik powinien być w formacie XML.The file should be in XML format.
W profilu inicjowania obsługi administracyjnej brakuje uprawnień (brakujące uprawnienia są wymienione).Entitlements are missing in the provisioning profile (missing entitlements are listed). Spakuj ponownie aplikację razem z profilem inicjowania obsługi administracyjnej, który zawiera te uprawnienia.Repackage the app with a provisioning profile that has these entitlements. Wystąpiła niezgodność między uprawnieniami włączonymi w profilu inicjowania obsługi administracyjnej i możliwościami włączonymi w aplikacji.There is a mismatch between the entitlements enabled in the provisioning profile and the capabilities enabled in the app. Ta niezgodność dotyczy także identyfikatorów skojarzonych z konkretnymi możliwościami (np. grupy aplikacji, dostęp do pęku kluczy itp.).This mismatch also applies to the IDs associated with particular capabilities (like app groups and keychain access). Ogólnie rzecz biorąc, można utworzyć nowy profil inicjowania obsługi administracyjnej z włączonymi takimi samymi możliwościami, jakie włączono w aplikacji.Generally, you can create a new provisioning profile that enables the same capabilities as the app. W przypadku wystąpienia niezgodności identyfikatorów w profilu i aplikacji narzędzie opakowujące aplikacje zastąpi te identyfikatory, jeśli będzie to możliwe.When IDs between the profile and app don't match, the App Wrapping Tool will replace the IDs if it is able to. Jeśli ten błąd będzie nadal się pojawiać po utworzeniu nowego profilu aprowizacji, można spróbować usunąć uprawnienia z aplikacji przy użyciu parametru –e (zobacz poniższą sekcję „Usuwanie uprawnień z aplikacji za pomocą parametru –e”).If you still get this error after creating a new provisioning profile, you can try removing entitlements from the app by using the –e parameter (see Using the –e parameter to remove entitlements from an app section).

Wyszukiwanie istniejących uprawnień podpisanej aplikacjiFind the existing entitlements of a signed app

Aby przejrzeć istniejące uprawnienia podpisanej aplikacji i profilu inicjowania obsługi administracyjnej:To review the existing entitlements of a signed app and provisioning profile:

  1. Znajdź plik ipa i zmień jego rozszerzenie na zip.Find the .ipa file and change its the extension to .zip.

  2. Rozwiń plik zip.Expand the .zip file. Spowoduje to utworzenie folderu Payload zawierającego pakiet app.This will produce a Payload folder containing your .app bundle.

  3. Za pomocą narzędzia codesign sprawdź uprawnienia w pakiecie app, gdzie YourApp.app jest rzeczywistą nazwą pakietu app:Use the codesign tool to check the entitlements on the .app bundle, where YourApp.app is the actual name of your .app bundle.:

    $ codesign -d --entitlements :- "Payload/YourApp.app"
    
  4. Za pomocą narzędzia security sprawdź uprawnienia osadzonego w aplikacji profilu aprowizacji, gdzie YourApp.app jest rzeczywistą nazwą pakietu app.Use the security tool to check the entitlements of the app's embedded provisioning profile, where YourApp.app is the actual name of your .app bundle.

    $ security -D -i "Payload/YourApp.app/embedded.mobileprovision"
    

Usuwanie uprawnień z aplikacji za pomocą parametru –eRemove entitlements from an app by using the –e parameter

To polecenie usuwa wszystkie włączone możliwości w aplikacji, które nie znajdują się w pliku uprawnień.This command removes any enabled capabilities in the app that are not in the entitlements file. Usunięcie możliwości używanych przez aplikację może spowodować nieprawidłowe działanie aplikacji.If you remove capabilities that are being used by the app, it can break your app. Na przykład można usunąć brakujące możliwości, jeśli w aplikacji opracowanej przez dostawcę są domyślnie włączone wszystkie możliwości.An example of where you might remove missing capabilities is in a vendor-produced app that has all capabilities by default.

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager –i /<path of input app>/<app filename> -o /<path to output folder>/<app filename> –p /<path to provisioning profile> –c <SHA1 hash of the certificate> -e

Funkcje zabezpieczeń i ochrony prywatności narzędzia opakowującego aplikacjeSecurity and privacy for the App Wrapping Tool

Podczas korzystania z narzędzia opakowującego aplikacje należy stosować poniższe dobre praktyki dotyczące zabezpieczeń i ochrony prywatności.Use the following security and privacy best practices when you use the App Wrapping Tool.

  • Certyfikat podpisywania, profil aprowizacji oraz aplikacja biznesowa do przetworzenia muszą znajdować się na tym samym komputerze z systemem Mac OS, na którym jest uruchamiane narzędzie opakowujące aplikacje.The signing certificate, provisioning profile, and the line-of-business app you specify must be on the same macOS machine that you use to run the app wrapping tool. Jeśli pliki znajdują się na ścieżce UNC, upewnij się, że są one dostępne z tego komputera z systemem Mac OS.If the files are on a UNC path, ensure that these are accessible from the macOS machine. Ścieżka musi być zabezpieczona za pomocą protokołu IPsec lub funkcji podpisywania protokołu SMB.The path must be secured via IPsec or SMB signing.

    Opakowana aplikacja zaimportowana do konsoli administracyjnej powinna znajdować się na tym samym komputerze, na którym jest uruchamiane narzędzie.The wrapped application imported into the admin console should be on the same computer that you run the tool on. Jeśli plik znajduje się w ścieżce UNC, upewnij się, że jest dostępny na komputerze, na którym uruchomiono konsolę administracyjną.If the file is on a UNC path, ensure that it is accessible on the computer running the admin console. Ścieżka musi być zabezpieczona za pomocą protokołu IPsec lub funkcji podpisywania protokołu SMB.The path must be secured via IPsec or SMB signing.

  • Środowisko, w którym narzędzie opakowujące aplikacje zostanie pobrane z repozytorium w witrynie GitHub, musi być zabezpieczone za pomocą protokołu IPsec lub funkcji podpisywania protokołu SMB.The environment where the App Wrapping Tool is downloaded from the GitHub repository needs to be secured via IPsec or SMB signing.

  • W celu zabezpieczenia przed atakami przetwarzane aplikacje muszą pochodzić z zaufanego źródła.The app you process must come from a trustworthy source to ensure protection against attacks.

  • Upewnij się, że folder wyjściowy wskazany w narzędziu opakowującym aplikacje jest zabezpieczony, zwłaszcza gdy jest to folder zdalny.Ensure that the output folder you specify in the App Wrapping Tool is secured, particularly if it is a remote folder.

  • Aplikacje dla systemu iOS zawierające okno dialogowe przekazywania plików mogą umożliwiać użytkownikom obejście zastosowanych do aplikacji ograniczeń wycinania, kopiowania i wklejania.iOS apps that include a file upload dialog box can allow users to circumvent, cut, copy, and paste restrictions applied to the app. Użytkownik może na przykład użyć okna dialogowego przekazywania plików do przekazania zrzutu ekranu zawierającego dane aplikacji.For example, a user could use the file upload dialog box to upload a screenshot of the app data.

  • W przypadku monitorowania folderu dokumentów na urządzeniu przy użyciu opakowanej aplikacji może być widoczny folder o nazwie .msftintuneapplauncher.When you monitor the documents folder on your device from within a wrapped app, you might see a folder named .msftintuneapplauncher. Modyfikacja lub usunięcie tego pliku może zakłócić działanie aplikacji z ograniczeniami.If you change or delete this file, it might affect the correct functioning of restricted apps.

Narzędzie opakowujące aplikacje dla systemu iOS w usłudze Intune z siecią mVPN w technologii Citrix MDXIntune App Wrapping Tool for iOS with Citrix MDX mVPN

Ta funkcja jest integracją z narzędziem opakowującym aplikacje Citrix MDX dla systemu iOS.This feature is an integration with the Citrix MDX app wrapper for iOS. Integracja to po prostu dodatkowa, opcjonalna flaga wiersza polecenia, -citrix, do użycia z ogólnymi narzędziami opakowującymi aplikacje w usłudze Intune.The integration is simply an additional, optional command-line flag, -citrix to the general Intune App Wrapping Tools.

WymaganiaRequirements

Aby używać flagi -citrix, należy również zainstalować narzędzie opakowujące aplikacje Citrix MDX dla systemu iOS na tej samej maszynie z systemem macOS.To use the -citrix flag, you will also need to install the Citrix MDX app wrapper for iOS on the same macOS machine. Pliki do pobrania znajdują się w witrynie Citrix XenMobile Downloads i są ograniczone tylko do zalogowanych klientów firmy Citrix.The downloads are found on Citrix XenMobile Downloads and are restricted to Citrix customers only after signing in. Upewnij się, że to narzędzie zostało zainstalowane w lokalizacji domyślnej: /Applications/Citrix/MDXToolkit.Make sure this is installed in the default location: /Applications/Citrix/MDXToolkit.

Uwaga

Obsługa integracji usług Intune i Citrix jest ograniczona tylko urządzeń z systemem iOS 10+.Support for Intune and Citrix integration is limited to iOS 10+ devices only.

Używanie flagi -citrixUse the -citrix flag

Wystarczy uruchomić ogólne polecenie opakowujące aplikację z dołączoną flagą -citrix.Simply run your general app wrapping command and with the -citrix flag appended. Flaga -citrix aktualnie nie przyjmuje żadnych argumentów.The -citrix flag currently does not take any arguments.

Format użycia:Usage format:

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i /<path of input app>/<app filename> -o /<path to output folder>/<app filename> -p /<path to provisioning profile> -c <SHA1 hash of the certificate> [-b [<output app build string>]] [-v] [-e] [-x /<array of extension provisioing profile paths>] [-citrix]

Przykładowe polecenie:Example command:

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i ~/Desktop/MyApp.ipa -o ~/Desktop/MyApp_Wrapped.ipa -p ~/Desktop/My_Provisioning_Profile_.mobileprovision -c 12A3BC45D67EF8901A2B3CDEF4ABC5D6E7890FAB  -v true -citrix

Pobieranie dzienników opakowanych aplikacjiGetting logs for your wrapped applications

Wykonaj następujące kroki, aby podczas rozwiązywania problemów pobrać dzienniki opakowanych aplikacji.Use the following steps to get logs for your wrapped applications during troubleshooting.

  1. Przejdź do aplikacji Ustawienia systemu iOS na urządzeniu i wybierz aplikację LOB.Go to the iOS Settings app on your device and select your LOB app.
  2. Przełącz opcję Diagnostics Console (Konsola diagnostyczna) na ustawienie On (Włączona).Toggle the Diagnostics Console to On.
  3. Uruchom aplikację LOB.Launch your LOB application.
  4. Kliknij link „Wprowadzenie”.Click on the "Get Started" link.
  5. Możesz teraz udostępniać dzienniki za pośrednictwem poczty e-mail lub przez ich skopiowanie do lokalizacji usługi OneDrive.You can now share logs through email or copying them to a OneDrive location.

Uwaga

Funkcja rejestrowania jest włączona dla aplikacji, które zostały opakowane za pomocą dostępnego w usłudze Intune narzędzia opakowującego aplikacje w wersji 7.1.13 lub nowszej.The logging functionality is enabled for apps that have wrapped with the Intune App Wrapping Tool version 7.1.13 or above.

Zobacz takżeSee also