Fonctionnalités de Mac Catalyst
Sur Mac Catalyst, les applications .NET Multi-Platform App UI (.NET MAUI) s’exécutent dans un bac à sable qui fournit un ensemble de règles qui limitent l’accès entre l’application et les ressources système ou les données utilisateur. Apple fournit des fonctionnalités, également appelées App Services, comme moyen d’étendre les fonctionnalités et d’élargir l’étendue de ce que les applications Mac Catalyst peuvent faire. Pour plus d’informations sur les fonctionnalités, consultez Capabilities sur developer.apple.com.
Les fonctionnalités sont ajoutées au profil de provisionnement de votre application et sont utilisées lors de la signature de code de votre application. Le profil d’approvisionnement doit contenir un ID d’application, qui correspond à l’identificateur de bundle de votre application, avec les fonctionnalités requises activées. Le profil d’approvisionnement doit être créé dans votre compte de développeur Apple.
Les fonctionnalités sont étroitement liées au concept des droits. Ils demandent tous deux l’extension du bac à sable dans lequel votre application s’exécute, pour lui octroyer des fonctionnalités supplémentaires. Les droits sont généralement ajoutés lors du développement de votre application, tandis que les fonctionnalités le sont généralement lors de la signature de code de votre application pour la distribution. Pour plus d’informations sur les droits, consultez Droits.
Ajouter des fonctionnalités dans votre compte de développeur Apple
Des fonctionnalités peuvent être ajoutées au profil d’approvisionnement de votre application dans votre compte de développeur Apple. Il s’agit d’un processus en plusieurs étapes qui nécessite la création d’un certificat de signature, d’un ID d’application et d’un profil d’approvisionnement.
Lorsque vous ajoutez une nouvelle fonctionnalité à votre profil d’approvisionnement, vous devez également ajouter la même fonctionnalité au fichier Entitlements.plist de votre application et vous assurer que l’application consomme ce fichier. Pour plus d’informations, consultez Droits. Vous devrez peut-être également définir des clés de confidentialité dans Info.plist pour certaines fonctionnalités.
Créer un certificat de signature
La création d’un profil d’approvisionnement nécessite d’avoir créé au préalable un certificat de signature. Le type de certificat de signature dépend du canal de distribution prévu pour votre application :
- Si vous envisagez de distribuer votre application via le Mac App Store, consultez Créer un certificat de distribution dans Publier une application Mac Catalyst pour la distribution dans le Mac App Store.
- Si vous envisagez de distribuer votre application en dehors du Mac App Store, consultez Créer un certificat d’application d’ID de développeur dans Publier une application Mac Catalyst pour la distribution en dehors du Mac App Store.
- Si vous envisagez de distribuer votre application à un nombre limité d’utilisateurs sur des appareils enregistrés, en dehors du Mac App Store, consultez Créer un certificat de développement dans Publier une application Mac Catalyst pour la distribution ad hoc.
Créer un ID d’application avec un App Service
Un ID d’application est similaire à une chaîne DNS inversée, qui identifie de manière unique une application, et qui est nécessaire pour identifier l’application que vous distribuez. L’ID d’application doit être identique à l’identificateur de bundle pour votre application.
Important
L’identificateur de bundle d’une application .NET MAUI est stocké dans le fichier projet en tant que propriété ID d’application : Dans Visual Studio, dans l’Explorateur de solutions, cliquez avec le bouton droit sur votre projet d’application .NET MAUI, puis sélectionnez Propriétés. Ensuite, accédez à l’onglet MAUI partagé > Général. Le champ ID d’application répertorie l’identificateur de bundle.
Lorsque la valeur du champ ID d’application est mise à jour, la valeur de l’Identificateur de bundle dans Info.plist sera automatiquement mise à jour.
Il existe deux types d’ID d’application : explicite et générique. Un ID d’application explicite est unique à une seule application et prend généralement la forme com.domainname.myid
. Un ID d’application explicite permet l’installation d’une application, avec un identificateur de bundle correspondant, sur un appareil. Les ID d’application explicites sont requis pour les applications qui activent des fonctionnalités spécifiques à l’application.
Un ID d’application explicite peut être créé en procédant comme suit :
Dans un navigateur web, accédez à la section Identifiers de votre compte de développeur Apple, puis cliquez sur le bouton +.
Sur la page Register a new identifier, sélectionnez App IDs, puis cliquez sur le bouton Continue.
Sur la page Register a new identifier, sélectionnez le type App, puis cliquez sur le bouton Continue.
Sur la page Register an App ID, fournissez une Description et définissez le Bundle ID sur Explicit. Entrez ensuite un ID d’application au format
com.domainname.myid
:Sur la page Register an App ID, activez les fonctionnalités dont vous avez besoin dans les onglets Capabilities et App Services :
Sur la page Register an App ID, cliquez sur le bouton Continue
Sur la page Confirm your App ID, passez en revue les informations, puis cliquez sur le bouton Register. À condition que votre ID d’application soit correctement enregistré, vous revenez à la section Identifiers de votre compte de développeur Apple.
Sur la page Identifiers, cliquez sur l’ID d’application que vous venez de créer.
Sur la page Edit your App ID Configuration, si une de vos fonctionnalités activées nécessite une configuration supplémentaire, elle sera accompagnée d’un bouton Configure :
Cliquez sur les boutons Configure pour configurer vos fonctionnalités activées. Pour plus d’informations, consultez Configure app capabilities sur developer.apple.com.
Créer un profil de provisionnement
Une fois que vous avez créé un ID d’application, vous devez créer un profil d’approvisionnement pour l’ID d’application. Le profil d’approvisionnement que vous créez dépend également du canal de distribution prévu pour votre application :
- Si vous envisagez de distribuer votre application via le Mac App Store, consultez Créer un profil d’approvisionnement dans Publier une application Mac Catalyst pour la distribution dans le Mac App Store.
- Si vous envisagez de distribuer votre application en dehors du Mac App Store, consultez Créer un profil d’approvisionnement dans Publier une application Mac Catalyst pour la distribution en dehors du Mac App Store.
- Si vous envisagez de distribuer votre application à un nombre limité d’utilisateurs sur des appareils enregistrés, en dehors du Mac App Store, consultez Créer un profil d’approvisionnement dans Publier une application Mac Catalyst pour la distribution ad hoc.
Télécharger votre profil de provisionnement dans Xcode
Après avoir créé un profil de provisionnement dans votre compte Apple Developer, Xcode peut le télécharger afin qu’il soit disponible pour la signature de votre application :
Sur votre Mac, lancez Xcode.
Dans Xcode, sélectionnez l’élément de menu Xcode > Preférences….
Dans la boîte de dialogue Preferences, sélectionnez l’onglet Accounts.
Dans l’onglet Accounts, cliquez sur le bouton + pour ajouter votre compte Apple Developer à Xcode :
Dans la fenêtre contextuelle de type de compte, sélectionnez Apple ID, puis cliquez sur le bouton Continue :
Dans la fenêtre contextuelle de connexion, entrez votre ID Apple, puis cliquez sur le bouton Next.
Dans la fenêtre contextuelle de connexion, entrez votre mot de passe d’ID Apple, puis cliquez sur le bouton Next :
Dans l’onglet Accounts, cliquez sur le bouton Manage Certificates… pour vous assurer que votre certificat de distribution a été téléchargé.
Dans l’onglet Accounts, cliquez sur le bouton Download Manual Profiles pour télécharger vos profils de provisionnement :
Attendez que la fin du téléchargement, puis fermez Xcode.
Définir les propriétés de build dans votre fichier projet
Le fichier projet de votre application doit être mis à jour pour utiliser le certificat de signature, le profil d’approvisionnement et le fichier des droits. Pour ce faire, ajoutez les propriétés de build suivantes à un <PropertyGroup>
dans votre fichier projet :
Propriété | Valeur |
---|---|
<CodesignKey> |
Nom de la clé de signature du code. Définir sur le nom de votre certificat de distribution, comme indiqué dans Trousseaux d’accès. |
<CodesignEntitlements> |
Chemin d’accès au fichier des droits qui spécifie les droits dont a besoin l’application. Réglez sur Platforms\MacCatalyst\Entitlements.plist . |
<CodesignProvision> |
Profil de provisionnement à utiliser lors de la signature de l’ensemble d’applications. |
<EnableCodeSigning> |
Définir sur true pour que le code de signature soit activé. |
L’exemple suivant montre un groupe de propriétés classique pour la création et la signature de votre application Mac Catalyst pour la distribution dans le 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>
Résolution des problèmes
La liste suivante détaille les problèmes courants qui peuvent entraîner des problèmes lors du développement d’une application Mac Catalyst .NET MAUI qui utilise des fonctionnalités :
- Vérifiez que l’ID d’application approprié a été créé et enregistré dans la section Identifiers de votre compte de développeur Apple.
- Vérifiez que la fonctionnalité a été ajoutée à l’ID d’application et qu’elle est configurée sur les valeurs appropriées.
- Vérifiez que le profil d’approvisionnement a été installé sur votre ordinateur de développement et que le fichier Info.plist de l’application utilise un identificateur de bundle identique à votre ID d’application.
- Vérifiez que le fichier Entitlements.plist de l’application contient les droits appropriés activés.
- Vérifiez que toutes les clés de confidentialité requises sont définies dans Info.plist.
- Vérifiez que l’application consomme le fichier Entitlements.plist.