Funzionalità di iOS

In iOS le app .NET multipiattaforma dell'interfaccia utente dell'app (.NET MAUI) vengono eseguite in una sandbox che fornisce un set di regole che limitano l'accesso tra l'app e le risorse di sistema o i dati utente. Apple offre funzionalità, note anche come servizi app, come mezzo per estendere le funzionalità e ampliare l'ambito di ciò che le app iOS possono eseguire. Le funzionalità consentono di aggiungere un'integrazione più approfondita con le funzionalità della piattaforma all'app, ad esempio l'integrazione con Siri. Per altre informazioni sulle funzionalità, vedere Funzionalità su developer.apple.com.

Le funzionalità vengono aggiunte al profilo di provisioning dell'app e vengono usate durante la firma del codice dell'app. Il profilo di provisioning deve contenere un ID app, che corrisponde all'identificatore del bundle dell'app, con le funzionalità necessarie abilitate. Il profilo di provisioning può essere creato automaticamente in Visual Studio o manualmente nell'account Apple Developer.

Le funzionalità sono strettamente correlate al concetto di diritti. Entrambi richiedono l'espansione della sandbox in cui viene eseguita l'app, per offrire funzionalità aggiuntive. I diritti vengono in genere aggiunti durante lo sviluppo dell'app, mentre le funzionalità vengono in genere aggiunte quando si firma l'app per la distribuzione. Tuttavia, quando il provisioning automatico è abilitato, l'aggiunta di determinati diritti all'app aggiornerà anche le funzionalità per l'app nel profilo di provisioning. Per altre informazioni sui diritti, vedere Entitlement.

Aggiungere funzionalità con Visual Studio

Le funzionalità possono essere aggiunte a un profilo di provisioning in Visual Studio. Questo approccio richiede l'uso del provisioning automatico e funziona solo per un subset di funzionalità. Per altre informazioni sul provisioning automatico, vedere Provisioning automatico per le app iOS.

L'elenco seguente mostra le funzionalità di cui è possibile eseguire automaticamente il provisioning tramite Visual Studio:

  • HealthKit
  • HomeKit
  • Configurazione hotspot
  • Audio tra app
  • A percorsi multipli
  • Estensioni di rete
  • Lettore tag di comunicazione nei campi vicini
  • VPN personale
  • Siri
  • Configurazione accessori wireless

In Visual Studio tutte le funzionalità vengono aggiunte al file Entitlements.plist dell'app. Le funzionalità elencate in precedenza vengono aggiunte anche al profilo di provisioning. Per altre informazioni sui diritti, tra cui come aggiungere un file entitlement al progetto, vedere Entitlement.

Per aggiungere una funzionalità in Visual Studio:

  1. In Visual Studio verificare che l'IDE sia associato a un host di compilazione Mac. Per altre informazioni, vedere Associare a Mac per lo sviluppo iOS.

  2. In Visual Studio abilitare il provisioning automatico per il progetto. Per altre informazioni, vedere Abilitare il provisioning automatico.

  3. In Visual Studio aggiungere un file Entitlements.plist al progetto. Per altre informazioni, vedere Aggiungere un file Entitlements.plist.

  4. In Esplora soluzioni fare doppio clic sul file Entitlements.plist dalla cartella Platforms > iOS del progetto di app .NET MAUI per aprirlo nell'editor entitlement.

  5. Nell'editor entitlement selezionare e configurare tutti i diritti necessari per l'app:

    Editor entitlement per iOS di Visual Studio.

  6. Salvare le modifiche apportate al file Entitlements.plist per aggiungere le coppie chiave/valore entitlement al file e aggiungere il servizio app all'ID app.

Potrebbe anche essere necessario impostare le chiavi di privacy in Info.plist, per determinate funzionalità.

Aggiungere funzionalità nell'account Apple Developer

Tutte le funzionalità possono essere aggiunte al profilo di provisioning dell'app nell'account per sviluppatore Apple. Questo approccio richiede l'uso del provisioning manuale e funziona per tutte le funzionalità. Per altre informazioni sul provisioning manuale, vedere Provisioning manuale per le app iOS.

L'aggiunta di una funzionalità nell'account sviluppatore Apple è un processo in più passaggi che richiede la creazione di un ID app, la creazione di un profilo di provisioning e l'abilitazione del provisioning manuale.

Quando si aggiunge una nuova funzionalità al profilo di provisioning, è anche necessario aggiungere la stessa funzionalità al file Entitlements.plist dell'app e assicurarsi che l'app utilizza questo file. Per altre informazioni, vedere Entitlement. Potrebbe anche essere necessario impostare le chiavi di privacy in Info.plist, per determinate funzionalità.

Creare un ID app con un servizio app

Un ID app è simile a una stringa DNS inversa, che identifica in modo univoco un'app ed è necessario per identificare l'app che si sta distribuendo. L'ID app deve essere identico all'identificatore del bundle per l'app.

Importante

L'identificatore del bundle per un'app MAUI .NET viene archiviato nel file di progetto come proprietà ID applicazione. In Visual Studio, in Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto di app .NET MAUI e scegliere Proprietà. Passare quindi alla scheda Generale condiviso > MAUI. Il campo ID applicazione elenca l'identificatore del bundle.

Quando il valore del campo ID applicazione viene aggiornato, il valore dell'identificatore bundle in Info.plist verrà aggiornato automaticamente.

Esistono due tipi di ID app, espliciti e jolly. Un ID app esplicito è univoco per una singola app e in genere assume il formato com.domainname.myid. Un ID app esplicito consente l'installazione di un'app, con un identificatore di bundle corrispondente, a un dispositivo. Gli ID app espliciti sono necessari per le app che abilitano funzionalità specifiche dell'app.

È possibile creare un ID app esplicito seguendo questa procedura:

  1. In un Web browser passare alla sezione Identificatori dell'account Apple Developer e fare clic sul + pulsante .

  2. Nella pagina Registra un nuovo identificatore selezionare ID app e fare clic sul pulsante Continua.

  3. Nella pagina Registra un nuovo identificatore selezionare il tipo di app e fare clic sul pulsante Continua.

  4. Nella pagina Registra un ID app specificare una descrizione e impostare l'ID bundle su Esplicito. Immettere quindi un ID app nel formato com.domainname.myid:

    Screenshot della nuova pagina di registrazione dell'ID app con i campi obbligatori popolati.

  5. Nella pagina Registra UN ID app abilitare le funzionalità necessarie nelle schede Funzionalità e servizio app:

    Screenshot delle funzionalità abilitate.

  6. Nella pagina Registra UN ID app fare clic sul pulsante Continua.

  7. Nella pagina Conferma ID app esaminare le informazioni e quindi fare clic sul pulsante Registra. Se l'ID app viene registrato correttamente, si tornerà alla sezione Identificatori dell'account Apple Developer.

  8. Nella pagina Identificatori fare clic sull'ID app appena creato.

  9. Nella pagina Modifica configurazione ID app qualsiasi funzionalità abilitata che richiede un'installazione aggiuntiva avrà un pulsante Configura :

    Screenshot delle funzionalità di modifica.

    Fare clic su qualsiasi pulsante Configura per configurare le funzionalità abilitate. Per altre informazioni, vedere Configurare le funzionalità delle app in developer.apple.com.

Creare un profilo di provisioning

Dopo aver creato un ID app, è necessario creare un profilo di provisioning per l'ID app. È quindi necessario aver creato in precedenza un certificato di firma e aggiunto un dispositivo all'account apple developer. Per altre informazioni, vedere Creare un certificato di firma e Aggiungere un dispositivo.

È possibile creare un profilo di provisioning seguendo questa procedura:

  1. In un Web browser passare alla sezione Profili dell'account Apple Developer e fare clic sul + pulsante .

  2. Nella sezione Sviluppo della pagina Registra un nuovo profilo di provisioning selezionare Sviluppo di app iOS (o un tipo di profilo di distribuzione nella sezione Distribuzione) e fare clic sul pulsante Continua:

    Screenshot della creazione di un profilo di provisioning per lo sviluppo di app iOS.

  3. Nella pagina Genera un profilo di provisioning selezionare l'ID app e quindi fare clic sul pulsante Continua:

    Screenshot dell'aggiunta di un ID app a un profilo di provisioning.

  4. Nella pagina Genera un profilo di provisioning selezionare i certificati da includere nel profilo di provisioning e quindi fare clic sul pulsante Continua:

    Screenshot dell'aggiunta di un certificato a un profilo di provisioning.

  5. Nella pagina Genera profilo di provisioning selezionare i dispositivi in cui verrà installata l'app e quindi fare clic sul pulsante Continua:

    Screenshot dell'aggiunta di un dispositivo a un profilo di provisioning.

  6. Nella pagina Genera profilo di provisioning specificare un nome del profilo di provisioning e quindi fare clic sul pulsante Genera:

    Screenshot della denominazione di un profilo di provisioning.

Abilitare il provisioning manuale

Dopo aver creato un profilo di provisioning, è necessario scaricarlo da Visual Studio e impostare come profilo di provisioning per il progetto:

  1. In Visual Studio scaricare il profilo di provisioning appena creato in modo che sia disponibile per la firma dell'app. Per altre informazioni, vedere Scaricare i profili di provisioning in Visual Studio.
  2. In Visual Studio abilitare il provisioning manuale per il progetto. Per altre informazioni, vedere Abilitare il provisioning manuale.

Risoluzione dei problemi

L'elenco seguente illustra in dettaglio i problemi comuni che possono causare problemi durante lo sviluppo di un'app iOS MAUI .NET che usa funzionalità:

  • Assicurarsi che l'ID app corretto sia stato creato e registrato nella sezione Identificatori dell'account sviluppatore Apple.
  • Assicurarsi che la funzionalità sia stata aggiunta all'ID app e che la funzionalità sia configurata usando i valori corretti.
  • Assicurarsi che il profilo di provisioning sia stato installato nel computer di sviluppo e che il file Info.plist dell'app usi un identificatore di bundle identico all'ID app.
  • Assicurarsi che il file Entitlements.plist dell'app disponga dei diritti corretti abilitati.
  • Assicurarsi che tutte le chiavi di privacy necessarie siano impostate in Info.plist.
  • Assicurarsi che l'app utilizza il file Entitlements.plist .