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:
- Flera identiteter som beskrivs i steg 5: Flera identiteter.
- Appskydds-CA som beskrivs i steg 6: Stöd för villkorsstyrd åtkomst för appskydd
- Webbvyspecifika funktioner som beskrivs i steg 7: Webbvyfunktioner
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.h
och 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 ettnil
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 ettnil
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änderIntuneMAMPolicy
du demprimaryUser
för att referera till det aktuella kontot om det hanteras ochnil
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 identitetnil
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 endastnil
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. Annarsnil
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 IntuneMAMSaveLocationAccountDocument
IntuneMAMSaveLocationOther
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 endastnil
skickas som det andra argumentet när den här platsen används. Om du vill öppna data från iOS-fotobiblioteket använder duIntuneMAMOpenLocationPhotos
. -
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 endastnil
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 duIntuneMAMOpenLocationCamera
. -
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 identitetnil
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. Annarsnil
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 IntuneMAMOpenLocationAccountDocument
IntuneMAMOpenLocationOther
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 IntuneMAMPolicy
kan 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 IntuneMAMPolicy
kan 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 UIDocumentInteractionController
visar 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:
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>
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.Både programmet och åtgärdstillägget måste ha funktionen delning av nyckelringar och dela
com.microsoft.intune.mam
nyckelringsgruppen.Ge åtgärdstillägget namnet "Öppna i" följt av programnamnet. Lokalisera Info.plist efter behov.
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
Under IntuneMAMSettings i tilläggets Info.plist lägger du till en boolesk inställning med namnet
OpenInActionExtension
med värdet JA.NSExtensionActivationRule
Konfigurera för att stödja en enskild fil och alla typer från programmetsCFBundleDocumentTypes
prefix medcom.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:
Nytt användargränssnitt:
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ändastringValueForKey
ellerallStringsForKey
. EnIntuneMAMAppConfig.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.
Blockering av skärmdumpar
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 tillämpas skärmdumpsblocket om du har konfigurerat Send Org data to other apps
ett annat värde än "Alla appar". Du kan konfigurera appkonfigurationsprincipinställningen "com.microsoft.intune.mam.screencapturecontrol = Disabled" om du vill tillåta skärmdump för dina iOS-enheter.
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.h
och 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.h
blockerar 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
, ,r
v
: Med den här parametern kan du välja att installera, ta bort eller verifiera Intune MAM Framework Patcher för programgenereringsprocessen. -
path
path
: ska vara roten i programmets .app katalog. -
resign
: Alternativetresign
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
: Alternativetverbose
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:
- Konfigurera en appkonfigurationsprincip som är riktad mot din app och distribuerad till ditt testkonto.
- Om din app stöder appkonfiguration för hanterade enheter kan du läsa avsnittet om programkonfigurationsprinciper för hanterade iOS Enterprise-enheter.
- Om din app stöder appkonfiguration för hanterade appar kan du läsa avsnittet om programkonfigurationsprinciper för hanterade appar.
- Om din app stöder båda typerna av appkonfiguration skapar du båda typerna av principer för testning.
- Logga in på din app med ditt testkonto.
- 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.
- Att logga resultatet av anrop till
- 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.