Preparare le app iOS per i criteri di protezione delle app con il Intune App Wrapping Tool

Usare l'Microsoft Intune App Wrapping Tool per iOS per abilitare i criteri di protezione Intune per le app iOS interne senza modificare il codice dell'app stessa.

Lo strumento è un'applicazione da riga di comando di macOS che crea un wrapper per un'app. Dopo l'elaborazione di un'app, è possibile modificarne la funzionalità distribuendo i criteri di protezione delle app .

Per scaricare lo strumento, vedi Microsoft Intune App Wrapping Tool per iOS su GitHub.

Nota

Se hai problemi a usare il Intune App Wrapping Tool con le tue app, invia una richiesta di assistenza su GitHub.

Prerequisiti generali per App Wrapping Tool

Prima di eseguire App Wrapping Tool è necessario soddisfare alcuni prerequisiti generali:

  • Scaricare il Microsoft Intune App Wrapping Tool per iOS da GitHub.

  • Un computer macOS con il set di strumenti Xcode versione 16.0 o successiva installato.

  • La tua azienda o un fornitore di software indipendente (ISV) deve sviluppare e firmare l'app iOS di input.

    • Il file deve avere l'estensione .ipa o .app.

    • Deve essere compilato per iOS 16.0 o versione successiva.

    • Non può essere crittografato.

    • Nessun attributo di file esteso.

    • Imposta i diritti prima di elaborare l'app con il Intune App Wrapping Tool. I diritti concedono all'app più autorizzazioni e funzionalità oltre a quelle generalmente concesse. Per istruzioni, consulta Impostazione dei diritti delle app .

  • Verificare che nel keychain di sistema siano presenti certificati di firma validi. Se si verificano problemi di firma del codice dell'app, eseguire la procedura seguente per risolverli:
    • Reimpostare le impostazioni di attendibilità per tutti i certificati correlati
    • Installare certificati intermedi nel keychain di sistema e nel keychain di accesso
    • Disinstallare e reinstallare tutti i certificati correlati

Registra l'app con Microsoft Entra ID

  1. Registra le tue app con Microsoft Entra ID. Per ulteriori informazioni, vedere Registrare un'applicazione in Microsoft Identity Platform.
  2. Aggiungere l'URL di reindirizzamento personalizzato alle impostazioni dell'app. Per altre informazioni, vedere Configurazione di MSAL.
  3. Concedere all'app l'accesso al servizio Intune MAM. Per altre informazioni, vedere Concedere all'app l'accesso al servizio di gestione delle app mobili di Intune.
  4. Una volta completate le modifiche precedenti, esegui l'ultima versione dello strumento IntuneIntune App Wrapping. Configurare le app per Libreria di Autenticazione Microsoft (MSAL): aggiungere l'ID client dell'applicazione Microsoft Entra nei parametri della riga di comando con il Intune App Wrapping Tool. Per ulteriori informazioni, vedere Parametri della riga di comando.

Nota

I parametri -ac e -ar sono parametri obbligatori. Ogni app deve avere un set univoco di questi parametri. -aa è necessario solo per le applicazioni a tenant singolo.

  1. Distribuire l'app.

Prerequisiti per sviluppatori Apple per il App Wrapping Tool

Per distribuire le app di cui è stato eseguito il wrapping esclusivamente agli utenti della tua organizzazione, hai bisogno di un account con l'Apple Developer Enterprise Program e di diverse entità per la firma delle app collegate al tuo account Apple Developer.

Per ulteriori informazioni sulla distribuzione interna delle app iOS agli utenti della tua organizzazione, leggi la guida ufficiale alla distribuzione delle app dell'Apple Developer Enterprise Program.

Per distribuire le app di cui è stato eseguito il wrapping da Intune, sono necessari i seguenti elementi:

  • Un account sviluppatore con l'Apple Developer Enterprise Program.

  • Certificato di firma della distribuzione interna e ad hoc con identificatore del team valido.

    • È necessario l'hash SHA1 del certificato di firma come parametro per il Intune App Wrapping Tool.
  • Profilo di provisioning della distribuzione interna.

Creare un account Apple Developer Enterprise

  1. Vai al sito dell'Apple Developer Enterprise Program.

  2. Nell'angolo in alto a destra della pagina, selezionare Registrati.

  3. Leggi l'elenco di controllo di ciò di cui hai bisogno per iscriverti. Seleziona Avvia registrazione nella parte inferiore della pagina.

  4. Accedere con l'account Apple dell'organizzazione. Se non ne hai uno, seleziona Crea account Apple.

  5. Seleziona il tipo di entità e seleziona Continua.

  6. Compilare il modulo con le informazioni dell'organizzazione. Selezionare Continua. A questo punto, Apple ti contatta per verificare che tu sia autorizzato a registrare la tua organizzazione.

  7. Dopo la verifica, selezionare Accetta licenza.

  8. Dopo aver accettato la licenza, termina acquistando e attivando il programma.

  9. Se sei l'agente del team (la persona che partecipa all'Apple Developer Enterprise Program per la tua organizzazione), invita i membri del team e assegna ruoli per creare il tuo team. Per informazioni su come gestire il team, leggere la documentazione Apple sulla gestione del team account sviluppatore.

Creare un certificato di firma Apple

  1. Vai al portale per sviluppatori Apple.

  2. Nell'angolo in alto a destra della pagina, selezionare Account.

  3. Accedi con l'account Apple dell'organizzazione.

  4. Selezionare certificati, ID & profili.

    Portale per sviluppatori Apple - Certificati, ID & profili

  5. Seleziona il Portale per sviluppatori Apple e Accedi nell'angolo in alto a destra. Questa azione aggiunge un certificato iOS.

  6. Scegli di creare un certificato interno e ad hoc in Produzione.

    Seleziona In-House e certificato ad hoc

    Nota

    Se non si prevede di distribuire l'app ma si vuole testarla solo internamente, è possibile usare un certificato di sviluppo di app iOS invece di un certificato per la produzione. Se si usa un certificato di sviluppo, assicurarsi che il profilo di provisioning mobile includa i dispositivi in cui si intende installare l'app.

  7. Selezionare Avanti nella parte inferiore della pagina.

  8. Leggi le istruzioni sulla creazione di una richiesta di firma del certificato (CSR) utilizzando l'applicazione Accesso Portachiavi sul computer macOS.

    Leggere le istruzioni per creare una CSR

  9. Seguire le istruzioni precedenti per creare una richiesta di firma del certificato. Sul computer macOS, avvia l'applicazione Accesso Portachiavi .

  10. Nel menu macOS nella parte superiore dello schermo, vai su Assistente > Certificato Accesso > Portachiavi Richiedere un certificato a un'autorità di certificazione.

    Richiedere un certificato a un'autorità di certificazione in Accesso Portachiavi

  11. Segui le istruzioni del sito per sviluppatori Apple per creare un file di richiesta di firma del certificato (CSR). Salvare il file CSR nel computer macOS.

    Immettere le informazioni per il certificato da richiedere

  12. Torna al sito per sviluppatori Apple. Selezionare Continua. Quindi caricare il file CSR.

  13. Apple genera il certificato di firma. Scaricalo e salvalo in una posizione memorabile sul tuo computer macOS.

    Scaricare il certificato di firma

  14. Fai doppio clic sul file del certificato che hai scaricato per aggiungere il certificato a un keychain.

  15. Apri di nuovo Accesso Portachiavi . Individua il certificato cercandone il nome nella barra di ricerca in alto a destra. Fai clic con il pulsante destro del mouse sulla voce per visualizzare il menu e seleziona Ottieni informazioni. Nelle schermate di esempio, stiamo usando un certificato di sviluppo invece di un certificato di produzione.

    Aggiungere il certificato a un portachiavi

  16. Viene visualizzata una finestra informativa. Scorri fino in fondo e guarda sotto l'etichetta Impronte digitali . Copiare la stringa SHA1 (sfocata) da usare come argomento per "-c" per lo App Wrapping Tool.

    Informazioni sull'iPhone - Impronte digitali, stringa SHA1

Creare un profilo del provisioning di distribuzione In-House

  1. Torna indietro al portale dell'account sviluppatore Apple e accedi con l'account Apple dell'organizzazione.

  2. Selezionare certificati, ID & profili.

  3. Seleziona il Portale per sviluppatori Apple e Accedi nell'angolo in alto a destra. Questa azione aggiunge un profilo di provisioning iOS.

  4. Scegli di creare un profilo di provisioning interno in Distribuzione.

    Selezionare il profilo di provisioning interno

  5. Selezionare Continua. Assicurarsi di collegare il certificato di firma generato in precedenza al profilo di provisioning.

  6. Segui la procedura per scaricare il tuo profilo (con estensione .mobileprovision) sul tuo computer macOS.

  7. Salvare il file in un percorso memorabile. Questo file viene usato per il parametro -p durante l'utilizzo dello App Wrapping Tool.

Scaricare lo App Wrapping Tool

  1. Scaricare i file per l'App Wrapping Tool da GitHub a un computer macOS.

  2. Fai doppio clic su Microsoft Intune Application Restrictions Packager for iOS.dmg. Viene visualizzata una finestra con il Contratto di licenza con l'utente finale (EULA). Leggi attentamente il documento.

  3. Scegliere Accetta di accettare il contratto EULA, che consente di installare il pacchetto sul computer.

Eseguire lo App Wrapping Tool

Importante

Intune rilascia regolarmente aggiornamenti per il Intune App Wrapping Tool. Controllare regolarmente il Intune App Wrapping Tool per iOS per gli aggiornamenti da incorporare nel ciclo di rilascio dello sviluppo software per assicurarsi che le app supportino le impostazioni più recenti dei criteri di protezione delle app.

Usa il terminale

Apri il terminale macOS ed esegui il comando seguente:

/Volumes/IntuneMAMAppPackager/IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i /<path of input app>/<app filename> -o /<path to output folder>/<app filename> -p /<path to provisioning profile> -c <SHA1 hash of the certificate> -ac <client ID of input app> -ar <redirect URI of input app> [-aa <authority URI of input app>] [-b [<output app build string>]] [-v] [-e] [-x /<array of extension provisioning profile paths>] [-dt] [-dl] [-ds]

Nota

Alcuni parametri sono facoltativi, come illustrato nella tabella seguente.

Esempio: Il seguente comando di esempio esegue l'App Wrapping Tool sull'app denominata MyApp.ipa. Per firmare l'app di cui è stato eseguito il wrapping, vengono specificati un profilo di provisioning e un hash SHA-1 del certificato di firma. L'app di output (MyApp_Wrapped.ipa) viene creata e memorizzata nella cartella Desktop.

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

Parametri della riga di comando

Puoi usare i seguenti parametri della riga di comando con lo App Wrapping Tool:

Esempio: Il comando di esempio seguente esegue lo App Wrapping Tool, incorporando i comandi necessari durante il wrapping di un'applicazione per l'uso all'interno di un singolo tenant.

./IntuneMAMPackager/Contents/MacOS/IntuneMAMPackager -i ~/Desktop/MyApp.ipa -o ~/Desktop/MyApp_Wrapped.ipa -p ~/Desktop/My_Provisioning_Profile_.mobileprovision -c "12 A3 BC 45 D6 7E F8 90 1A 2B 3C DE F4 AB C5 D6 E7 89 0F AB" -aa https://login.microsoftonline.com/<tenantID> -ac "Client ID of the input app if the app uses the Microsoft Authentication Library" -ar "Redirect/Reply URI of the input app if the app uses the Microsoft Authentication Library"  -v
Proprietà Modalità di utilizzo
-i <Path of the input native iOS application file>. Il nome del file deve terminare con .app o .ipa.
-o <Path of the wrapped output application>
-p <Path of your provisioning profile for iOS apps>
-c <SHA1 hash of the signing certificate>
-h Mostra informazioni dettagliate sull'utilizzo delle proprietà della riga di comando disponibili per lo App Wrapping Tool.
-ac <Client ID of the input app if the app uses the Libreria di Autenticazione Microsoft> Si tratta del GUID nel campo ID client dall'elenco dell'app in Registrazione app.
-ar <Redirect/Reply URI of the input app if the app uses the Libreria di Autenticazione Microsoft> URI di reindirizzamento configurato nella registrazione dell'app. In genere, è il protocollo URL dell'applicazione a cui l'app Microsoft Authenticator ritorna dopo l'autenticazione negoziata.
-aa (Obbligatorio per le app a tenant singolo) <Authority URI of the input app> ad esempio https://login.microsoftonline.com/<tenantID>/
-v (Facoltativo) Invia messaggi dettagliati alla console. Usare questo flag per eseguire il debug di eventuali errori.
-e (Facoltativo) Usare questo flag per fare in modo che lo App Wrapping Tool rimuova le autorizzazioni mancanti durante l'elaborazione dell'app. Per altre informazioni, vedere Impostazione dei diritti delle app.
-xe (Facoltativo) Consente di stampare le informazioni sulle estensioni iOS presenti nell'app e sui diritti necessari per usarle. Per altre informazioni, vedere Impostazione dei diritti delle app.
-x (Facoltativo) <An array of paths to extension provisioning profiles>. Usare questa proprietà se l'app richiede profili di provisioning dell'estensione.
-b (Facoltativo) Usare -b senza argomento se si desidera che l'app di output di cui è stato eseguito il wrapping abbia la stessa versione in bundle dell'app di input (scelta non consigliata).

Usare -b <custom bundle version> questa opzione se si vuole che l'app di cui è stato eseguito il wrapping abbia un CFBundleVersion personalizzato. Se si sceglie di specificare un CFBundleVersion personalizzato, è consigliabile incrementare la CFBundleVersion dell'app nativa del componente meno significativo, ad esempio 1.0.0 -> 1.0.1.
-f (Facoltativo) <Path to a plist file specifying arguments.> Usare questo flag davanti al file plist se si sceglie di usare il modello plist per specificare il resto delle proprietà di IntuneMAMPackager, ad esempio -i, -o e -p. Consulta Usare un file plist per inserire argomenti.
-dt (Facoltativo) Disabilita la raccolta dei dati del client Microsoft Intune.
-dl (Facoltativo) Disabilitare i log MSAL dai log di Intune per le applicazioni integrate con MSAL e che implementano il proprio callback di registrazione MSAL.
-ds (Facoltativo) Disabilitare le protezioni di Intune per SFSafariViewController, SFAuthSession e ASWebAuthenticationSession.
-mp (Facoltativo) <Path to a plist file containing MAM settings to merge into the wrapped app>. Utilizzare questa proprietà per fornire impostazioni personalizzate di Intune MAM SDK che verranno unite al dizionario IntuneMAMSettings dell'app durante il processo di wrapping. Nota: le impostazioni MultiIdentity, MAMPolicyRequired, , AutoEnrollOnLaunche ContainingAppBundleId non sono supportate tramite -mp in quanto vengono configurate automaticamente dallo App Wrapping Tool. Anche le impostazioni di autenticazione (ADALAuthority, ADALClientId, ADALRedirectUri) non sono supportate tramite -mp e devono essere configurate usando i parametri della riga di comando -aa, -ac e -ar.

Usare un file plist per inserire argomenti

Un modo semplice per eseguire App Wrapping Tool consiste nell'inserire tutti gli argomenti del comando in un file plist. Plist è un formato di file simile a XML che è possibile usare per immettere gli argomenti della riga di comando usando un'interfaccia di modulo.

Nella cartella IntuneMAMPackager/Contents/MacOS apri Parameters.plist (un modello plist vuoto) con un editor di testo o Xcode. Immettere gli argomenti per le chiavi seguenti:

Tasto Plist Tipo Valore predefinito Note
Percorso del pacchetto dell'applicazione di input Stringa vuoto Uguale a -i
Percorso del pacchetto dell'applicazione di output Stringa vuoto Uguale a -o
Percorso profilo di provisioning Stringa vuoto Uguale a -p
Hash del certificato SHA-1 Stringa vuoto Uguale a -c
Autorità MSAL Stringa vuoto Uguale a -aa
MSAL Client ID Stringa vuoto Uguale a -ac
URI di risposta MSAL Stringa vuoto Uguale a -ar
Basato su valori avanzati abilitato Booleano falso Uguale a -v
Rimuovere i diritti mancanti Booleano falso Uguale a -e
Impedisci l'aggiornamento della build predefinita Booleano falso Equivale all'uso di -b senza argomenti
Sostituzione stringa di compilazione Stringa vuoto CFBundleVersion personalizzata dell'app di output di cui è stato eseguito il wrapping
Percorsi del profilo di provisioning dell'estensione Matrice di stringhe vuoto Matrice di profili di provisioning delle estensioni per l'app.
Disabilitare la telemetria Booleano falso Uguale a -dt
Disabilitare la sostituzione del log MSAL Booleano falso Uguale a -dl
Percorso file multimediali delle impostazioni MAM Stringa vuoto Uguale a -mp

Esegui IntuneMAMPackager con plist come unico argomento:

./IntuneMAMPackager –f Parameters.plist

Post-wrapping

Al termine del processo di incapsulamento, verrà visualizzato il messaggio "L'applicazione è stata completata correttamente". Se si verifica un errore, vedere Messaggi di errore per assistenza.

L'app di cui è stato eseguito il wrapping viene salvata nella cartella di output specificata in precedenza. È possibile caricare l'app nell'interfaccia di amministrazione di Intune e associarla a un criterio di gestione delle applicazioni mobili.

Importante

Quando carichi un'app di cui è stato eseguito il wrapping, puoi provare ad aggiornare una versione precedente dell'app se una versione precedente (di cui è stato eseguito il wrapping o nativa) è già stata distribuita in Intune. Se si verifica un errore, carica l'app come nuova app ed elimina la versione precedente.

Ora è possibile distribuire l'app ai gruppi di utenti e indirizzare i criteri di protezione dell'app all'app. L'app viene eseguita nel dispositivo usando i criteri di protezione delle app specificati.

Con quale frequenza devo eseguire il rewrapping dell'applicazione iOS con il Intune App Wrapping Tool?

Gli scenari principali in cui sarebbe necessario eseguire il rewrapping delle applicazioni sono i seguenti:

  • L'applicazione stessa ha rilasciato una nuova versione. La versione precedente dell'app è stata sottoposta a wrapping e caricata nell'interfaccia di amministrazione di Intune.
  • Il Intune App Wrapping Tool per iOS ha rilasciato una nuova versione che abilita le correzioni di bug chiave o nuove funzionalità specifiche per i criteri di protezione delle applicazioni Intune. Il rilascio di una nuova versione avviene ogni 6-8 settimane tramite il repository GitHub per il Microsoft Intune App Wrapping Tool per iOS.

Per iOS/iPadOS, è possibile eseguire il wrapping dell'app con un certificato o un profilo di provisioning diverso da quello usato originariamente per firmare l'app. Tuttavia, se il nuovo profilo di provisioning non include i diritti specificati nell'app, il processo di wrapping avrà esito negativo. Se usi l'opzione della riga di comando "-e", che rimuove eventuali diritti mancanti dall'app, forzare il wrapping per non avere esito negativo in questo scenario può causare l'interruzione della funzionalità dell'app.

Alcune procedure consigliate per il rewrapping includono:

  • Assicurarsi che un profilo di provisioning diverso disponga di tutti i diritti necessari come qualsiasi profilo di provisioning precedente.

Messaggi di errore e file di log

Usare le informazioni seguenti per risolvere i problemi relativi allo strumento di wrapping delle app.

Messaggi di errore

Se lo strumento di wrapping dell'app non viene completato correttamente, nella console viene visualizzato uno dei seguenti messaggi di errore:

Messaggio di errore Ulteriori informazioni
È necessario specificare un profilo di provisioning iOS valido. Il profilo di provisioning potrebbe non essere valido. Verifica di disporre delle autorizzazioni corrette per i dispositivi e che il profilo sia destinato correttamente allo sviluppo o alla distribuzione. Anche il profilo di provisioning potrebbe essere scaduto.
Specificare un nome di applicazione di input valido. Verificare che il nome dell'applicazione di input specificato sia corretto.
Specificare un percorso valido per l'applicazione di output. Assicurati che il percorso dell'applicazione di output specificata esista e sia corretto.
Specificare un profilo di provisioning di input valido. Assicurarsi di aver fornito un nome e un'estensione del profilo di provisioning validi. Nel profilo di provisioning mancano i diritti o l'opzione della –p riga di comando non è inclusa.
L'applicazione di input specificata non è stata trovata. Specificare un nome e un percorso validi per l'applicazione di input. Assicurarsi che il percorso dell'app di input sia valido ed esista. Assicurarsi che l'app di input esista in quella posizione.
Il file del profilo di provisioning di input specificato non è stato trovato. Specificare un file del profilo di provisioning di input valido. Assicurarsi che il percorso del file di provisioning di input sia valido e che il file specificato esista.
La cartella dell'applicazione di output specificata non è stata trovata. Specificare un percorso valido per l'applicazione di output. Assicurati che il percorso di output sia valido ed esista.
L'app di output non ha estensione .ipa . Solo le app con estensione .app e IPA vengono accettate dall'App Wrapping Tool. Assicurarsi che il file di output abbia un'estensione valida.
È stato specificato un certificato di firma non valido. Specificare un certificato di firma Apple valido. Assicurati di aver scaricato il certificato di firma corretto dal portale per sviluppatori Apple. Il certificato potrebbe essere scaduto o non avere una chiave pubblica o privata. Se il certificato Apple e il profilo di provisioning possono essere usati per firmare correttamente un'app all'interno di Xcode, sono validi per il App Wrapping Tool. Verificare inoltre che il certificato di firma abbia un nome univoco all'interno del keychain del computer macOS host. Se nel keychain sono presenti più versioni dello stesso certificato, lo strumento restituisce questo errore.
L'applicazione di input specificata non è valida. Specificare un'applicazione valida. Assicurarsi che l'applicazione iOS valida sia compilata come file .app OR .ipa .
L'applicazione di input specificata è crittografata. Specificare un'applicazione non crittografata valida. Lo App Wrapping Tool non supporta le app crittografate. Fornire un'app non crittografata.
L'applicazione di input specificata non è in un formato PIE (Position Independent Executable). Specificare un'applicazione valida in formato PIE. Le app PIE (Position Independent Executable) possono essere caricate in un indirizzo di memoria casuale durante l'esecuzione. Questa funzionalità offre vantaggi in termini di sicurezza. Per ulteriori informazioni sui vantaggi in materia di sicurezza, consulta la documentazione per sviluppatori Apple.
L'app di input specificata è stata incapsulata. Specificare un'applicazione valida di cui non è stato eseguito il wrapping. Non è possibile elaborare un'app se lo strumento l'ha già elaborata. Se vuoi elaborare di nuovo un'app, esegui lo strumento usando la versione originale dell'app.
L'applicazione di input specificata non è firmata. Specificare un'applicazione firmata valida. Lo strumento di wrapping delle app richiede che le app siano firmate. Consultare la documentazione per gli sviluppatori per informazioni su come firmare un'app di cui è stato eseguito il wrapping.
L'applicazione di input specificata deve essere nel formato .ipa o .app. Lo strumento di wrapping dell'app accetta .app solo le .ipa estensioni. Assicurarsi che il file di input abbia un'estensione valida e che sia conforme come file .app or .ipa .
L'app di input specificata è stata incapsulata e si trova nell'ultima versione del modello di criteri. Lo App Wrapping Tool non esegue di nuovo il wrapping di un'app di cui è stato eseguito il wrapping esistente con l'ultima versione del modello di criteri.
ATTENZIONE: non è stato specificato un hash del certificato SHA1. Assicurarsi che l'applicazione di cui è stato eseguito il wrapping sia firmata prima della distribuzione. Assicurati di specificare un hash SHA1 valido dopo il contrassegno della –c riga di comando.

Raccolta dei log per le applicazioni di cui è stato eseguito il wrapping dal dispositivo

Usare la procedura seguente per ottenere i log per le applicazioni di cui è stato eseguito il wrapping durante la risoluzione dei problemi.

  1. Passare all'app Impostazioni di iOS nel dispositivo e selezionare l'app LOB.
  2. Selezionare Microsoft Microsoft Intune.
  3. Attiva l'impostazione della console di diagnostica schermo.
  4. Avviare l'applicazione LOB.
  5. Seleziona il collegamento "Inizia".
  6. Ora è possibile inviare i log direttamente a Microsoft o condividerli tramite un'altra applicazione nel dispositivo.

Nota

La funzionalità di registrazione è abilitata per le app di cui è stato eseguito il wrapping con l'Intune App Wrapping Tool versione 7.1.13 o successiva.

Raccolta dei log di arresto anomalo dal sistema

L'app potrebbe registrare informazioni utili nella console del dispositivo client iOS. Queste informazioni sono utili quando si verificano problemi con l'applicazione e occorre determinare se il problema è correlato allo App Wrapping Tool o all'app stessa. Per recuperare queste informazioni, eseguire la procedura seguente:

  1. Riproduci il problema eseguendo l'app.

  2. Raccogliere l'output della console seguendo le istruzioni di Apple per il debug delle app iOS distribuite.

Le app di cui è stato eseguito il wrapping presenteranno inoltre agli utenti la possibilità di inviare i log direttamente dal dispositivo tramite posta elettronica dopo l'arresto anomalo dell'app. Gli utenti possono inviare i log all'utente per esaminarli e inoltrarli a Microsoft, se necessario.

Requisiti di certificato, profilo di provisioning e autenticazione

L'App Wrapping Tool per iOS presenta alcuni requisiti che devono essere soddisfatti per garantire la piena funzionalità.

Requisito Dettagli
Profilo di provisioning iOS Assicurarsi che il profilo di provisioning sia valido prima di includerlo. Lo App Wrapping Tool non controlla se il profilo di provisioning è scaduto durante l'elaborazione di un'app iOS. Se si specifica un profilo di provisioning scaduto, lo strumento di wrapping dell'app lo include. Il problema persiste finché l'installazione dell'app in un dispositivo iOS non non riesce.
Certificato di firma iOS Assicurarsi che il certificato di firma sia valido prima di specificarlo. Lo strumento non controlla se un certificato è scaduto durante l'elaborazione di app iOS. Se viene fornito l'hash per un certificato scaduto, lo strumento elabora e firma l'app, ma non riesce a installarla nei dispositivi.

Assicurarsi che il certificato fornito per la firma dell'app di cui è stato eseguito il wrapping corrisponda nel profilo di provisioning. Lo strumento non convalida se il profilo di provisioning ha una corrispondenza per il certificato fornito per la firma dell'applicazione di cui è stato eseguito il wrapping.
Autenticazione Un dispositivo deve avere un PIN affinché la crittografia funzioni. Nei dispositivi in cui è stata distribuita un'app di cui è stato eseguito il wrapping, toccando la barra di stato del dispositivo, l'utente dovrà accedere di nuovo con un account aziendale o dell'istituto di istruzione. Il criterio predefinito in un'app di cui è stato eseguito il wrapping è l'autenticazione al riavvio. iOS gestisce qualsiasi notifica esterna (ad esempio una telefonata) uscendo dall'app e quindi riavviandola.

Impostare i diritti delle app

Prima di eseguire il wrapping dell'app , è possibile concedere diritti per concedere all'app autorizzazioni e funzionalità aggiuntive che superano ciò che un'app può fare normalmente. Un file di entitlement viene utilizzato durante la firma del codice per specificare autorizzazioni speciali all'interno dell'app (ad esempio, l'accesso a un keychain condiviso). Servizi specifici dell'app chiamati capabilities sono abilitati all'interno di Xcode durante lo sviluppo di app. Una volta abilitate, le funzionalità si riflettono nel file dei diritti. Per ulteriori informazioni su diritti e funzionalità, vedere Aggiunta di funzionalità nella Libreria per sviluppatori iOS. Per un elenco completo delle funzionalità supportate, vedere Funzionalità supportate.

Funzionalità supportate per App Wrapping Tool per iOS

Funzionalità Descrizione Indicazioni consigliate
Gruppi di app Usare i gruppi di app per consentire a più app di accedere ai contenitori condivisi e consentire una maggiore comunicazione tra processi tra le app.

Per abilitare i gruppi di app, aprire il riquadro Funzionalità e selezionare ON in Gruppi di app. Puoi aggiungere gruppi di app o selezionare quelli esistenti.
Usa la notazione DNS (Domain Name System) inversa quando configuri i gruppi di app:

group.com.companyName.AppGroup
Modalità sfondo L'attivazione delle modalità in background consente all'app iOS di continuare l'esecuzione in background.
Protezione dei dati La protezione dei dati aggiunge un livello di sicurezza ai file archiviati su disco dall'app iOS. La protezione dei dati usa l'hardware di crittografia incorporato presente in dispositivi specifici per archiviare i file in un formato crittografato su disco. È necessario eseguire il provisioning dell'app per l'utilizzo della protezione dei dati.
Acquisto in-app L'acquisto in-app incorpora uno store direttamente nell'app, consentendo di connettersi allo store ed elaborare in modo sicuro i pagamenti dell'utente. Puoi usare l'acquisto in-app per riscuotere pagamenti per funzionalità avanzate o per altri contenuti utilizzabili dalla tua app.
Condivisione portachiavi L'abilitazione della condivisione del portachiavi consente all'app di condividere le password nel portachiavi con altre app sviluppate dal team. Quando usi la condivisione portachiavi, usa la notazione DNS inversa:

com.companyName.KeychainGroup
VPN personale Abilitare la VPN personale per consentire all'app di creare e controllare una configurazione VPN di sistema personalizzata usando il framework dell'estensione di rete.
Notifiche push Il Servizio notifica Push Apple consente a un'app non in esecuzione in primo piano di notificare all'utente la disponibilità di informazioni per l'utente. Per il funzionamento delle notifiche push, è necessario usare un profilo di provisioning specifico dell'app.

Seguire i passaggi descritti nella documentazione per sviluppatori Apple.
Configurazione degli accessori wireless L'abilitazione della configurazione degli accessori wireless aggiunge il framework Accessorio esterno al progetto e consente all'app di configurare Wi-Fi gli accessori Made for iPhone (MFi).

Procedura per abilitare i diritti

  1. Abilita le funzionalità nella tua app:

    a. In Xcode passare alla destinazione dell'app e selezionare Funzionalità.

    b. Attivare le funzionalità appropriate. Per informazioni dettagliate su ciascuna funzionalità e su come determinare i valori corretti, consulta Aggiunta di funzionalità nella Libreria per sviluppatori iOS.

    c. Prendere nota degli ID creati durante il processo. Questi ID possono essere chiamati AppIdentifierPrefix valori.

    d. Creare e firmare l'app da avvolgere.

  2. Abilitare i diritti nel profilo di provisioning:

    a. Accedi all'Apple Developer Member Center.

    b. Creare un profilo di provisioning per l'app. Per istruzioni, vedere Come ottenere i prerequisiti per l'Intune App Wrapping Tool per iOS.

    c. Nel profilo di provisioning, abilita gli stessi diritti che hai nella tua app. È necessario fornire gli stessi ID (i AppIdentifierPrefix valori) specificati durante lo sviluppo dell'app.

    d. Completare la procedura guidata del profilo di provisioning e scaricare il file.

  3. Assicurarsi di aver soddisfatto tutti i prerequisiti, quindi eseguire il wrapping dell'app.

Risolvere gli errori comuni relativi ai diritti

Se lo App Wrapping Tool per iOS mostra un errore di diritto, provare la procedura seguente per la risoluzione dei problemi.

Problema Causa Risoluzione
Non è stato possibile analizzare i diritti generati dall'applicazione di input. Lo App Wrapping Tool non è in grado di leggere il file di entitlement estratto dall'app. Il file dei diritti potrebbe non essere corretto. Esaminare il file dei diritti per l'app. Le istruzioni seguenti illustrano come eseguire questa operazione. Quando controlli il file dei diritti, verifica la presenza di eventuali errori di sintassi. Il file deve essere in formato XML.
I diritti non sono presenti nel profilo di provisioning (sono elencati i diritti mancanti). Convertire nuovamente l'app con un profilo di provisioning che disponga di questi diritti. Esiste una mancata corrispondenza tra i diritti abilitati nel profilo di provisioning e le funzionalità abilitate nell'app. Questa mancata corrispondenza si applica anche agli ID associati a funzionalità specifiche (come i gruppi di app e l'accesso al portachiavi). In generale, è possibile creare un nuovo profilo di provisioning che abiliti le stesse funzionalità dell'app. Quando gli ID tra il profilo e l'app non corrispondono, lo App Wrapping Tool sostituisce gli ID, se possibile. Se questo errore persiste dopo aver creato un nuovo profilo di provisioning, puoi provare a rimuovere i diritti dall'app utilizzando il parametro (consulta la sezione Utilizzo del –e parametro per rimuovere i diritti da un'app–e).

Trovare i diritti esistenti di un'app firmata

Per esaminare i diritti esistenti di un'app firmata e di un profilo di provisioning:

  1. Trovare il file con estensione ipa e modificarne l'estensione in .zip.

  2. Espandere il file .zip. Questa azione crea una cartella Payload contenente il bundle .app.

  3. Usa lo strumento di co-progettazione per controllare i diritti sul pacchetto .app, dove YourApp.app è il nome effettivo del tuo pacchetto .app.

    codesign -d --entitlements :- "Payload/YourApp.app"
    
  4. Usare lo strumento di sicurezza per controllare i diritti del profilo di provisioning incorporato dell'app, dove YourApp.app si trova il nome effettivo del bundle .app.

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

Rimuovere diritti da un'app usando il parametro –e

Questo comando rimuove tutte le funzionalità abilitate nell'app che non sono presenti nel file dei diritti. Se rimuovi le funzionalità usate dall'app, l'app può danneggiarsi. Un esempio di dove si potrebbero rimuovere le funzionalità mancanti è in un'app prodotta dal fornitore che ha tutte le funzionalità per impostazione predefinita.

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

Sicurezza e privacy per il App Wrapping Tool

Quando si usa lo App Wrapping Tool, usare le procedure consigliate per la sicurezza e la privacy seguenti.

  • Il certificato di firma, il profilo di provisioning e l'app line-of-business specificati devono trovarsi nello stesso computer macOS usato per eseguire lo strumento di wrapping dell'app. Se i file si trovano in un percorso UNC, assicurarsi che il computer macOS possa accedervi. Il percorso deve essere protetto tramite IPsec o firma SMB.

    L'applicazione di cui è stato eseguito il wrapping nell'interfaccia di amministrazione deve trovarsi nello stesso computer in cui si esegue lo strumento. Se il file si trova in un percorso UNC, assicurarsi che sia accessibile nel computer che esegue l'interfaccia di amministrazione. Il percorso deve essere protetto tramite IPsec o firma SMB.

  • L'ambiente in cui viene scaricato lo App Wrapping Tool dal repository GitHub deve essere protetto tramite firma IPsec o SMB.

  • L'app elaborata deve provenire da una fonte attendibile per garantire la protezione dagli attacchi.

  • Assicurati che la cartella di output specificata nello App Wrapping Tool sia protetta, in particolare se si tratta di una cartella remota.

  • Le app iOS che includono una finestra di dialogo di caricamento file possono consentire agli utenti di aggirare, tagliare, copiare e incollare le restrizioni applicate all'app. Ad esempio, un utente potrebbe usare la finestra di dialogo Caricamento file per caricare uno screenshot dei dati dell'app.

  • Quando si monitora la cartella documenti nel dispositivo dall'interno di un'app di cui è stato eseguito il wrapping, è possibile che venga visualizzata una cartella denominata .msftintuneapplauncher. Se modifichi o elimini questo file, potrebbe influire sul corretto funzionamento delle app con restrizioni.

  • La registrazione di schemi URL personalizzati consente di reindirizzare URL specifici nell'app. iOS e iPadOS consentono a più app di registrare lo stesso schema URL personalizzato e il sistema operativo determina quale applicazione viene richiamata. Fare riferimento alla documentazione Apple Definizione di uno schema URL personalizzato per l'app per suggerimenti su come evitare conflitti di schemi URL personalizzati e linee guida di sicurezza per la gestione di URL non validi.

Risorse aggiuntive