Uso delle funzionalità in Xamarin.iOS
L'aggiunta di funzionalità a un'applicazione spesso richiede un'ulteriore configurazione del provisioning. Questa guida illustra la configurazione necessaria per tutte le funzionalità.
Apple offre agli sviluppatori alcune capacità, spesso chiamate servizi app, che consentono di estendere le funzionalità e di ampliare le potenzialità dell'uso delle app iOS. Le funzionalità consentono agli sviluppatori di aggiungere all'applicazione una maggiore integrazione delle funzioni della piattaforma, ad esempio: la possibilità di avviare transazioni monetarie dall'app, servizi del dispositivo aggiuntivi, come Siri, e altro ancora. Queste funzionalità possono essere usate con i progetti Xamarin.iOS. L'elenco completo dei servizi è il seguente:
- Gruppi di app
- Domini associati
- Protezione dei dati
- Area giochi
- HealthKit
- HomeKit
- Configurazione accessori wireless
- iCloud
- Acquisto in-app
- Audio Inter-App
- Apple Pay
- Portafoglio
- Notifica push
- VPN personale
- Siri
- Mappe
- Modalità in background
- Condivisione del keychain
- Estensioni di rete
- Configurazione area sensibile
- A percorsi multipli
- Lettura tag NFC
Le funzionalità possono essere abilitate tramite Visual Studio per Mac e Visual Studio 2019 oppure manualmente in Apple Developer Portal. Per alcune funzionalità, ad esempio, Wallet, Apple Pay e iCloud, è necessaria una configurazione aggiuntiva degli ID delle app.
Questa guida illustra come abilitare ognuno di questi servizi app nell'applicazione sia automaticamente in Visual Studio sia manualmente tramite il centro sviluppatori, inclusa l'eventuale configurazione aggiuntiva necessaria.
Aggiunta di servizi app
Per usare le funzionalità, l'app deve avere un profilo di provisioning valido contenente un ID app con il servizio corretto abilitato. La creazione di questo profilo di provisioning può essere eseguita in Visual Studio per Mac e Visual Studio 2019 oppure manualmente nel centro Apple Developer.
Questa sezione illustra come usare il provisioning automatico di Visual Studio o il centro sviluppatori per abilitare la maggior parte delle funzionalità. Alcune funzionalità, ad esempio Wallet, iCloud, Apple Pay e i gruppi di app, che richiedono una configurazione aggiuntiva, sono illustrate in dettaglio nelle guide specifiche.
Importante
Non tutte le funzionalità possono essere aggiunte e gestite in Visual Studio con il provisioning automatico. L'elenco seguente contiene le funzionalità supportate:
- HealthKit
- HomeKit
- VPN personale
- Configurazione accessori wireless
- Audio Inter-App
- SiriKit
- Hotspot
- Estensioni di rete
- Lettura tag NFC
- A percorsi multipli
Le funzionalità Notifiche push, Game Center, Acquisto in-app, Mappe, Condivisione del keychain, Domini associati e Protezione dati non sono attualmente supportate. Per aggiungere queste funzionalità, usare il provisioning manuale e seguire i passaggi della sezione Centro sviluppatori.
Utilizzo di IDE
Le funzionalità vengono aggiunte a Entitlements.plist in Visual Studio per Mac. Per aggiungere funzionalità, seguire questa procedura:
Aprire il file Info.plist dell'applicazione iOS e selezionare lo schema Automatically Provisioning (Provisioning automatico) e il Team nella casella combinata. Seguire i passaggi della guida Provisioning automatico, se necessario:
Aprire il file Entitlements.plist e selezionare la funzionalità che si vuole aggiungere:
La selezione di una funzionalità consente di ottenere due risultati:
- Aggiunta di tale funzionalità all'ID app
- Aggiunta della coppia chiave/valore degli entitlement al file Entitlements.plist.
Visual Studio per Mac avviserà quando queste attività saranno state completate visualizzando il messaggio di operazione riuscita seguente:
Uso del centro sviluppatori
L'uso del centro sviluppatori è un processo in due passaggi che richiede la creazione di un ID app e quindi l'uso di tale ID app per creare un profilo di provisioning. Questi passaggi sono indicati in dettaglio di seguito.
Creazione di un ID app con un servizio app
Passare al centro sviluppatori Apple su un Mac (il computer host di compilazione se si usa un computer Windows) ed eseguire l'accesso.
Selezionare Certificates, Identifiers, and Profiles (Certificati, identificatori e profili):
In Identifiers (Identificatori) selezionare App IDs (ID app):
Fare clic sul pulsante + nell'angolo in alto a destra per creare un nuovo ID app.
Immettere una descrizione dell'ID app e immettere un ID bundle nel formato
com.domain.appname
. Questo ID bundle deve corrispondere all'ID bundle nel progetto:In App Services (Servizi app) selezionare il servizio o i servizi necessari nell'app:
Fare clic su Continue (Continua).
Confermare l'ID app. Ogni servizio presenterà uno degli stati seguenti: Enabled (Abilitato), Disabled (Disabilitato) o Configurable (Configurabile), come illustrato sotto. Se è Enabled (Abilitato), è possibile usarlo in un profilo di provisioning. Se è Configurable (Configurabile), è necessaria un'ulteriore configurazione per questa funzionalità. Questi passaggi aggiuntivi sono descritti più dettagliatamente nelle sezioni successive.
Fare clic su Register (Registra) e quindi su Done (Fine). Il nuovo ID app creato verrà visualizzato nell'elenco di ID app iOS.
Creazione di un profilo di provisioning
Creare ora un profilo di provisioning contenente tale ID app. Segui i passaggi riportati di seguito:
Nel Centro per sviluppatori Apple passare a Profili > di provisioning Tutti:
Fare clic sul pulsante + nell'angolo in alto a destra per creare un nuovo profilo di provisioning.
Selezionare il tipo di profilo di provisioning necessario e fare clic su Continue (Continua):
Dall'elenco a discesa selezionare l'ID app creato nei passaggi precedenti e fare clic su Continue (Continua):
Selezionare i certificati usati per firmare l'app e fare clic su Continue (Continua):
Selezionare i dispositivi da includere in questo profilo e fare clic su Continue (Continua):
Assegnare un nome al profilo per poterlo identificare e fare clic su Continue (Continua) per generare il profilo:
Fare clic sul pulsante Download (Scarica) per scaricarlo e fare doppio clic sul file in Finder per installare il profilo di provisioning.
Se si usa Visual Studio, verificare che sia selezionata l'opzione Provisioning manuale.
In Visual Studio per Mac/Visual Studio passare a Project Options > Bundle Signing (Firma bundle opzioni progetto) e impostare il profilo di provisioning su quello appena creato:
Importante
Potrebbe anche essere necessario impostare le chiavi per gli entitlement nel file Entitlements.plist e le chiavi per la privacy nel file Info.plist. Per altre informazioni su questi entitlement, vedere la guida Uso degli entitlement.
Passaggi successivi
Dopo che una funzionalità è stata abilitata sul lato server, sono necessarie ancora alcune operazioni per consentire all'app di usarla. Nell'elenco seguente vengono descritti i passaggi aggiuntivi che potrebbero essere necessari:
- Usare lo spazio dei nomi del framework nell'app.
- Aggiungere all'app gli entitlement necessari. Per informazioni dettagliate sugli entitlement necessari e su come aggiungerli, vedere la guida Uso degli entitlement.
Risoluzione dei problemi relativi alle funzionalità
Il seguente è un elenco dettagliato di alcuni dei problemi più comuni che possono costituire un ostacolo quando si sviluppa un'app con un servizio app abilitato.
- Assicurarsi che l'ID corretto sia stato creato e registrato accuratamente nella sezione Certificates, IDs & Profiles (Certificati, ID e profili) del portale per sviluppatori di Apple.
- Assicurarsi che il servizio sia stato aggiunto all'ID dell'app (o dell'estensione) e che il servizio sia configurato per usare il gruppo di app/ID esercente/contenitore creato sopra in Certificates, IDs & Profiles (Certificati, ID e profili) del portale per sviluppatori di Apple.
- Assicurarsi che i profili di provisioning e gli ID delle app siano stati installati e che il file Info.plist dell'app (nel progetto Xamarin) usi uno degli ID app configurati sopra.
- Assicurarsi che il file Entitlements.plist dell'app (nel progetto Xamarin) abbia il servizio corretto abilitato.
- Assicurarsi che in info.plist siano impostate le chiavi per la privacy appropriate
- In Firma del bundle iOS dell'app assicurarsi che Entitlement personalizzati sia impostato su Entitlements.plist. Questa non è l'impostazione predefinita per le build di debug e del simulatore iOS.
Riepilogo
Questa guida ha illustrato le funzionalità, ovvero i servizi app, e ha descritto come possono essere abilitate in Visual Studio e nel centro sviluppatori Apple. Ha anche spiegato in dettaglio come configurare servizi più complessi, ad esempio Wallet, iCloud, Apple Pay e Gruppi di app. Ha infine illustrato i passaggi successivi per ottenere le opzioni per la configurazione e la risoluzione di problemi semplici.