Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nelle app Mac Catalyst .NET Multi-platform App UI (.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 delle app Mac Catalyst. 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 deve essere creato 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. Per altre informazioni sui diritti, vedere Entitlement.
Aggiungere funzionalità nell'account Apple Developer
Le funzionalità possono essere aggiunte al profilo di provisioning dell'app nell'account apple developer. Si tratta di un processo in più passaggi che richiede la creazione di un certificato di firma, un ID app e un profilo di provisioning.
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 certificato di firma
La creazione di un profilo di provisioning richiede la creazione di un certificato di firma in precedenza. Il tipo di certificato di firma dipende dal canale di distribuzione previsto per l'app:
- Se intendi distribuire l'app tramite Mac App Store, vedi Creare un certificato di distribuzione in Pubblicare un'app Mac Catalyst per la distribuzione di Mac App Store.
- Se intendi distribuire l'app all'esterno di Mac App Store, vedi Creare un certificato dell'applicazione ID sviluppatore in Pubblicare un'app Mac Catalyst per la distribuzione all'esterno di Mac App Store.
- Se intendi distribuire l'app a un numero limitato di utenti su dispositivi registrati, all'esterno di Mac App Store, vedi Creare un certificato di sviluppo in Pubblicare un'app Mac Catalyst per la distribuzione ad hoc.
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:
In un Web browser passare alla sezione Identificatori dell'account Apple Developer e fare clic sul + pulsante .
Nella pagina Registra un nuovo identificatore selezionare ID app e fare clic sul pulsante Continua.
Nella pagina Registra un nuovo identificatore selezionare il tipo di app e fare clic sul pulsante Continua.
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
:Nella pagina Registra UN ID app abilitare le funzionalità necessarie nelle schede Funzionalità e servizio app:
Nella pagina Registra UN ID app fare clic sul pulsante Continua.
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.
Nella pagina Identificatori fare clic sull'ID app appena creato.
Nella pagina Modifica configurazione ID app qualsiasi funzionalità abilitata che richiede un'installazione aggiuntiva avrà un pulsante Configura :
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. Il profilo di provisioning creato dipenderà anche dal canale di distribuzione previsto per l'app:
- Se intendi distribuire l'app tramite Mac App Store, vedi Creare un profilo di provisioning in Pubblicare un'app Mac Catalyst per Mac App Store.
- Se intendi distribuire l'app all'esterno di Mac App Store, vedi Creare un profilo di provisioning in Pubblicare un'app Mac Catalyst per la distribuzione all'esterno di Mac App Store.
- Se intendi distribuire l'app a un numero limitato di utenti su dispositivi registrati, all'esterno di Mac App Store, vedi Creare un profilo di provisioning in Pubblicare un'app Mac Catalyst per la distribuzione ad hoc.
Scaricare il profilo di provisioning in Xcode
Dopo aver creato un profilo di provisioning nell'account Apple Developer, Xcode può scaricarlo in modo che sia disponibile per firmare l'app:
Sul Mac avviare Xcode.
In Xcode selezionare la voce di menu Preferenze Xcode > ... .
Nella finestra di dialogo Preferenze selezionare la scheda Account.
Nella scheda Account fare clic sul pulsante per aggiungere l'account + per sviluppatore Apple a Xcode:
Nel popup tipo di account selezionare ID Apple e quindi fare clic sul pulsante Continua :
Nella finestra popup di accesso immettere l'ID Apple e fare clic sul pulsante Avanti .
Nella finestra popup di accesso immettere la password dell'ID Apple e fare clic sul pulsante Avanti :
Nella scheda Account fare clic sul pulsante Gestisci certificati per assicurarsi che il certificato di distribuzione sia stato scaricato.
Nella scheda Account fare clic sul pulsante Scarica profili manuali per scaricare i profili di provisioning:
Attendere il completamento del download e quindi chiudere Xcode.
Definire le proprietà di compilazione nel file di progetto
Il file di progetto per l'app deve essere aggiornato per usare il certificato di firma, il profilo di provisioning e il file entitlement. A tale scopo, è possibile aggiungere le proprietà di compilazione seguenti a un <PropertyGroup>
nel file di progetto:
Proprietà | valore |
---|---|
<CodesignKey> |
Nome della chiave di firma del codice. Impostare sul nome del certificato di distribuzione, come visualizzato in Accesso keychain. |
<CodesignEntitlements> |
Percorso del file entitlements che specifica i diritti richiesti dall'app. Impostare su Platforms\MacCatalyst\Entitlements.plist . |
<CodesignProvision> |
Profilo di provisioning da usare per la firma del bundle dell'app. |
<EnableCodeSigning> |
Impostare su true in modo che la firma del codice sia abilitata. |
L'esempio seguente mostra un gruppo di proprietà tipico per la compilazione e la firma dell'app Mac Catalyst per la distribuzione di Mac App Store:
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
<EnableCodeSigning>True</EnableCodeSigning>
<CodesignKey>Apple Distribution: John Smith (AY2GDE9QM7)</CodesignKey>
<CodesignProvision>MyMauiApp</CodesignProvision>
<CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
</PropertyGroup>
Risoluzione dei problemi
L'elenco seguente illustra in dettaglio i problemi comuni che possono causare problemi durante lo sviluppo di un'app Catalyst Mac MAUI .NET che usa le 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 .