Mise à jour des applications iOS existantes
Suivez ces étapes pour mettre à jour une application Xamarin.iOS existante pour utiliser l’API unifiée.
La mise à jour d’une application existante pour utiliser l’API unifiée nécessite des modifications apportées au fichier projet lui-même, ainsi qu’aux espaces de noms et API utilisés dans le code de l’application.
La route à 64 bits
Les nouvelles API unifiées sont nécessaires pour prendre en charge les architectures d’appareils 64 bits à partir d’une application mobile Xamarin.iOS. Depuis le 1er février 2015, Apple exige que toutes les nouvelles soumissions d’applications à l’App Store iTunes prennent en charge les architectures 64 bits.
Xamarin fournit des outils pour Visual Studio pour Mac et Visual Studio afin d’automatiser le processus de migration de l’API classique vers l’API unifiée, ou vous pouvez convertir manuellement les fichiers projet. Bien que l’utilisation de l’outil automatique soit fortement suggérée, cet article aborde les deux méthodes.
Avant de commencer...
Avant de mettre à jour votre code existant vers l’API unifiée, il est vivement recommandé d’éliminer tous les avertissements de compilation. De nombreux avertissements dans l’API Classique deviennent des erreurs une fois que vous migrez vers Unified. Les corriger avant de commencer est plus facile, car les messages du compilateur de l’API classique fournissent souvent des conseils sur la mise à jour.
Mise à jour automatisée
Une fois les avertissements corrigés, sélectionnez un projet iOS existant dans Visual Studio pour Mac ou Visual Studio, puis choisissez Migrer vers l’API unifiée Xamarin.iOS dans le menu Projet. Par exemple :
Vous devrez accepter cet avertissement avant l’exécution de la migration automatisée (vous devez évidemment vous assurer que vous disposez de sauvegardes/contrôle de code source avant de vous lancer dans cette aventure) :
L’outil automatise essentiellement toutes les étapes décrites dans la section Mise à jour manuellement présentée ci-dessous et est la méthode suggérée de conversion d’un projet Xamarin.iOS existant en API unifiée.
Étapes de mise à jour manuelle
Là encore, une fois les avertissements corrigés, procédez comme suit pour mettre à jour manuellement les applications Xamarin.iOS pour utiliser la nouvelle API unifiée :
1. Mettre à jour le type de projet et la cible de build
Modifiez la saveur du projet dans vos fichiers csproj de 6BC8ED88-2882-458C-8E55-DFD12B67127B
vers FEACFBD2-3405-455C-9665-78FE426C6842
. Modifiez le fichier csproj dans un éditeur de texte, en remplaçant le premier élément de l’élément <ProjectTypeGuids>
comme indiqué :
Modifiez l’élément Import qui contient Xamarin.MonoTouch.CSharp.targets
Xamarin.iOS.CSharp.targets
comme indiqué :
2. Mettre à jour les références de projet
Développez le nœud Références du projet d’application iOS. Il affiche initialement une référence *broken- monotouch similaire à cette capture d’écran (car nous venons de modifier le type de projet) :
Cliquez avec le bouton droit sur le projet d’application iOS pour modifier les références, puis cliquez sur la référence monotouche et supprimez-la à l’aide du bouton rouge « X ».
Faites maintenant défiler jusqu’à la fin de la liste des références et cochez l’assembly Xamarin.iOS .
Appuyez sur OK pour enregistrer les modifications apportées aux références de projet.
3. Supprimer MonoTouch des espaces de noms
Supprimez le préfixe MonoTouch des espaces de noms dans using
les instructions ou où un nom de classe a été qualifié complet (par exemple, MonoTouch.UIKit
devient juste UIKit
).
4. Remappage de types
Les types natifs ont été introduits, qui remplacent certains types précédemment utilisés, tels que les instances de System.Drawing.RectangleF
CoreGraphics.CGRect
(par exemple). Vous trouverez la liste complète des types dans la page des types natifs .
5. Correction des remplacements de méthode
Certaines UIKit
méthodes ont eu leur signature modifiée pour utiliser les nouveaux types natifs (par nint
exemple). Si les sous-classes personnalisées remplacent ces méthodes, les signatures ne correspondent plus et entraînent des erreurs. Corrigez ces remplacements de méthode en modifiant la sous-classe pour qu’elle corresponde à la nouvelle signature à l’aide de types natifs.
Les exemples incluent la modification public override int NumberOfSections (UITableView tableView)
de retour et la modification du type de retour nint
et des types de paramètres dans public override int RowsInSection (UITableView tableView, int section)
nint
.
À propos de l’installation
Les considérations suivantes doivent être prises en compte lors de la conversion d’un projet Xamarin.iOS existant de l’API classique vers la nouvelle API unifiée si cette application s’appuie sur un ou plusieurs composants ou package NuGet.
Composants
Tout composant que vous avez inclus dans votre application doit également être mis à jour vers l’API unifiée ou vous obtiendrez un conflit lorsque vous essayez de compiler. Pour tout composant inclus, remplacez la version actuelle par une nouvelle version du magasin de composants Xamarin qui prend en charge l’API unifiée et effectuez une build propre. Tout composant qui n’a pas encore été converti par l’auteur affiche un avertissement 32 bits uniquement dans le magasin de composants.
Prise en charge par NuGet
Bien que nous avons apporté des modifications à NuGet pour travailler avec la prise en charge de l’API unifiée, il n’y a pas eu de nouvelle version de NuGet. Nous évaluons donc comment obtenir NuGet pour reconnaître les nouvelles API.
Jusqu’à ce moment-là, tout comme les composants, vous devez basculer tout package NuGet inclus dans votre projet vers une version qui prend en charge les API unifiées et effectuer une build propre par la suite.
Important
Si vous avez une erreur sous la forme « Erreur 3 Impossible d’inclure à la fois « monotouch.dll » et « Xamarin.iOS.dll » dans le même projet Xamarin.iOS - « Xamarin.iOS.dll » est référencé explicitement, alors que « monotouch.dll » est référencé par « xxx, Version=0.0.000, Culture=neutral, PublicKeyToken=null » après avoir converti votre application en API unifiées, il est généralement dû à un composant ou à un package NuGet dans le projet qui n’a pas été mis à jour vers l’API unifiée. Vous devez supprimer le composant existant/NuGet, effectuer une mise à jour vers une version qui prend en charge les API unifiées et effectuer une build propre.
Activation des builds 64 bits des applications Xamarin.iOS
Pour une application mobile Xamarin.iOS convertie en API unifiée, le développeur doit toujours activer la création de l’application pour les machines 64 bits à partir des options de l’application. Pour obtenir des instructions détaillées sur l’activation des builds 64 bits des applications Xamarin.iOS du document Considérations relatives à la plateforme 32/64 bits, consultez le document sur l’activation des builds 64 bits.
Finissant vers le haut
Que vous choisissiez ou non d’utiliser la méthode automatique ou manuelle pour convertir votre application Xamarin.iOS du classic vers les API unifiées, il existe plusieurs instances qui nécessitent une intervention manuelle supplémentaire. Consultez notre Astuces pour mettre à jour le code vers le document d’API unifiée pour connaître les problèmes connus et contourner les problèmes.