Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med Microsoft Intune App SDK för iOS kan du införliva Intune appskyddsprinciper (kallas även APP- eller MAM-principer) i din inbyggda 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 läsa Planera integreringen.
Fas 4: Funktioner för appdeltagande
Etappmål
- Lär dig mer om de olika funktionerna för appdeltagande som erbjuds av Intune App SDK.
- Integrera funktioner för appdeltagande som är relevanta för din app och dina användare.
- Testa integreringen av dessa funktioner.
Vad är "funktioner för appdeltagande"?
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 tillämpa de flesta inställningarna för appskyddsprinciper, till exempel filkryptering, begränsningar för kopiering/inklistring, blockering av skärmbilder och begränsningar för dataöverföring.
Det finns dock vissa inställningar som kräver appspecifik kod för att tillämpas korrekt. Dessa kallas för funktioner för appdeltagande. Vanligtvis har SDK:n inte tillräckligt med kontext om programmets kod eller slutanvändarscenariot för att automatiskt tillämpa dessa inställningar, och förlitar sig därför på att utvecklare anropar SDK-API:erna på rätt sätt.
Funktionerna för appdeltagande är inte nödvändigtvis valfria. Beroende på appens befintliga funktioner kan dessa funktioner krävas.
I följande steg i den här guiden beskrivs flera viktiga funktioner för appdeltagande:
- Multi-identitet som beskrivs i steg 5: Multi-identitet.
- Appskydd CA enligt steg 6: Stöd för villkorsstyrd åtkomst för appskydd
- Webbvyspecifika funktioner som beskrivs i steg 7: Webbvyfunktioner
I resten av den här guiden beskrivs den återstående uppsättningen funktioner för appdeltagande:
- Implementera tillåtna konton
- Implementera filkryptering krävs
- Implementera Spara som- och Öppna från-kontroller
- Dela data via UIActivityViewController
- Aktivera riktad konfiguration (APP/MAM-appkonfiguration) för dina iOS-program
- Telemetri
- Siri-avsikter
- Appklipp
- Skriva ut
- Meddelanden
- Skript efter kompilering
Anpassa appens beteende med API:er
Intune App SDK har flera API: er som du kan anropa för att få information om de Intune appskyddsprinciper 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 de Intune appskyddsprinciper som distribuerats till programmet. I synnerhet exponerar den API:er som är användbara för att aktivera flera identiteter. |
| IntuneMAMPolicy.h | Klassen IntuneMAMPolicy exponerar vissa MAM-principinställningar som gäller för appen. De flesta av dessa principinställningar är exponerade så att appen kan anpassa användargränssnittet. De flesta principinställningar tillämpas av SDK:n 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 är tillämpliga på 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 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 tillämpar kryptering på rätt sätt. |
Implementera tillåtna konton
Intune låter IT-administratörer ange vilka konton som användaren kan logga in på. Appar kan fråga Intune App SDK efter den angivna listan över tillåtna konton och sedan se till att endast tillåtna konton är inloggade på enheten.
För att 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 ska använda allowedAccountIds egenskapen på instansen IntuneMAMEnrollmentManager för att fråga Entra objekt-ID.
Appar kan också reagera på ändringar av egenskapen allowedAccounts genom att observera meddelandet IntuneMAMAllowedAccountsDidChangeNotification . Meddelandet bokförs när värdet på egenskapen allowedAccounts ändras.
Följande krav krävs när du använder API:er för tillåtna konton:
- Identitetsjämförelsen måste vara skiftlägesokänslig för UPN och OID.
- Identitetsjämförelsen måste stödja både UPN och OID.
- Programmet måste ha loggning för att diagnostisera eventuella matchningsfel mellan det administratörsangivna kontot och det användarangivna 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å alla filer som sparats på disken. Om isFileEncryptionRequired det ä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.h, och IntuneMAMFDataProtectionManager.h.
Appar kan reagera på ändringar i den här principen genom att observera meddelandet som IntuneMAMDataProtectionDidChangeNotification definierats i IntuneMAMFDataProtectionManager.h.
Implementera Spara som- och Öppna från-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 spara till med hjälp av API:t isSaveToAllowedForLocation:withAccountId: som definieras i IntuneMAMPolicy.h. Appar kan också fråga SDK:n om tillåtna lagringsplatser med öppen åtkomst med hjälp av API:t isOpenFromAllowedForLocation:withAccountId: , som också definieras i IntuneMAMPolicy.h.
Dessutom kan appar kontrollera 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 det interna beteendet från och med MAM SDK v15.1.0.
- Ett
nilkonto behandlas inte längre som aktuellt konto för LocalDrive/LocalStorage-platserna. Om du lämnar in ettnilkonto behandlas det som ett ohanterat konto. Eftersom appar kan styra hur de hanterar sin sandbox-lagring kan och bör en identitet associeras med dessa platser. - Ett
nilkonto behandlas inte längre som aktuellt konto för appar med en enda identitet. Att skicka in ettnilkonto i en app med en enda identitet behandlas nu på exakt samma sätt som om det skickades till en app med flera identiteter. Om du utvecklar en app med en enda identitet ska du användaIntuneMAMPolicyoperatornprimaryUserför att referera till det aktuella kontot om det hanteras ochnilhänvisa till det aktuella kontot om det är ohanterat.
Hantera Spara till-scenarier
Innan data flyttas till en ny molnlagringsplats eller lokal plats måste en app kontrollera med API:et isSaveToAllowedForLocation:withAccountId: om IT-administratören har tillåtit dataöverföringen. Den här metoden anropas på 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 de data som sparas. Om du vill hämta objektet med IntuneMAMPolicy en viss identitet anropar IntuneMAMPolicyManagerdu 's policyForAccountId: method. Om ägaren är ett ohanterat konto utan identitet nil kan det skickas till policyForAccountId:. Även om de data som sparas inte är organisationsdata isSaveToAllowedForLocation:withAccountId: bör de ändå anropas. Kontot som äger målplatsen kan fortfarande ha principer som begränsar inkommande ohanterade data.
Metoden isSaveToAllowedForLocation:withAccountId: använder 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 identiteten 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 iIntuneMAMPolicy.h:
-
IntuneMAMSaveLocationOneDriveForBusiness– Den här platsen representerar platser för OneDrive för företag. Den identitet 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 Hybrid Modern Auth SharePoint lokala platser. Den identitet som är associerad med SharePoint-kontot ska skickas som det andra argumentet. -
IntuneMAMSaveLocationLocalDrive- Den här platsen representerar lagring i app-sandbox-läge som bara 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 delningstillägg. Om en identitet kan associeras med app-sandbox-lagringen ska den skickas som det andra argumentet. Om det inte finns någon identitetnilska skickas i stället. En app kan till exempel använda separata lagringsplatser för app-sandbox-miljö för olika konton. I det här fallet ska det konto som äger containern som används användas som det andra argumentet. -
IntuneMAMSaveLocationCameraRoll- Den här platsen representerar iOS-bildbiblioteket. Eftersom det inte finns något konto kopplat till iOS-bildbiblioteket bör endastnilskickas som det andra argumentet när den här platsen används. -
IntuneMAMSaveLocationAccountDocument- Den här platsen representerar alla organisationsplatser som inte tidigare har 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 en bild till en organisations LOB-molntjänst som är knuten till organisationskontot. -
IntuneMAMSaveLocationOther- Den här platsen representerar en icke-organisatorisk, inte tidigare listad eller okänd plats. Om ett konto är associerat med platsen bör det skickas som det andra argumentet. Annarsnilbör användas i stället.
Att tänka på när det gäller platser att spara på
Platsen IntuneMAMSaveLocationLocalDrive bör endast användas för lagring i app-sandbox-miljö som bara kan nås av appen. För att kontrollera om en fil kan sparas på iOS-enhetslagring via en filväljare eller någon annan metod där data kommer att vara tillgänglig i Files appen, IntuneMAMSaveLocationOther bör användas.
Om målplatsen inte finns med i listan kan du antingen IntuneMAMSaveLocationAccountDocument använda eller IntuneMAMSaveLocationOther använda den. Om platsen innehåller organisationsdata som nås med det hanterade kontot (dvs. LOB-molntjänst för lagring av organisationsdata) IntuneMAMSaveLocationAccountDocument ska användas. Om platsen inte innehåller organisationsdata ska platsen IntuneMAMSaveLocationOther användas.
Hantera "öppna från"-scenarier
Innan data importeras från en ny molnlagringsplats eller lokal plats måste en app kontrollera med API:et isOpenFromAllowedForLocation:withAccountId: om IT-administratören har tillåtit dataöverföringen. Den här metoden anropas på 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 identiteten som tar emot data. Om du vill hämta objektet med IntuneMAMPolicy en viss identitet anropar IntuneMAMPolicyManagerdu 's policyForAccountId: method. Om det mottagande kontot är ett ohanterat konto utan identitet nil kan det skickas till policyForAccountId:. Även om de data som tas emot inte är organisationsdata isOpenFromAllowedForLocation:withAccountId: bör de ändå anropas. Kontot som äger data kan fortfarande ha principer som begränsar destinationerna för utgående dataöverföringar.
Metoden isOpenFromAllowedForLocation:withAccountId: använder 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 identiteten 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 definierats iIntuneMAMPolicy.h:
-
IntuneMAMOpenLocationOneDriveForBusiness– Den här platsen representerar platser för OneDrive för företag. Den identitet 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 Hybrid Modern Auth SharePoint lokala platser. Den identitet som är associerad med SharePoint-kontot ska skickas som det andra argumentet. -
IntuneMAMOpenLocationCamera- Den här platsen representerar endast nya bilder som tagits av kameran. Eftersom det inte finns något konto associerat med iOS-kameran bör endastnilskickas som det andra argumentet när den här platsen används. För att öppna data från iOS-bildbiblioteket använder duIntuneMAMOpenLocationPhotos. -
IntuneMAMOpenLocationPhotos- Den här platsen representerar endast befintliga bilder i iOS-bildbiblioteket. Eftersom det inte finns något konto kopplat till iOS-bildbiblioteket bör endastnilskickas som det andra argumentet när den här platsen används. För att öppna bilder tagna direkt från iOS-kameran använder duIntuneMAMOpenLocationCamera. -
IntuneMAMOpenLocationLocalStorage- Den här platsen representerar lagring i app-sandbox-läge som bara kan nås av appen. Den här platsen bör inte användas för att öppna filer från en filväljare eller för att 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 identitetnilska skickas i stället. En app kan till exempel använda separata lagringsplatser för app-sandbox-miljö för olika konton. I det här fallet ska det konto som äger containern som används användas som det andra argumentet. -
IntuneMAMOpenLocationAccountDocument- Den här platsen representerar alla organisationsplatser som inte tidigare har 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, som inte tidigare har listats eller en okänd plats. Om ett konto är associerat med platsen bör det skickas som det andra argumentet. Annarsnilbör användas i stället.
Att tänka på för öppna platser
Platsen IntuneMAMOpenLocationLocalStorage bör endast användas för lagring i app-sandbox-läge som kan nås av appen. 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 bör användas.
Om målplatsen inte finns med i listan kan du antingen IntuneMAMOpenLocationAccountDocument använda eller IntuneMAMOpenLocationOther använda den. Om platsen innehåller organisationsdata som nås med det hanterade kontot. Till exempel ska LOB-molntjänsten för lagring av organisationsdata IntuneMAMOpenLocationAccountDocument användas. Om platsen inte innehåller organisationsdata ska platsen IntuneMAMSaveLocationOther användas.
Hantera inkommande NSItemProviders och Files
För att hantera NSItemProviders som tas emot från ett resurstillägg IntuneMAMPolicykan 's canReceiveSharedItemProvider: metoden användas i stället för isOpenFromAllowedForLocation:withAccountId:. Metoden canReceiveSharedItemProvider: tar en NSItemProvider och returnerar om den tillåts av IT-administratören att öppnas i IntuneMAMPolicy objektets konto. Objektet måste läsas in innan den här metoden anropas. Du kan till exempel ringa loadItemForTypeIdentifier:options:completionHandler. Den här metoden kan också anropas från slutförandehanteraren som skickas till NSItemProvider-inläsningsanropet.
För hantering av IntuneMAMPolicyinkommande filer kan metoden 's canReceiveSharedFile: användas i stället för isOpenFromAllowedForLocation:withAccountId:. Metoden canReceiveSharedFile: tar en NSString-sökväg och returnerar om den tillåts av IT-administratören att öppnas i IntuneMAMPolicy 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 som showSharingBlockedMessage 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. Detta styrs av principen för överföring av programdata.
Åtgärder för Kopiera till
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 CFBundleDocumentTypes de dokumenttyper som de stöder via inställningen i deras Info.plist. Den här typen av delning är inte längre tillgänglig om principen förbjuder delning till program som inte hanteras. Som ersättning måste användaren lägga till ett tillägg för icke-UI-åtgärder i sitt program och länka det till Intune App SDK. Åtgärdstillägget är bara påbörjat. SDK:n implementerar fildelningsbeteendet. Följ stegen nedan:
Ditt program måste ha minst en schemeURL definierad under dess Info.plist
CFBundleURLTypestillsammans med dess-intunemammotsvarighet. Till exempel:<key>CFBundleURLSchemes</key> <array> <string>launch-com.contoso.myapp</string> <string>launch-com.contoso.myapp-intunemam</string> </array>Både ditt program och åtgärdstillägg måste dela minst en appgrupp och appgruppen måste visas under
AppGroupIdentifiersmatrisen under appens och tilläggets IntuneMAMSettings-ordlistor.Både programmet och åtgärdstillägget måste ha möjlighet att dela nyckelring och dela
com.microsoft.intune.mamnyckelringsgruppen.Namnge åtgärdstillägget "Öppna i" följt av programmets namn. Översätt Info.plist efter behov.
Ange en mallikon för tillägget enligt beskrivningen i Apples dokumentation för utvecklare. Alternativt kan verktyget IntuneMAMConfigurator användas för att generera dessa avbildningar från programmet .app katalogen. Om du vill göra detta kör du:
IntuneMAMConfigurator -generateOpenInIcons /path/to/app.app -o /path/to/output/directoryUnder IntuneMAMSettings i tilläggets Info.plist lägger du till en boolesk inställning med namnet
OpenInActionExtensionmed värdet YES.Konfigurera så att den
NSExtensionActivationRulestöder en enda fil och alla typer från programmet som föregåsCFBundleDocumentTypesmedcom.microsoft.intune.mam. Om programmet till exempel har stöd för 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 delnings- och åtgärdstillägg
Om din app redan innehåller delnings- eller åtgärdstillägg måste deras NSExtensionActivationRule ändras för att tillåta Intune typer. För varje typ som stöds av tillägget lägger du till ytterligare en typ med com.microsoft.intune.mamprefixet . Exempel: Om den befintliga aktiveringsregeln ä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
Det 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 Intune typer i aktiveringsregeln. Om den befintliga aktiveringsregeln använder de fördefinierade strängkonstanterna. Till exempel NSExtensionActivationSupportsFileWithMaxCount, NSExtensionActivationSupportsText osv. kan 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 typer.
Hur användargränssnittet ska se ut
Gammalt användargränssnitt:
Nytt användargränssnitt:
Aktivera riktad appkonfiguration för dina iOS-program
MAM-riktad konfiguration (kallas även MAM-appkonfiguration) gör att en app kan ta emot konfigurationsdata via Intune SDK. Formatet och varianterna av dessa data måste definieras och kommuniceras till Intune kunder av appens ägare/utvecklare.
Intune administratörer kan rikta och distribuera konfigurationsdata via administrationscentret för Microsoft Intune 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. Applikationskonfigurationsdata skickas via vår MAM-tjänst direkt till appen istället för via MDM-kanalen. Intune App SDK tillhandahåller en klass för att komma åt data som hämtats från dessa konsoler. Följande objekt är förutsättningar:
Appen måste registreras med Intune MAM-tjänsten innan du får åtkomst till MAM-målkonfigurationsgränssnittet. Mer information finns i Ta emot appskyddsprincip.
Inkludera
IntuneMAMAppConfigManager.hi appens källfil.Anropa
[[IntuneMAMAppConfigManager instance] appConfigForAccountId:]för att hämta appkonfigurationsobjektet.Anropa lämplig väljare för
IntuneMAMAppConfigobjektet. Om programmets nyckel till exempel är en sträng vill du användastringValueForKeyellerallStringsForKey. HärIntuneMAMAppConfig.hfinns en detaljerad beskrivning av returvärden och felvillkor.
Mer information om funktionerna i Graph API finns i Referens för Graph API.
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 på följande typer av händelser:
Appstart: För att hjälpa Microsoft Intune att lära sig mer om MAM-aktiverad appanvändning efter hanteringstyp (MAM med MDM, MAM utan MDM-registrering och så vidare).
Registreringssamtal: För att hjälpa Microsoft Intune att lära sig om framgångsfrekvens 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 funktionalitet 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 ditt mobilprogram måste du inaktivera Intune App SDK-telemetriinsamling. Ange egenskapen MAMTelemetryDisabled till JA i ordlistan IntuneMAMSettings.
Siri-avsikter
Om din app integreras med Siri-avsikter eller gör Siri-avsiktsdonationer läser du kommentarerna för areSiriIntentsAllowed in IntuneMAMPolicy.h för instruktioner om hur du stöder detta scenario.
Obs!
I iOS 16 och senare finns ett nytt systemramverk för appavsikter för att skapa snabba appavsikter. Appar som implementerar en appavsikt bör först kontrollera areSiriIntentsAllowed egenskapen för IntuneMAMPolicy-objektet för användaren.
Appklipp
Om appen har ett appklippsmål måste du kontrollera 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.
Skriva ut
Om appen implementerar utskrifter och tillhandahåller en anpassad utskriftsåtgärd på en anpassad meny måste du använda UIPrintInteractionController.isPrintingAvailable() för att avgöra om du ska lägga till utskriftsåtgärden i din anpassade meny.
Blockering av skärmdump
För appar som har uppdaterats till v19.7.6 eller senare för Xcode 15 och v20.2.1 eller senare för Xcode 16 i SDK:et tillämpas skärmdumpsblockeringen om du har konfigurerat Send Org data to other apps till ett annat värde än "Alla appar". Du kan konfigurera appkonfigurationsprincipinställningen "com.microsoft.intune.mam.screencapturecontrol = Disabled" om du vill tillåta skärmbild för dina iOS-enheter.
Meddelanden
Om din app får aviseringar bör du läsa kommentarerna för notificationPolicy in IntuneMAMPolicy.h för instruktioner om hur du stöder det här scenariot. Vi rekommenderar att appar registrerar sig för IntuneMAMPolicyDidChangeNotification som beskrivs i IntuneMAMPolicyManager.hoch kommunicerar detta värde till dem UNNotificationServiceExtension via nyckelringen.
Safari-webbtillägg
Om appen har ett Safari-webbtillägg och har stöd för att skicka data mellan tillägget och det överordnade programmet kan programmet i vissa fall behöva stöd för blockering av data. Om du vill blockera data anropar du API:et isAppSharingAllowed i IntuneMAMPolicy.hdet överordnade programmet och blockerar sedan webbtillägget.
Skript efter kompilering
Kommandoradsverktyget IntuneMAMFrameworkPatcher behöver inte längre köras som det sista steget i programbyggprocessen. 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 version 17.7.1 av Intune MAM SDK krävs inte längre det här steget. Kommandoradsverktyget IntuneMAMFrameworkPatcher behöver inte längre köras.
Användning av kommandorader
IntuneMAMFrameworkPatcher -i /path/to/directory_or_binary [-resign] [-verbose]
Parametrar:
-
i,r,v: Med den här parametern kan du välja att installera, ta bort eller verifiera Intune MAM Framework Patcher för programbyggprocessen. -
path: Detpathska vara roten för programmets .app-katalog . -
resign: Alternativetresigninstruerar verktyget att signera binärfiler som hade en giltig signatur innan binärfilen korrigerades. 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: Alternativetverbosegör så att verktyget matar ut information om varje binärfil som har korrigerats.
Andra användningsområden:
Ta bort plåstret:
IntuneMAMFrameworkPatcher -r /path/to/directory_or_binary [-resign] [-verbose]Kontrollera korrigeringen:
IntuneMAMFrameworkPatcher -v /path/to/directory_or_binary [-verbose]
Exempel på skript:
IntuneMAMFrameworkPatcher -i $BUILT_PRODUCTS_DIR/$EXECUTABLE_FOLDER_PATH -resign -verbose
Mer information om hur du kommer igång och laddar ned SDK finns i Komma igång med Microsoft Intune App SDK.
Villkor för att avsluta
Validera spara till/öppna från-begränsningar
Hoppa över det här alternativet om du inte gjorde det Implementera Spara som- och Öppna-från-kontroller.
Bekanta dig med varje scenario där din app kan spara data i molnlagringar eller lokala platser och öppna data från molnlagringar eller lokala platser.
För enkelhetens skull förutsätter dessa tester att din app endast har stöd för att spara till 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 sparad plats som stöds mot varje plats där det går att spara data i appen och varje öppen plats som stöds mot varje plats där det går att öppna data i appen.
För dessa tester installerar du appen, integrerar den med SDK:et 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" inställd på "Tillåt" | - Navigera till var din app kan spara data till OneDrive för företag. - Försök spara ett dokument till OneDrive för företag, till samma hanterade konto som loggas in i din app. - Bekräfta att Spara är tillåten. |
| Spara till, undantagen | - Policyn "Spara kopior av organisationsdata" inställd på "Blockera" - Policyn "Tillåt användare att spara kopior till valda tjänster" inställd på endast "OneDrive för företag" |
- Navigera till var din app kan spara data till OneDrive för företag. - Försök spara ett dokument till OneDrive för företag, till samma hanterade konto som loggas in i din app. - Bekräfta att Spara är tillåten. - Om din app tillåter det försöker du spara filen på en annan molnlagringsplats och bekräftar att den är blockerad. |
| Spara till, blockerad | Principen "Spara kopior av organisationsdata" inställd på "Blockera" | - Navigera till var din app kan spara data till OneDrive för företag. - Försök spara ett dokument till OneDrive för företag, till samma hanterade konto som loggas in i din app. - Bekräfta att spara är blockerat. - Om din app tillåter det försöker du spara filen på en annan molnlagringsplats och bekräftar att den är blockerad. |
| Öppna från, fullständigt tillåtet | Principen "Öppna data i organisationsdokument" inställd på "Tillåt" | - Navigera till den plats där din app kan öppna data från OneDrive för företag. – Försök öppna ett dokument från OneDrive för företag från samma hanterade konto som är inloggad i appens lagringsutrymme. - Bekräfta att det är tillåtet att öppna. |
| Öppen från, undantagen | - Policyn "Öppna data i organisationsdokument" inställd på "Blockera" - Policyn "Tillåt användare att öppna data från valda tjänster" inställd på endast "OneDrive för företag" |
- Navigera till den plats där din app kan öppna data från OneDrive för företag. – Försök öppna ett dokument från OneDrive för företag från samma hanterade konto som är inloggad i appens lagringsutrymme. - Bekräfta att det är tillåtet att öppna. - Om din app tillåter det 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" inställd på "Blockera" | - Navigera till den plats där din app kan öppna data från OneDrive för företag. – Försök öppna ett dokument från OneDrive för företag från samma hanterade konto som är inloggad i appens lagringsutrymme. - Bekräfta att den öppna är blockerad. - Om din app tillåter det kan du försöka öppna en annan fil från en annan molnlagringsplats och bekräfta att den är blockerad. |
Validera "Kopiera till"-åtgärder
Hoppa över om du inte implementerade åtgärder för att kopiera till.
För enkelhetens skull förutsätter de här testerna 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 kopiera till-plats som stöds mot varje plats som appen tillåter att data kopieras till.
För dessa tester installerar du appen, integrerar den med SDK:et och loggar in med ett hanterat konto innan du startar testet.
Dessutom:
- Slutfört alla integreringssteg från åtgärder för att kopiera till med ett åtgärdstillägg för Microsoft Word samt skapat 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 att undanta, Inga | Principen "Skicka organisationsdata till andra appar" inställd på "Principhanterade appar" | - Navigera till var din app kan kopiera data till Microsoft Word och starta delningsalternativet för dessa data. - Bekräfta istället för att se "Kopiera till Word" som ett alternativ kan du se "Öppna i Word". - Tryck på "Öppna i Word" och bekräfta att dokumentet kopieras och visas, förutsatt att Word också är inloggat med samma hanterade konto. |
Validera utskriftsåtgärder
Hoppa över det här alternativet om du inte redan har implementerat utskrift.
För det här testet installerar du appen, integrerar den med SDK:et och loggar in med ett hanterat konto innan du startar testet.
Dessutom:
- Slutfört alla integreringssteg från utskrift samt skapat och kört appen.
- Din app implementerar redan aviseringar/åtgärdsobjekt för att hantera ärendet när utskrift inte tillåts från appens IT-administratör. I det här testet antar vi att din app kommer att uppmana användarna att varna när utskriften blockeras.
| Scenario | Steg |
|---|---|
| Skriva ut organisationsdata, block | - Navigera till den plats där din app kan visa data och starta delningsalternativet för dessa data. - Tryck på "Skriv ut". - Bekräfta att en blockeringsvarning visas och att utskrift inte är tillåten. |
| Skriva ut organisationsdata, Tillåt | - Navigera till den plats 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 mottagande appkonfigurationer
Hoppa över det här alternativet 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. Grundlig testning från början till slut bör omfatta båda komponenterna.
Så här verifierar du att Intune levererar appkonfigurationsprincipen korrekt:
- Konfigurera en appkonfigurationsprincip som är riktad mot din app och distribueras till ditt testkonto.
- Om din app stöder appkonfiguration för hanterade enheter kan du läsa programkonfigurationsprinciper för hanterade iOS Enterprise-enheter.
- Om appen stöder appkonfiguration för hanterade appar kan du läsa principer för programkonfiguration för hanterade appar.
- Om appen stöder båda typerna av appkonfiguration skapar du båda typerna av princip för testning.
- Logga in på appen med testkontot.
- Navigera genom appen för att använda varje kodsökväg som anropar
IntuneMAMAppConfigManagerappConfigForIdentitys .- Att logga resultatet av anrop till
appConfigForIdentityär ett enkelt sätt att verifiera vilka inställningar som levereras. Eftersom administratörer kan ange data för appkonfigurationsinställningar bör du vara försiktig så att du inte loggar några privata användardata.
- Att logga resultatet av anrop till
- Se Verifiera den tillämpade appkonfigurationsprincipen.
Eftersom appkonfigurationer är appspecifika är det bara du som vet hur du verifierar hur din app 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 genom att skapa en annan konfigurationsprincip för testappar med varje värde som din app stöder.
- Verifiera appens konfliktlösningslogik genom att skapa flera konfigurationsprinciper för testappar med olika värden för varje inställning.
Nästa steg
Om du följde den här guiden i ordning och har slutfört alla avslutningsvillkor ovan ä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: Flera identiteter, steg 6: Stöd för villkorsstyrd åtkomst för appskydd och steg 7: Webbvisningsfunktioner för att integrera dessa i din app.
Appskydd är nu ett huvudscenario för din app. Fortsätt att hänvisa till den här guiden och bilagan när du fortsätter att utveckla din app.