Condividi tramite


Preparare le app iOS per i criteri di protezione delle app con lo strumento di disposizione App Intune

Usare lo strumento di wrapping delle app di Microsoft Intune per iOS per abilitare i criteri di protezione delle app di Intune per le app iOS aziendali senza modificare il codice dell'app stessa.

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

Per scaricare lo strumento, vedere Strumento di wrapping delle app di Microsoft Intune per iOS in GitHub.

Nota

In caso di problemi con l'uso dello strumento di wrapping delle app di Intune con le app, inviare una richiesta di assistenza su GitHub.

Prerequisiti generali per lo strumento di wrapping delle app

Prima di eseguire lo strumento di wrapping delle app, è necessario soddisfare alcuni prerequisiti generali:

  • Scaricare lo strumento di wrapping delle app di Microsoft Intune per iOS da GitHub.

  • Un computer macOS in cui è installato il set di strumenti Xcode versione 14.0 o successiva.

  • L'app iOS di input deve essere sviluppata e firmata dall'azienda o da un fornitore di software indipendente (ISV).

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

    • L'app di input deve essere compilata per iOS 14.0 o versione successiva.

    • L'app di input non può essere crittografata.

    • L'app di input non può avere attributi di file estesi.

    • L'app di input deve avere diritti impostati prima di essere elaborata dallo strumento di wrapping delle app di Intune. I diritti offrono all'app più autorizzazioni e funzionalità oltre a quelle generalmente concesse. Per istruzioni , vedere Impostazione dei diritti dell'app .

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

Registrare l'app con l'ID Microsoft Entra

  1. Registrare le app con l'ID Microsoft Entra. Per altre informazioni, vedere Registrare un'applicazione con 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 MAM di Intune. Per altre informazioni, vedere Concedere all'app l'accesso al servizio Gestione app per dispositivi mobili di Intune.
  4. Dopo aver completato le modifiche precedenti, eseguire la versione più recente dello strumento di wrapping delle app di Intune. Configurare le app per Microsoft Authentication Library (MSAL): aggiungere l'ID client dell'applicazione Microsoft Entra nei parametri della riga di comando con lo strumento di wrapping delle app di Intune. Per altre informazioni, vedere Parametri della riga di comando.

Nota

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

  1. Distribuire l'app.

Prerequisiti per sviluppatori Apple per lo strumento di wrapping delle app

Per distribuire le app incapsulate esclusivamente agli utenti dell'organizzazione, è necessario un account con Apple Developer Enterprise Program e diverse entità per la firma dell'app collegate all'account Apple Developer.

Per altre informazioni sulla distribuzione di app iOS internamente agli utenti dell'organizzazione, leggere la guida ufficiale alla distribuzione delle app apple developer enterprise program.

Per distribuire le app di cui è stato eseguito il wrapping in Intune, è necessario quanto segue:

  • Un account per sviluppatori con Apple Developer Enterprise Program.

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

    • Sarà necessario l'hash SHA1 del certificato di firma come parametro per lo strumento di wrapping delle app di Intune.
  • Profilo di provisioning della distribuzione interna.

Procedura per creare un account Apple Developer Enterprise

  1. Passare al sito Apple Developer Enterprise Program.

  2. Nella parte superiore destra della pagina fare clic su Registra.

  3. Leggere l'elenco di controllo degli elementi necessari per la registrazione. Fare clic su Avvia registrazione nella parte inferiore della pagina.

  4. Accedere con l'ID Apple dell'organizzazione. Se non è disponibile, fare clic su Crea ID Apple.

  5. Selezionare il tipo di entità e fare clic su Continua.

  6. Compilare il modulo con le informazioni dell'organizzazione. Fare clic su Continua. A questo punto, Apple contatta l'utente per verificare di essere autorizzato a registrare l'organizzazione.

  7. Dopo la verifica, fare clic su Accetta licenza.

  8. Dopo aver accettato la licenza, completare l'acquisto e l'attivazione del programma.

  9. Se si è l'agente del team (la persona che si unisce all'Apple Developer Enterprise Program per conto dell'organizzazione), compilare prima il team invitando i membri del team e assegnando ruoli. Per informazioni su come gestire il team, leggere la documentazione di Apple sulla gestione del team dell'account sviluppatore.

Procedura per creare un certificato di firma Apple

  1. Passare al portale apple per sviluppatori.

  2. Nella parte superiore destra della pagina fare clic su Account.

  3. Accedere con l'ID Apple dell'organizzazione.

  4. Fare clic su Certificati, ID & profili.

    Portale per sviluppatori Apple - Certificati, ID & profili

  5. Fare clic sul portale apple per sviluppatori e accedere nell'angolo in alto a destra per aggiungere un certificato iOS.

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

    Selezionare In-House e certificato ad hoc

    Nota

    Se non si prevede di distribuire l'app e si vuole testarla solo internamente, è possibile usare un certificato di sviluppo app iOS anziché un certificato per la produzione. Se si usa un certificato di sviluppo, assicurarsi che il profilo di provisioning per dispositivi mobili faccia riferimento ai dispositivi in cui verrà installata l'app.

  7. Fare clic su Avanti nella parte inferiore della pagina.

  8. Leggere le istruzioni sulla creazione di una richiesta di firma del certificato (CSR) usando l'applicazione Keychain Access nel computer macOS.

    Leggere le istruzioni per creare una richiesta csr

  9. Seguire le istruzioni precedenti per creare una richiesta di firma del certificato. Nel computer macOS avviare l'applicazione Keychain Access .

  10. Nel menu macOS nella parte superiore della schermata passare a Keychain Access > Certificate Assistant > Richiedere un certificato da un'autorità di certificazione.

    Richiedere un certificato a un'autorità di certificazione nell'accesso keychain

  11. Seguire le istruzioni del sito per sviluppatori Apple sopra riportato su come creare un file CSR. Salvare il file CSR nel computer macOS.

    Immettere le informazioni per il certificato richiesto

  12. Tornare al sito per sviluppatori Apple. Fare clic su Continua. Caricare quindi il file CSR.

  13. Apple genera il certificato di firma. Scaricarlo e salvarlo in una posizione memorabile nel computer macOS.

    Scaricare il certificato di firma

  14. Fare doppio clic sul file del certificato appena scaricato per aggiungere il certificato a un keychain.

  15. Aprire di nuovo Accesso keychain . Individuare il certificato cercandone il nome nella barra di ricerca in alto a destra. Fare clic con il pulsante destro del mouse sull'elemento per visualizzare il menu e scegliere Ottieni informazioni. Nelle schermate di esempio viene usato un certificato di sviluppo anziché un certificato di produzione.

    Aggiungere il certificato a un keychain

  16. Viene visualizzata una finestra informativa. Scorrere verso il basso e guardare sotto l'etichetta Impronte digitali . Copiare la stringa SHA1 (sfocata) da usare come argomento per "-c" per lo strumento di wrapping dell'app.

    Informazioni sull'iPhone - Impronta digitale SHA1 stringa

Passaggi per creare un profilo di provisioning di distribuzione In-House

  1. Tornare al portale dell'account Apple Developer e accedere con l'ID Apple aziendale.

  2. Fare clic su Certificati, ID & profili.

  3. Fare clic sul portale apple per sviluppatori e accedere nell'angolo in alto a destra per aggiungere un profilo di provisioning iOS.

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

    Selezionare Profilo di provisioning interno

  5. Fare clic su Continua. Assicurarsi di collegare il certificato di firma generato in precedenza al profilo di provisioning.

  6. Seguire la procedura per scaricare il profilo (con estensione .mobileprovision) nel computer macOS.

  7. Salvare il file in un percorso memorabile. Questo file verrà usato per il parametro -p durante l'uso dello strumento di wrapping delle app.

Scaricare lo strumento di wrapping delle app

  1. Scaricare i file per lo strumento di wrapping delle app da GitHub a un computer macOS.

  2. Fare doppio clic su Microsoft Intune Application Restrictions Packager per iOS.dmg. Verrà visualizzata una finestra con il Contratto di licenza con l'utente finale. Leggere attentamente il documento.

  3. Scegliere Accetta di accettare il contratto di licenza, che monta il pacchetto nel computer.

Eseguire lo strumento di wrapping delle app

Importante

Intune rilascia regolarmente gli aggiornamenti allo strumento di wrapping delle app di Intune. Controllare regolarmente lo strumento di wrapping delle app di Intune per iOS per gli aggiornamenti e incorporare nel ciclo di rilascio dello sviluppo software per assicurarsi che le app supportano le impostazioni più recenti dei criteri di protezione delle app.

Usare il terminale

Aprire il terminale macOS ed eseguire 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> [-b [<output app build string>]] [-v] [-e] [-x /<array of extension provisioning profile paths>]

Nota

Alcuni parametri sono facoltativi, come illustrato nella tabella seguente.

Esempio: Il comando di esempio seguente esegue lo strumento di wrapping delle app nell'app denominata MyApp.ipa. Un profilo di provisioning e l'hash SHA-1 del certificato di firma vengono specificati e usati per firmare l'app di cui è stato eseguito il wrapping. L'app di output (MyApp_Wrapped.ipa) viene creata e archiviata 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"  -v true

Parametri della riga di comando

È possibile usare i parametri della riga di comando seguenti con lo strumento di wrapping delle app:

Esempio: Il comando di esempio seguente esegue lo strumento di wrapping delle app, incorporando i comandi necessari quando si esegue 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 true
Proprietà Come usarlo
-io <Path of the input native iOS application file>. Il nome del file deve terminare in .app o con estensione 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 strumento di wrapping delle app.
-corrente alternata <Client ID of the input app if the app uses the Microsoft Authentication Library> Questo è il GUID nel campo ID client della presentazione dell'app nel pannello Registrazione app.
-Ar <Redirect/Reply URI of the input app if the app uses the Microsoft Authentication Library> Si tratta dell'URI di reindirizzamento configurato nella registrazione dell'app. In genere è il protocollo URL dell'applicazione a cui l'app Microsoft Authenticator restituisce 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) Restituisce messaggi dettagliati alla console. È consigliabile usare questo flag per eseguire il debug di eventuali errori.
-e (Facoltativo) Usa questo flag per fare in modo che lo strumento di wrapping delle app rimuova i diritti mancanti durante l'elaborazione dell'app. Per altri dettagli, vedere Impostazione dei diritti dell'app .
-Xe (Facoltativo) Stampa informazioni sulle estensioni iOS nell'app e sui diritti necessari per usarle. Per altri dettagli, vedere Impostazione dei diritti dell'app .
-x (Facoltativo) <An array of paths to extension provisioning profiles>. Usa questa opzione se l'app necessita di profili di provisioning delle estensioni.
-b (Facoltativo) Usare -b senza un argomento se si vuole che l'app di output con wrapping abbia la stessa versione del bundle dell'app di input (scelta non consigliata).

Usare -b <custom bundle version> 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 CFBundleVersion dell'app nativa in base al 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 le altre proprietà di IntuneMAMPackager come -i, -o e -p. Vedere Usare un plist per immettere gli argomenti.
-Dt (Facoltativo) Disabilitare la raccolta di dati di telemetria client di Microsoft Intune.
-Dl (Facoltativo) Disabilitare i log MSAL dai log di INtune per le applicazioni integrate con MSAL e implementare il proprio callback di registrazione MSAL.

Usare un plist per inserire gli argomenti

Un modo semplice per eseguire lo strumento di wrapping delle app 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 del modulo.

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

Chiave 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
Verbose Enabled Booleano falso Uguale a -v
Rimuovere i diritti mancanti Booleano falso Uguale a -e
Impedisci aggiornamento di compilazione predefinito Booleano falso Equivalente all'uso di -b senza argomenti
Override della stringa di compilazione Stringa vuoto CFBundleVersion personalizzato dell'app di output di cui è stato eseguito il wrapping
Percorsi del profilo di provisioning delle estensioni Matrice di stringhe vuoto Matrice di profili di provisioning delle estensioni per l'app.
Disabilitare i dati di telemetria Booleano falso Uguale a -dt
Disabilitare l'override del log MSAL Booleano falso Uguale a -dl

Eseguire IntuneMAMPackager con il plist come unico argomento:

./IntuneMAMPackager –f Parameters.plist

Post-wrapping

Al termine del processo di wrapping, verrà visualizzato il messaggio "L'applicazione è stata sottoposta a wrapping". Se si verifica un errore, vedere Messaggi di errore per la Guida.

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 si carica un'app di cui è stato eseguito il wrapping, è possibile provare ad aggiornare una versione precedente dell'app se in Intune era già stata distribuita una versione precedente (incapsulata o nativa). Se si verifica un errore, caricare l'app come nuova app ed eliminare la versione precedente.

È ora possibile distribuire l'app ai gruppi di utenti e ai criteri di protezione delle app di destinazione nell'app. L'app verrà eseguita nel dispositivo usando i criteri di protezione delle app specificati.

Con quale frequenza è necessario eseguire il wrapping dell'applicazione iOS con lo strumento di wrapping delle app di Intune?

Gli scenari principali in cui è necessario rieseguire il wrapping 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.
  • Lo strumento di wrapping delle app di Intune per iOS ha rilasciato una nuova versione che abilita correzioni di bug chiave o nuove funzionalità specifiche dei criteri di protezione delle applicazioni di Intune. Questo avviene dopo 6-8 settimane tramite il repository GitHub per lo strumento di wrapping delle app di Microsoft Intune per iOS.

Per iOS/iPadOS, mentre è possibile eseguire il wrapping con un profilo di certificazione/provisioning diverso rispetto all'originale usato per firmare l'app, se i diritti specificati nell'app non sono inclusi nel nuovo profilo di provisioning, il wrapping avrà esito negativo. L'uso dell'opzione della riga di comando "-e", che rimuove eventuali diritti mancanti dall'app, per forzare il wrapping in modo che non abbia esito negativo in questo scenario può causare funzionalità interrotte nell'app.

Alcune procedure consigliate per il rewrapping includono:

  • Verificare che un profilo di provisioning diverso disponga di tutti i diritti necessari come 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 riesce, nella console verrà 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. Verificare di avere le 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. Assicurarsi che il nome dell'applicazione di input specificato sia corretto.
Specificare un percorso valido per l'applicazione di output. Assicurarsi che il percorso dell'applicazione di output specificata esista e che sia corretto.
Specificare un profilo di provisioning di input valido. Assicurarsi di aver fornito un nome e un'estensione del profilo di provisioning validi. Il profilo di provisioning potrebbe non avere diritti oppure non è stata inclusa l'opzione della riga di comando –p.
L'applicazione di input specificata non è stata trovata. Specificare un nome e un percorso dell'applicazione di input validi. Verificare che il percorso dell'app di input sia valido ed esistente. Verificare che l'app di input esista in tale posizione.
Il file del profilo di provisioning di input specificato non è stato trovato. Specificare un file di 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. Assicurarsi che il percorso di output specificato sia valido ed esistente.
L'app di output non ha estensione ipa . Solo le app con le estensioni .app e ipa vengono accettate dallo strumento di wrapping delle app. 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. Assicurarsi di aver scaricato il certificato di firma corretto dal portale per sviluppatori Apple. Il certificato potrebbe essere scaduto o potrebbe mancare 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 lo strumento di wrapping delle app. Verificare inoltre che il certificato di firma abbia un nome univoco all'interno del keychain del computer macOS host. Se sono presenti più versioni dello stesso certificato all'interno del keychain, questo errore può essere restituito.
L'applicazione di input specificata non è valida. Specificare un'applicazione valida. Assicurarsi di avere un'applicazione iOS valida compilata come file .app o ipa.
L'applicazione di input specificata è crittografata. Specificare un'applicazione non crittografata valida. Lo strumento di wrapping delle app non supporta le app crittografate. Fornire un'app non crittografata.
L'applicazione di input specificata non è in 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. Questo può avere vantaggi per la sicurezza. Per altre informazioni sui vantaggi per la sicurezza, vedere la documentazione per sviluppatori Apple.
L'app di input specificata è già stata sottoposta a wrapping. Specificare un'applicazione non compressa valida. Non è possibile elaborare un'app che è già stata elaborata dallo strumento. Se si vuole elaborare di nuovo un'app, eseguire 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 la firma delle app. Consultare la documentazione per sviluppatori per informazioni su come firmare un'app di cui è stato eseguito il wrapping.
L'applicazione di input specificata deve essere in formato ipa o .app. Solo .app e le estensioni con estensione ipa vengono accettate dallo strumento di wrapping delle app. Verificare che il file di input abbia un'estensione valida e che sia stato compilato come file .app o con estensione ipa.
L'app di input specificata è già stata sottoposta a wrapping e si trova nella versione più recente del modello di criteri. Lo strumento di wrapping delle app non esegue il wrapping di un'app di cui è stato eseguito il wrapping esistente con la versione più recente del modello di criteri.
AVVISO: non è stato specificato un hash del certificato SHA1. Assicurarsi che l'applicazione sottoposta a wrapping sia firmata prima della distribuzione. Assicurarsi di specificare un hash SHA1 valido dopo il flag della riga di comando –c.

Raccolta di 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 iOS nel dispositivo e selezionare l'app LOB.
  2. Selezionare Microsoft Intune.
  3. Attivare o disattivare l'impostazione Visualizza console di diagnostica.
  4. Avviare l'applicazione LOB.
  5. Fare clic sul collegamento "Get Started".
  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 lo strumento di wrapping delle app di Intune 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 devono determinare se il problema è correlato allo strumento di wrapping delle app o all'app stessa. Per recuperare queste informazioni, seguire questa procedura:

  1. Riprodurre 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 incapsulate presenteranno anche 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 esaminare e inoltrare a Microsoft, se necessario.

Requisiti di certificato, profilo di provisioning e autenticazione

Lo strumento di wrapping delle app per iOS ha alcuni requisiti che devono essere soddisfatti per garantire funzionalità complete.

Requisito Dettagli
Profilo di provisioning iOS Assicurarsi che il profilo di provisioning sia valido prima di includerlo. Lo strumento di wrapping delle app non controlla se il profilo di provisioning è scaduto durante l'elaborazione di un'app iOS. Se viene specificato un profilo di provisioning scaduto, lo strumento di wrapping dell'app includerà il profilo di provisioning scaduto e non si saprà che si è verificato un problema fino a quando l'app non viene installata in un dispositivo iOS.
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 delle app iOS. Se viene fornito l'hash per un certificato scaduto, lo strumento elaborerà e firmerà l'app, ma non verrà installato nei dispositivi.

Assicurarsi che il certificato fornito per la firma dell'app di cui è stato eseguito il wrapping abbia una corrispondenza 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 per il funzionamento della crittografia. Nei dispositivi in cui è stata distribuita un'app incapsulata, toccando la barra di stato nel dispositivo sarà necessario che l'utente accinga di nuovo l'accesso 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) chiudendo l'app e quindi riavviandola.

Impostazione dei diritti dell'app

Prima di eseguire il wrapping dell'app, è possibile concedere diritti per concedere all'app autorizzazioni e funzionalità aggiuntive che superano le operazioni generalmente disponibili per un'app. Un file entitlement viene usato durante la firma del codice per specificare autorizzazioni speciali all'interno dell'app, ad esempio l'accesso a un keychain condiviso. Servizi app specifici denominati funzionalità sono abilitati all'interno di Xcode durante lo sviluppo di app. Una volta abilitate, le funzionalità vengono riflesse nel file entitlements. Per altre 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 lo strumento di wrapping delle app 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 comunicazioni interprocesso aggiuntive tra le app.

Per abilitare i gruppi di app, aprire il riquadro Funzionalità e fare clic su ON in Gruppi di app. È possibile aggiungere gruppi di app o selezionare quelli esistenti.
Quando si usano gruppi di app, usare la notazione DNS inversa:

group.com.companyName.AppGroup
Modalità di sfondo L'abilitazione 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 predefinito presente in dispositivi specifici per archiviare i file in un formato crittografato su disco. È necessario effettuare il provisioning dell'app per usare la protezione dei dati.
Acquisto in-app L'acquisto in-app incorpora un negozio direttamente nella tua app consentendoti di connetterti allo Store ed elaborare in modo sicuro i pagamenti dall'utente. Puoi usare l'acquisto in-app per raccogliere il pagamento per funzionalità avanzate o per contenuti aggiuntivi utilizzabili dalla tua app.
Condivisione keychain L'abilitazione della condivisione keychain consente all'app di condividere le password nel keychain con altre app sviluppate dal team. Quando si usa la condivisione keychain, usare 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 di estensione di rete.
Notifiche push Apple Push Notification Service (APN) consente a un'app che non è in esecuzione in primo piano di notificare all'utente che dispone 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 dell'accessorio wireless L'abilitazione della configurazione degli accessori wireless aggiunge il framework external accessory al progetto e consente all'app di configurare gli accessori MFi Wi-Fi.

Passaggi per abilitare i diritti

  1. Abilitare le funzionalità nell'app:

    a. In Xcode passare alla destinazione dell'app e fare clic su Funzionalità.

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

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

    d. Compilare e firmare l'app per il wrapping.

  2. Abilitare i diritti nel profilo di provisioning:

    a. Accedere a Apple Developer Member Center.

    b. Creare un profilo di provisioning per l'app. Per istruzioni, vedere Come ottenere i prerequisiti per lo strumento di wrapping delle app di Intune per iOS.

    c. Nel profilo di provisioning abilitare gli stessi diritti dell'app. Dovrai 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 e quindi di eseguire il wrapping dell'app.

Risolvere gli errori comuni con i diritti

Se lo strumento di wrapping delle app per iOS mostra un errore di entitlement, provare la procedura di risoluzione dei problemi seguente.

Problema Causa Risoluzione
Impossibile analizzare i diritti generati dall'applicazione di input. Lo strumento di wrapping delle app non è in grado di leggere il file entitlements estratto dall'app. Il file entitlements potrebbe non essere valido. Esaminare il file entitlements per l'app. Le istruzioni seguenti illustrano come eseguire questa operazione. Quando si esamina il file entitlements, verificare la presenza di una sintassi non valida. Il file deve essere in formato XML.
I diritti sono mancanti nel profilo di provisioning (sono elencati i diritti mancanti). Creare di nuovo il pacchetto dell'app con un profilo di provisioning con 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, ad esempio i gruppi di app e l'accesso al keychain. In genere, è possibile creare un nuovo profilo di provisioning che abilita le stesse funzionalità dell'app. Quando gli ID tra il profilo e l'app non corrispondono, lo strumento di wrapping delle app sostituirà gli ID se è in grado di farlo. Se si riceve ancora questo errore dopo la creazione di un nuovo profilo di provisioning, è possibile provare a rimuovere i diritti dall'app usando il parametro –e (vedere Uso del parametro –e per rimuovere i diritti da un'app).

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. Verrà generata una cartella Payload contenente il bundle .app.

  3. Usare lo strumento di progettazione condivisa per controllare i diritti nel bundle .app, dove è il nome effettivo del bundle di .app:Use the codesign tool to check the entitlements on the .app bundle, where YourApp.app is the actual name of your .app bundle.:

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

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

Rimuovere i diritti da un'app usando il parametro –e

Questo comando rimuove tutte le funzionalità abilitate nell'app che non sono presenti nel file entitlements. Se rimuovi le funzionalità usate dall'app, può interrompere l'app. Un esempio di dove è possibile 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> -e

Sicurezza e privacy per lo strumento di wrapping delle app

Usare le procedure consigliate per la sicurezza e la privacy seguenti quando si usa lo strumento di wrapping delle app.

  • Il certificato di firma, il profilo di provisioning e l'app line-of-business specificata 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 siano accessibili dal computer macOS. Il percorso deve essere protetto tramite firma IPsec o SMB.

    L'applicazione sottoposta a wrapping importata 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 firma IPsec o SMB.

  • L'ambiente in cui lo strumento di wrapping delle app viene scaricato dal repository GitHub deve essere protetto tramite la firma IPsec o SMB.

  • L'app elaborata deve provenire da un'origine affidabile per garantire la protezione dagli attacchi.

  • Assicurarsi che la cartella di output specificata nello strumento di wrapping delle app sia protetta, in particolare se si tratta di una cartella remota.

  • Le app iOS che includono una finestra di dialogo di caricamento di file possono consentire agli utenti di aggirare, tagliare, copiare e incollare le restrizioni applicate all'app. Ad esempio, un utente può usare la finestra di dialogo di 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 si modifica o si elimina questo file, questo potrebbe influire sul corretto funzionamento delle app con restrizioni.

  • La registrazione di schemi URL personalizzati consente il reindirizzamento di 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. Vedere la documentazione di Apple Definizione di uno schema URL personalizzato per l'app per consigli che consentono di evitare conflitti di schemi URL personalizzati e linee guida sulla sicurezza per la gestione degli URL non valido.

Vedere anche