Dela via


Intune App SDK för iOS – Funktioner för appdeltagande

Med Microsoft Intune App SDK för iOS kan du införliva Intune appskyddsprinciper (även kallade APP- eller MAM-principer) i din interna iOS-app. Ett Intune-hanterat program är ett program som är integrerat med Intune App SDK. Intune administratörer kan enkelt distribuera appskyddsprinciper till din Intune-hanterade app när Intune aktivt hanterar appen.

Obs!

Den här guiden är uppdelad i flera olika steg. Börja med att granska Planera integreringen.

Steg 4: Funktioner för app med deltagande

Steg Goals

  • Lär dig mer om de olika funktioner för app deltagande som erbjuds av Intune App SDK.
  • Integrera funktioner för att delta i appar som är relevanta för din app och dina användare.
  • Testa integreringen av dessa funktioner.

Vad är "App Participation Features"?

Den här SDK-integreringsprocessen försöker minimera mängden appspecifik kod som utvecklare behöver skriva. Genom att slutföra de tidigare stegen i SDK-integreringen kan din app nu framtvinga de flesta principinställningar för appskydd, till exempel filkryptering, begränsningar för kopiering/inklistring, blockering av skärmbilder och dataöverföringsbegränsningar.

Det finns dock vissa inställningar som kräver appspecifik kod för att framtvinga korrekt; dessa kallas funktioner för app deltagande. Vanligtvis har SDK:t inte tillräckligt med kontext om programmets kod eller slutanvändarscenariot för att automatiskt framtvinga de här inställningarna, och därför förlitar sig utvecklarna på att anropa SDK-API:erna på rätt sätt.

Appandelsfunktioner är inte nödvändigtvis valfria. Beroende på appens befintliga funktioner kan dessa funktioner krävas.

I nästa steg i den här guiden beskrivs flera viktiga funktioner för app deltagande:

Resten av den här guiden beskriver den återstående uppsättningen funktioner för app deltagande:

  • Implementera tillåtna konton
  • Implementera filkryptering krävs
  • Implementera save-as- och open-from-kontroller
  • Dela data via UIActivityViewController
  • Aktivera riktad konfiguration (APP/MAM-appkonfiguration) för dina iOS-program
  • Telemetri
  • Siri-avsikter
  • Appklipp
  • Utskrift
  • Meddelanden
  • Publicera build-skript

Anpassa appens beteende med API:er

Intune App SDK har flera API:er som du kan anropa för att få information om Intune APP-principen som distribueras till appen. Du kan använda dessa data för att anpassa appens beteende. Följande tabell innehåller information om några viktiga Intune klasser som du använder.

Klass Beskrivning
IntuneMAMPolicyManager.h Klassen IntuneMAMPolicyManager exponerar den Intune APP-princip som distribuerats till programmet. I synnerhet exponeras API:er som är användbara för att aktivera flera identiteter.
IntuneMAMPolicy.h Klassen IntuneMAMPolicy visar vissa MAM-principinställningar som gäller för appen. De flesta av dessa principinställningar exponeras så att appen kan anpassa sitt användargränssnitt. De flesta principinställningar tillämpas av SDK och inte av appen. Det finns dock vissa undantag. Apputvecklare bör granska kommentarerna i det här huvudet för att avgöra vilka API:er som gäller för deras programs scenarier.
IntuneMAMFileProtectionManager.h Klassen IntuneMAMFileProtectionManager exponerar API:er som appen kan använda för att uttryckligen skydda filer och kataloger baserat på en angiven identitet. Identiteten kan hanteras av Intune eller ohanterad, och SDK:t tillämpar lämplig MAM-princip. Det är valfritt att använda den här klassen.
IntuneMAMDataProtectionManager.h Klassen IntuneMAMDataProtectionManager exponerar API:er som appen kan använda för att skydda databuffertar med en angiven identitet. Identiteten kan hanteras av Intune eller ohanterad, och SDK:t tillämpar kryptering på lämpligt sätt.

Implementera tillåtna konton

Intune låter IT-administratörer ange vilka konton som kan loggas in av användaren. Appar kan fråga Intune App SDK för den angivna listan över tillåtna konton och sedan se till att endast tillåtna konton är inloggade på enheten.

Om du vill fråga efter tillåtna konton bör appen kontrollera allowedAccounts egenskapen på IntuneMAMEnrollmentManager. Egenskapen allowedAccounts är antingen en matris som innehåller de tillåtna kontona eller noll. Om egenskapen är noll har inga tillåtna konton angetts. MSAL/OneAuth-aktiverade program bör använda allowedAccountIds egenskapen på instansen IntuneMAMEnrollmentManager för att fråga Entra-objekt-ID.

Appar kan också reagera på ändringar av allowedAccounts egenskapen genom att observera meddelandet IntuneMAMAllowedAccountsDidChangeNotification . Meddelandet publiceras när allowedAccounts egenskapen ändras i värde.

Följande krav krävs när du använder API:er för tillåtna konton:

  • Identitetsjämförelse måste vara skiftlägesokänslig för UPN och OID.
  • Identitetsjämförelse måste ha stöd för både UPN och OID.
  • Programmet måste ha loggning för att diagnostisera eventuella matchningsfel mellan det administratörsangivna kontot och det användarinloggade kontot.

Implementera filkryptering krävs

API:et isFileEncryptionRequired som definieras i IntuneMAMPolicy.h informerar program när IT-administratören kräver att program använder Intune kryptering på filer som sparas på disken. Om isFileEncryptionRequired är sant är det appens ansvar att se till att alla filer som sparas på disk av appen krypteras med API:erna i IntuneMAMFile.h, IntuneMAMFileProtectionManager.hoch IntuneMAMFDataProtectionManager.h.

Appar kan reagera på ändringar i den här principen genom att observera meddelandet IntuneMAMDataProtectionDidChangeNotification som definierats i IntuneMAMFDataProtectionManager.h.

Implementera save-as- och open-from-kontroller

Intune låter IT-administratörer välja vilka lagringsplatser en hanterad app kan spara data till eller öppna data från. Appar kan fråga Intune MAM SDK om tillåtna lagringsplatser för spara till med hjälp av API:et isSaveToAllowedForLocation:withAccountId: som definieras i IntuneMAMPolicy.h. Appar kan också fråga SDK för tillåtna öppna lagringsplatser med hjälp av API:et isOpenFromAllowedForLocation:withAccountId: , som också definieras i IntuneMAMPolicy.h.

Dessutom kan appar verifiera att inkommande data från ett resurstillägg tillåts genom att fråga API:et canReceiveSharedItemProvider: , som definieras i IntuneMAMPolicy.h. Appar kan också fråga API:et canReceiveSharedFile: för att verifiera inkommande filer från ett openURL-anrop, som också definieras i IntuneMAMPolicy.h

Obs!

Ändringar har gjorts i internt beteende från och med MAM SDK v15.1.0.

  • Ett nil konto behandlas inte längre som aktuellt konto för platserna LocalDrive/LocalStorage. Om du skickar in ett nil konto behandlas det som ett ohanterat konto. Eftersom apparna kan styra hur de hanterar sin sandbox-lagring kan och bör en identitet associeras med dessa platser.
  • Ett nil konto behandlas inte längre som aktuellt konto för appar med en enda identitet. Att skicka in ett nil konto i en app med en enda identitet kommer nu att behandlas på exakt samma sätt som om det skickades till en app med flera identiteter. Om du utvecklar en app med en enda identitet använder IntuneMAMPolicydu dem primaryUser för att referera till det aktuella kontot om det hanteras och nil för att referera till det aktuella kontot om det är ohanterat.

Hantera spara-till-scenarier

Innan du flyttar data till en ny molnlagringsplats eller lokal plats måste en app kontrollera med API:et isSaveToAllowedForLocation:withAccountId: för att veta om IT-administratören har tillåtit dataöverföringen. Den här metoden anropas för ett IntuneMAMPolicy -objekt. Data som redigeras och sparas på plats behöver inte kontrolleras med det här API:et.

Obs!

Objektet IntuneMAMPolicy ska representera principerna för ägaren av data som sparas. Anropa metoden för policyForAccountId: att hämta objektet för IntuneMAMPolicy en specifik identitetIntuneMAMPolicyManager. Om ägaren är ett ohanterat konto utan identitet nil kan skickas till policyForAccountId:. Även om de data som sparas inte är organisationsdata bör isSaveToAllowedForLocation:withAccountId: de fortfarande anropas. Kontot som äger målplatsen kan fortfarande ha principer som begränsar inkommande ohanterade data.

Metoden isSaveToAllowedForLocation:withAccountId: tar två argument. Det första argumentet är ett uppräkningsvärde av den typ IntuneMAMSaveLocation som definieras i IntuneMAMPolicy.h. Det andra argumentet är UPN för den identitet som äger platsen. Om ägaren inte är känd nil kan den användas i stället.

Lagringsplatser som stöds

Intune MAM SDK har stöd för följande lagringsplatser som definierats i IntuneMAMPolicy.h:

  • IntuneMAMSaveLocationOneDriveForBusiness– Den här platsen representerar OneDrive för företag platser. Identiteten som är associerad med OneDrive-kontot ska skickas som det andra argumentet.
  • IntuneMAMSaveLocationSharePoint– Den här platsen representerar både SharePoint online och Microsoft Entra lokala SharePoint-platser med modern hybridautentisering. Identiteten som är associerad med SharePoint-kontot ska skickas som det andra argumentet.
  • IntuneMAMSaveLocationLocalDrive – Den här platsen representerar app-sandbox-lagring som endast kan nås av appen. Den här platsen ska inte användas för att spara via en filväljare eller för att spara till filer via ett resurstillägg. Om en identitet kan associeras med app-sandbox-lagringen ska den skickas som det andra argumentet. Om det inte finns någon identitet nil bör skickas i stället. En app kan till exempel använda separata lagringscontainrar för app-sandbox för olika konton. I det här fallet bör kontot som äger containern som används användas som det andra argumentet.
  • IntuneMAMSaveLocationCameraRoll – Den här platsen representerar iOS-fotobiblioteket. Eftersom det inte finns något konto som är associerat med iOS-fotobiblioteket bör endast nil skickas som det andra argumentet när den här platsen används.
  • IntuneMAMSaveLocationAccountDocument – Den här platsen representerar alla organisationsplatser som inte tidigare angetts och som kan kopplas till ett hanterat konto. Organisationskontot som är associerat med platsen ska skickas som det andra argumentet. Du kan till exempel ladda upp ett foto till en organisations LOB-molntjänst som är knuten till organisationskontot.
  • IntuneMAMSaveLocationOther – Den här platsen representerar alla icke-organisatoriska, inte tidigare listade, eller någon okänd plats. Om ett konto är associerat med platsen ska det skickas som det andra argumentet. Annars nil bör användas i stället.
Särskilda överväganden för att spara platser

Platsen IntuneMAMSaveLocationLocalDrive bör endast användas för app-sandbox-lagring som endast kan nås av appen. För att kontrollera om en fil kan sparas i iOS-enhetens lagring via en filväljare eller någon annan metod där data kommer att vara tillgängliga i files-appen, IntuneMAMSaveLocationOther bör användas.

Om målplatsen inte visas, eller IntuneMAMSaveLocationAccountDocumentIntuneMAMSaveLocationOther ska användas. Om platsen innehåller organisationsdata som används med det hanterade kontot (dvs. LOB-molntjänst för lagring av organisationsdata) IntuneMAMSaveLocationAccountDocument bör användas. Om platsen inte innehåller organisationsdata ska platsen IntuneMAMSaveLocationOther användas.

Hantera open-from-scenarier

Innan du importerar data från en ny molnlagringsplats eller lokal plats måste en app kontrollera med API:et isOpenFromAllowedForLocation:withAccountId: för att veta om IT-administratören har tillåtit dataöverföringen. Den här metoden anropas för ett IntuneMAMPolicy -objekt. Data som öppnas på plats behöver inte kontrolleras med det här API:et.

Obs!

Objektet IntuneMAMPolicy ska representera principerna för den identitet som tar emot data. Anropa metoden för policyForAccountId: att hämta objektet för IntuneMAMPolicy en specifik identitetIntuneMAMPolicyManager. Om det mottagande kontot är ett ohanterat konto utan identitet nil kan skickas till policyForAccountId:. Även om de data som tas emot inte är organisationsdata, isOpenFromAllowedForLocation:withAccountId: bör fortfarande anropas. Kontot som äger data kan fortfarande ha principer som begränsar destinationerna för utgående dataöverföringar.

Metoden isOpenFromAllowedForLocation:withAccountId: tar två argument. Det första argumentet är ett uppräkningsvärde av den typ IntuneMAMOpenLocation som definieras i IntuneMAMPolicy.h. Det andra argumentet är UPN för den identitet som äger platsen. Om ägaren inte är känd nil kan den användas i stället.

Öppna platser som stöds

Intune MAM SDK har stöd för följande öppna platser som definieras i IntuneMAMPolicy.h:

  • IntuneMAMOpenLocationOneDriveForBusiness– Den här platsen representerar OneDrive för företag platser. Identiteten som är associerad med OneDrive-kontot ska skickas som det andra argumentet.
  • IntuneMAMOpenLocationSharePoint– Den här platsen representerar både SharePoint online och Microsoft Entra lokala SharePoint-platser med modern hybridautentisering. Identiteten som är associerad med SharePoint-kontot ska skickas som det andra argumentet.
  • IntuneMAMOpenLocationCamera - Den här platsen representerar bara nya bilder tagna av kameran. Eftersom det inte finns något konto som är associerat med iOS-kameran bör endast nil skickas som det andra argumentet när den här platsen används. Om du vill öppna data från iOS-fotobiblioteket använder du IntuneMAMOpenLocationPhotos.
  • IntuneMAMOpenLocationPhotos – Den här platsen representerar bara befintliga bilder i iOS-fotobiblioteket. Eftersom det inte finns något konto som är associerat med iOS-fotobiblioteket bör endast nil skickas som det andra argumentet när den här platsen används. Om du vill öppna bilder som tagits direkt från iOS-kameran använder du IntuneMAMOpenLocationCamera.
  • IntuneMAMOpenLocationLocalStorage – Den här platsen representerar app-sandbox-lagring som endast kan nås av appen. Den här platsen ska inte användas för att öppna filer från en filväljare eller hantera inkommande filer från en openURL. Om en identitet kan associeras med app-sandbox-lagringen ska den skickas som det andra argumentet. Om det inte finns någon identitet nil bör skickas i stället. En app kan till exempel använda separata lagringscontainrar för app-sandbox för olika konton. I det här fallet bör kontot som äger containern som används användas som det andra argumentet.
  • IntuneMAMOpenLocationAccountDocument – Den här platsen representerar alla organisationsplatser som inte tidigare angetts och som kan kopplas till ett hanterat konto. Organisationskontot som är associerat med platsen ska skickas som det andra argumentet. Du kan till exempel ladda ned ett foto från en organisations LOB-molntjänst som är knuten till organisationskontot.
  • IntuneMAMOpenLocationOther – Den här platsen representerar en icke-organisatorisk plats, inte tidigare listad, eller någon okänd plats. Om ett konto är associerat med platsen ska det skickas som det andra argumentet. Annars nil bör användas i stället.
Särskilda överväganden för öppna platser

Platsen IntuneMAMOpenLocationLocalStorage bör endast användas för app-sandbox-lagring som appen kan komma åt. För att kontrollera om en fil kan öppnas från iOS-enhetens lagring via en filväljare eller någon annan metod där data också är tillgängliga i files-appen, IntuneMAMOpenLocationOther ska användas.

Om målplatsen inte visas, eller IntuneMAMOpenLocationAccountDocumentIntuneMAMOpenLocationOther ska användas. Om platsen innehåller organisationsdata som används med det hanterade kontot. Till exempel bör LOB-molntjänst för lagring av organisationsdata IntuneMAMOpenLocationAccountDocument användas. Om platsen inte innehåller organisationsdata ska platsen IntuneMAMSaveLocationOther användas.

Hantera inkommande NSItemProviders och filer

För hantering av NSItemProviders som tagits emot från ett resurstillägg IntuneMAMPolicykan metoden 's canReceiveSharedItemProvider: användas i stället för isOpenFromAllowedForLocation:withAccountId:. Metoden canReceiveSharedItemProvider: tar en NSItemProvider och returnerar om it-administratören tillåter att den IntuneMAMPolicy öppnas i objektets konto. Objektet måste läsas in innan den här metoden anropas. Till exempel genom att anropa loadItemForTypeIdentifier:options:completionHandler. Den här metoden kan också anropas från slutförandehanteraren som skickas till NSItemProvider-inläsningsanropet.

För hantering av inkommande filer IntuneMAMPolicykan metoden 's canReceiveSharedFile: användas i stället för isOpenFromAllowedForLocation:withAccountId:. Metoden canReceiveSharedFile: tar en NSString-sökväg och returnerar om it-administratören tillåter att den IntuneMAMPolicy öppnas i objektets konto.

Avisering om blockerad delning

En hjälpfunktion för användargränssnittet kan användas när antingen api:et isSaveToAllowedForLocation:withAccountId: eller isOpenFromAllowedForLocation:withAccountId: anropas och hittas för att blockera åtgärden spara/öppna. Om appen vill meddela användaren att åtgärden har blockerats kan den anropa API:et showSharingBlockedMessage som definierats i IntuneMAMUIHelper.h för att presentera en aviseringsvy med ett allmänt meddelande.

Dela data via UIActivityViewController

Från och med version 8.0.2 kan Intune App SDK filtrera UIActivityViewController åtgärder så att endast Intune hanterade resursplatser är tillgängliga att välja. Det här beteendet styrs av programdataöverföringsprincipen.

"Kopiera till"-åtgärder

När du delar dokument via UIActivityViewController och UIDocumentInteractionControllervisar iOS åtgärderna "Kopiera till" för varje program som har stöd för att öppna dokumentet som delas. Program deklarerar de dokumenttyper som de stöder via CFBundleDocumentTypes inställningen i sin Info.plist. Den här typen av delning är inte längre tillgänglig om principen förbjuder delning till ohanterade program. Som en ersättning måste användaren lägga till ett icke-UI-åtgärdstillägg i sitt program och länka det till Intune App SDK. Åtgärdstillägget är bara en stub. SDK implementerar fildelningsbeteendet. Följ stegen nedan:

  1. Programmet måste ha minst ett schemeURL definierat under sin Info.plist CFBundleURLTypes tillsammans med dess -intunemam motsvarighet. Till exempel:

    <key>CFBundleURLSchemes</key>
     <array>
     	<string>launch-com.contoso.myapp</string>
     	<string>launch-com.contoso.myapp-intunemam</string>
     </array>
    
  2. Både programmet och åtgärdstillägget måste dela minst en appgrupp, och appgruppen måste anges under matrisen AppGroupIdentifiers under appens och tilläggets Ordlistor för IntuneMAMSettings.

  3. Både programmet och åtgärdstillägget måste ha funktionen delning av nyckelringar och dela com.microsoft.intune.mam nyckelringsgruppen.

  4. Ge åtgärdstillägget namnet "Öppna i" följt av programnamnet. Lokalisera Info.plist efter behov.

  5. Ange en mallikon för tillägget enligt beskrivningen i Apples utvecklardokumentation. Alternativt kan verktyget IntuneMAMConfigurator användas för att generera avbildningarna från programmets .app katalog. Det gör du genom att köra:

    IntuneMAMConfigurator -generateOpenInIcons /path/to/app.app -o /path/to/output/directory
    
  6. Under IntuneMAMSettings i tilläggets Info.plist lägger du till en boolesk inställning med namnet OpenInActionExtension med värdet JA.

  7. NSExtensionActivationRule Konfigurera för att stödja en enskild fil och alla typer från programmets CFBundleDocumentTypes prefix med com.microsoft.intune.mam. Om programmet till exempel stöder public.text och public.image skulle aktiveringsregeln vara:

    SUBQUERY (
        extensionItems,
        $extensionItem,
        SUBQUERY (
            $extensionItem.attachments,
            $attachment,
            ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.text" ||
            ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.image").@count == 1
    ).@count == 1
    

Uppdatera befintliga resurs- och åtgärdstillägg

Om din app redan innehåller tilläggen Dela eller Åtgärd måste de NSExtensionActivationRule ändras för att tillåta Intune typerna. För varje typ som stöds av tillägget lägger du till ytterligare en typ med prefixet com.microsoft.intune.mam. Om den befintliga aktiveringsregeln till exempel är:

SUBQUERY (
    extensionItems,
    $extensionItem,
    SUBQUERY (
        $extensionItem.attachments,
        $attachment,
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.data"
    ).@count > 0
).@count > 0

Den bör ändras till:

SUBQUERY (
    extensionItems,
    $extensionItem,
    SUBQUERY (
        $extensionItem.attachments,
        $attachment,
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.data" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.url" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.plain-text" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.image" ||
        ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.data"
    ).@count > 0
).@count > 0

Obs!

Verktyget IntuneMAMConfigurator kan användas för att lägga till de Intune typerna i aktiveringsregeln. Om din befintliga aktiveringsregel använder de fördefinierade strängkonstanterna. Till exempel kan NSExtensionActivationSupportsFileWithMaxCount, NSExtensionActivationSupportsText osv., predikatsyntaxen bli ganska komplex. Verktyget IntuneMAMConfigurator kan också användas för att konvertera aktiveringsregeln från strängkonstanterna till en predikatsträng när du lägger till Intune typerna.

Hur användargränssnittet ska se ut

Gammalt användargränssnitt:

Dela data – iOS gamla delningsgränssnitt

Nytt användargränssnitt:

Dela data – nytt delningsgränssnitt för iOS

Aktivera riktad appkonfiguration för dina iOS-program

MAM-riktad konfiguration (även kallat MAM-appkonfiguration) gör att en app kan ta emot konfigurationsdata via Intune SDK. Formatet och varianterna av dessa data måste definieras och förmedlas till Intune kunder av appens ägare/utvecklare.

Intune administratörer kan rikta in sig på och distribuera konfigurationsdata via Microsoft Intune administrationscenter och Intune Graph API. Från och med version 7.0.1 av Intune App SDK för iOS kan appar som deltar i MAM-riktad konfiguration tillhandahållas MAM-riktade konfigurationsdata via MAM-tjänsten. Programkonfigurationsdata skickas via vår MAM-tjänst direkt till appen i stället för via MDM-kanalen. Intune App SDK tillhandahåller en klass för åtkomst till de data som hämtas från dessa konsoler. Följande är förutsättningar:

  • Appen måste registreras med Intune MAM-tjänsten innan du får åtkomst till MAM-målgränssnittet för konfiguration. Mer information finns i Ta emot appskyddsprincip.

  • Inkludera IntuneMAMAppConfigManager.h i appens källfil.

  • Anropa [[IntuneMAMAppConfigManager instance] appConfigForAccountId:] för att hämta appkonfigurationsobjektet.

  • Anropa lämplig väljare för IntuneMAMAppConfig objektet. Om programmets nyckel till exempel är en sträng vill du använda stringValueForKey eller allStringsForKey. En IntuneMAMAppConfig.h detaljerad beskrivning av returvärden och felvillkor finns i.

Mer information om funktionerna i Graph API finns i Graph API Referens.

Mer information om hur du skapar en MAM-riktad appkonfigurationsprincip i iOS finns i avsnittet om MAM-riktad appkonfiguration i Så här använder du Microsoft Intune appkonfigurationsprinciper för iOS/iPadOS.

Telemetri

Som standard samlar Intune App SDK för iOS in telemetri om följande typer av händelser:

  • Appstart: För att Microsoft Intune lära dig mer om MAM-aktiverad appanvändning efter hanteringstyp (MAM med MDM, MAM utan MDM-registrering och så vidare).

  • Registreringsanrop: För att hjälpa Microsoft Intune lära dig mer om framgångsfrekvensen och andra prestandamått för registreringsanrop som initieras från klientsidan.

  • Intune åtgärder: För att diagnostisera problem och säkerställa Intune funktioner samlar vi in information om Intune SDK-åtgärder.

Obs!

Om du väljer att inte skicka Intune App SDK-telemetridata till Microsoft Intune från mobilprogrammet måste du inaktivera Intune App SDK-telemetriinsamling. Ställ in egenskapen MAMTelemetryDisabled på JA i ordlistan IntuneMAMSettings.

Siri-avsikter

Om din app integreras med Siri Intents eller gör Siri Intent Donations (Siri-avsiktsdonationer) läser du kommentarerna för areSiriIntentsAllowed i IntuneMAMPolicy.h för instruktioner om hur du stöder det här scenariot.

Obs!

I iOS 16 och senare finns ett nytt systemramverk för App Intents tillgängligt för att skapa Swift App Intents. Appar som implementerar en appavsikt bör först kontrollera areSiriIntentsAllowed egenskapen för IntuneMAMPolicy-objektet för användaren.

Appklipp

Om din app innehåller ett appklippsmål kontrollerar du att inga hanterade data visas i appklippet. Appklippet bör betraktas som en ohanterad plats. SDK-integrering i appklipp stöds inte för närvarande.

Utskrift

Om din app implementerar utskrift och tillhandahåller en anpassad utskriftsåtgärd på en anpassad meny bör du använda UIPrintInteractionController.isPrintingAvailable() för att avgöra om du ska lägga till utskriftsåtgärden på din anpassade meny.

Meddelanden

Om din app får meddelanden bör du läsa kommentarerna för i IntuneMAMPolicy.h för notificationPolicy instruktioner om hur du stöder det här scenariot. Vi rekommenderar att appar registreras för IntuneMAMPolicyDidChangeNotification som beskrivs i IntuneMAMPolicyManager.hoch kommunicerar det här värdet till deras UNNotificationServiceExtension via nyckelringen.

Safari-webbtillägg

Om din app har ett Safari-webbtillägg och har stöd för att skicka data mellan tillägget och det överordnade programmet kan ditt program i vissa fall behöva stöd för att blockera data. Om du vill blockera data anropar du API:et isAppSharingAllowed i i det överordnade programmet och IntuneMAMPolicy.hblockerar sedan webbtillägget.

Publicera build-skript

Kommandoradsverktyget IntuneMAMFrameworkPatcher får inte längre köras som det sista steget i programgenereringsprocessen. Det här verktyget är dock tillgängligt som en del av Intune App SDK för iOS på GitHub.

Viktigt

Från och med 17.7.1-versionen av Intune MAM SDK krävs inte längre det här steget. Kommandoradsverktyget IntuneMAMFrameworkPatcher får inte längre köras.

Kommandoradsanvändning

IntuneMAMFrameworkPatcher -i /path/to/directory_or_binary [-resign] [-verbose]

Parametrar:

  • i, , rv: Med den här parametern kan du välja att installera, ta bort eller verifiera Intune MAM Framework Patcher för programgenereringsprocessen.
  • pathpath: ska vara roten i programmets .app katalog.
  • resign: Alternativet resign instruerar verktyget att avgå binärfiler som hade en giltig signatur innan binärfilen korrigeras. Det här alternativet bör användas om projektet innehåller ramverksberoenden eller plugin-program med alternativet Bädda in och Signera , även när det körs före den slutliga programsigneringen, eller om verktyget körs efter den slutliga programsigneringen.
  • verbose: Alternativet verbose gör att verktyget matar ut information om varje binär fil som har korrigerats.

Andra användningar:

  • Ta bort korrigeringen:

    IntuneMAMFrameworkPatcher -r /path/to/directory_or_binary [-resign] [-verbose]

  • Verifiera korrigeringen:

    IntuneMAMFrameworkPatcher -v /path/to/directory_or_binary [-verbose]

Exempelskript:

IntuneMAMFrameworkPatcher -i $BUILT_PRODUCTS_DIR/$EXECUTABLE_FOLDER_PATH -resign -verbose

Mer information om hur du kommer igång och laddar ned SDK finns i Kom igång med Microsoft Intune App SDK.

Avslutsvillkor

Validerar spara till/öppna från begränsningar

Hoppa över om du inte implementerade kontrollerna Spara som och Öppna från.

Förfina dig själv med varje scenario där din app kan spara data till molnlagringar eller lokala platser och öppna data från molnlagringar eller lokala platser.

För enkelhetens skull förutsätter de här testerna att din app endast har stöd för att spara och öppna data från OneDrive för företag från en enda plats i appen. Du måste dock verifiera varje kombination: varje plats för sparande som stöds mot varje plats som appen tillåter att data sparas på, och varje öppen plats som stöds mot varje plats som appen tillåter att data öppnas på.

För dessa tester installerar du din app, integrerar den med SDK och loggar in med ett hanterat konto innan du startar testet.

Dessutom:

  • Ange principen för det hanterade kontot som:
    • "Skicka organisationsdata till andra appar" till "Principhanterade appar".
    • "Ta emot data från andra appar" till "Principhanterade appar".
Scenario Förutsättningar Steg
Spara till, helt tillåtet Principen "Spara kopior av organisationsdata" är inställd på "Tillåt" – Gå till platsen där din app kan spara data till OneDrive för företag.
– Försök att spara ett dokument till OneDrive för företag till samma hanterade konto som är inloggad i din app.
– Bekräfta att spara är tillåtet.
Spara till, undantagen – Principen "Spara kopior av organisationsdata" är inställd på "Blockera"
– Principen "Tillåt användare att spara kopior till valda tjänster" är inställd på endast "OneDrive för företag"
– Gå till platsen där din app kan spara data till OneDrive för företag.
– Försök att spara ett dokument till OneDrive för företag till samma hanterade konto som är inloggad i din app.
– Bekräfta att spara är tillåtet.
– Om din app tillåter kan du försöka spara filen på en annan molnlagringsplats och bekräfta att den är blockerad.
Spara till, blockerad Principen "Spara kopior av organisationsdata" är inställd på "Blockera" – Gå till platsen där din app kan spara data till OneDrive för företag.
– Försök att spara ett dokument till OneDrive för företag till samma hanterade konto som är inloggad i din app.
– Bekräfta att spara är blockerat.
– Om din app tillåter kan du försöka spara filen på en annan molnlagringsplats och bekräfta att den är blockerad.
Öppna från, helt tillåtet Principen "Öppna data i organisationsdokument" är inställd på "Tillåt" – Gå till platsen där appen kan öppna data från OneDrive för företag.
– Försök att öppna ett dokument från OneDrive för företag från samma hanterade konto som är loggat in på appens lagring.
– Bekräfta att det är tillåtet att öppna.
Öppna från, undantagen – Principen "Öppna data i organisationsdokument" är inställd på "Blockera"
– Principen "Tillåt användare att öppna data från valda tjänster" är inställd på endast "OneDrive för företag"
– Gå till platsen där appen kan öppna data från OneDrive för företag.
– Försök att öppna ett dokument från OneDrive för företag från samma hanterade konto som är loggat in på appens lagring.
– Bekräfta att det är tillåtet att öppna.
– Om din app tillåter kan du försöka öppna en annan fil från en annan molnlagringsplats och bekräfta att den är blockerad.
Öppna från, blockerad Principen "Öppna data i organisationsdokument" är inställd på "Blockera" – Gå till platsen där appen kan öppna data från OneDrive för företag.
– Försök att öppna ett dokument från OneDrive för företag från samma hanterade konto som är loggat in på appens lagring.
– Bekräfta att öppningen är blockerad.
– Om din app tillåter kan du försöka öppna en annan fil från en annan molnlagringsplats och bekräfta att den är blockerad.

Verifiera "Kopiera till"-åtgärder

Hoppa över om du inte har implementerat "Kopiera till"-åtgärder.

För enkelhetens skull förutsätter dessa tester att din app endast har stöd för att kopiera data till Microsoft Office-program som Microsoft Word, Excel osv. Du måste dock verifiera varje kombination: varje kopierings-till-plats som stöds mot varje plats som din app tillåter kopiering av data till.

För dessa tester installerar du din app, integrerar den med SDK och loggar in med ett hanterat konto innan du startar testet.

Dessutom:

  • Slutfört alla integreringssteg från "Kopiera till"-åtgärder med ett åtgärdstillägg för Microsoft Word och kompilerat och kört appen.
  • Ange principen för det hanterade kontot som:
    • "Skicka organisationsdata till andra appar" till "Principhanterade appar".
Scenario Förutsättningar Steg
Välj appar som ska undantas, Ingen Principen "Skicka organisationsdata till andra appar" är inställd på "Principhanterade appar" – Gå till platsen där din app kan kopiera data till Microsoft Word och starta delningsalternativet för dessa data.
– Bekräfta i stället för att se "Kopiera till Word" som ett alternativ, du kan se "Öppna i Word".
- Tryck på "Öppna i Word" och bekräfta att dokumentet har kopierats och visats korrekt, eftersom Word också är inloggad med samma hanterade konto.

Verifiera utskriftsåtgärder

Hoppa över om du inte implementerade Utskrift.

För det här testet installerar du din app, integrerar den med SDK och loggar in med ett hanterat konto innan du startar testet.

Dessutom:

  • Slutfört alla integreringssteg från Utskrift och kompilering och kör appen.
  • Appen implementerar redan aviseringar/åtgärdsobjekt för att hantera ärendet när utskrift inte tillåts från APP IT-administratören. I det här testet förutsätter vi att appen uppmanar slutanvändarna att avisera när utskriften blockeras.
Scenario Steg
Skriva ut organisationsdata, Blockera – Gå till platsen där din app kan visa data och starta delningsalternativet för dessa data.
- Tryck på "Skriv ut".
– Bekräfta att en blockeringsavisering visas och att utskrift inte tillåts.
Skriva ut organisationsdata, Tillåt – Gå till platsen där din app kan visa data och starta delningsalternativet för dessa data.
- Tryck på "Skriv ut".
– Bekräfta att vyn Skriv ut visas och att du kan välja en skrivare och slutföra åtgärden.

Validera mottagandet av appkonfigurationer

Hoppa över om du inte har aktiverat riktad appkonfiguration för dina iOS-program.

Intune ansvarar för att leverera appkonfigurationsprincipvärdena till din app. Därefter ansvarar din app för att använda dessa värden för att ändra beteende eller användargränssnitt i appen. Noggrann testning från slutpunkt till slutpunkt bör omfatta båda komponenterna.

Så här verifierar du att Intune levererar appkonfigurationsprincipen korrekt:

  1. Konfigurera en appkonfigurationsprincip som är riktad mot din app och distribuerad till ditt testkonto.
  2. Logga in på din app med ditt testkonto.
  3. Navigera genom din app för att träna varje kodsökväg som anropar IntuneMAMAppConfigManager.appConfigForIdentity
    • Att logga resultatet av anrop till appConfigForIdentity är ett enkelt sätt att verifiera vilka inställningar som levereras. Men eftersom administratörer kan ange data för appkonfigurationsinställningar bör du vara noga med att inte logga några privata användardata.
  4. Se Verifiera den tillämpade appkonfigurationsprincipen.

Eftersom appkonfigurationer är appspecifika är det bara du som vet hur appen ska ändra beteende eller användargränssnitt för varje appkonfigurationsinställning.

Tänk på följande när du testar:

  • Se till att alla scenarier omfattas av att skapa olika konfigurationsprinciper för testappar med varje värde som din app stöder.
  • Verifiera appens konfliktlösningslogik genom att skapa flera konfigurationsprinciper för testappen med olika värden för varje inställning.

Nästa steg

Om du har följt den här guiden i ordning och har slutfört alla avslutsvillkor ovan, grattis, är din app nu helt integrerad med Intune App SDK och kan tillämpa appskyddsprinciper! Kolla in andra viktiga funktioner för appdeltagande, till exempel steg 5: Multi-Identity, Steg 6: Stöd för villkorsstyrd åtkomst för appskydd och steg 7: Webbvyfunktioner för att integrera dessa i din app.

Appskydd är nu ett centralt scenario för din app. Fortsätt att referera till den här guiden och tillägget när du fortsätter att utveckla din app.