Comment déboguer un Xamarin.l'application iOS sur un appareil iOS
Excuses à l'avance, pour cette longue question, mais j'ai perdu 3 jours, sans succès, essayer de mettre en place un Xamarin.iOS environnement de développement, ce qui me permet de déboguer sur un périphérique physique (pas un simulateur d'iPhone) et je suis à une perte pour quoi essayer.
Je crois que mon installation est assez standard Xamarin configuration:
- Windows 10 PC exécutant Visual Studio 2015 et Xamarin v4.2.0.703
- Téléphone HTC USB connecté au PC pour Android débogage (fonctionne très bien)
- MacBook OS X 10.11 avec Xamarin Studio v6.1.1 et Xcode v8.0
- iPhone ou iPad connecté par USB à un Mac pour iOS débogage
J'ai commencé par la création d'un Xamarin solution dans Visual Studio, j'ai d'abord développé et débogué sur Android.
De progrès pour iOS débogage je puis mettre en place le Mac avec Xcode et Xamarin Studio, a permis pour la connexion à distance, et a créé un mannequin Xcode projet avec le même identifiant de lot que mon Xamarin.l'application iOS. J'ai aussi fait une tentative dans le processus compliqué de la création d'une signature de l'identité et le profil de configuration de l'application, et de télécharger /installer sur le Mac. Ce processus est donc pas intuitif (et le retour visuel à l'intérieur de Xcode est tellement mauvaise que je ne suis pas certain que je l'ai fait correctement. Cependant, je suis en mesure d'exécuter le mannequin Xcode projet sur l'iPhone, donc je suppose que ça doit être OK?
Sur le PC Windows, le Xamarin > iOS Options volet dans les paramètres Visual Studio confirme que Visual Studio est connecté au Mac et le joint de l'iPhone est également répertorié comme un candidat périphérique cible, de sorte qu'il semble que tout est mis en place pour le débogage du périphérique.
Si j'ai essayer de déboguer l'application sur le simulateur d'iPhone, à partir de Visual Studio, il fonctionne correctement. Cependant, le débogage sur le physique de l'iPhone échoue avec le suivant inutile message:
Xamarin.Messaging.Exceptions.MonotouchException: error MT1006: Could not install the
application '/Users/Tim/Library/Caches/Xamarin/mtbs/builds/Test.iOS/c4f40041b6c58fc579a727bccfc18614/bin/iPhoneSimulator/Debug/TestiOS.app'
on the device 'Tim’s iPhone': AMDeviceSecureInstallApplicationBundle returned: 0xe8008001.
A titre de comparaison, j'ai aussi essayé de débogage directement sur le Mac, à l'aide de Xamarin Studio. Encore une fois, le simulateur d'iPhone fonctionne bien, mais il est impossible de lancer une session de débogage à l'aide de la physique de l'appareil, parce que l'iPhone connecté n'est pas répertorié comme un candidat périphérique cible pour la Debug | iPhone de configuration.
Si j'ouvre les options de projet et accédez à la iOS Debug vue, je peux voir que la plate-forme associée à la Debug configuration est iPhoneSimulator. Changer l' iPhone et la sauvegarde de la configuration, il semble fonctionner, mais les modifications ne sont pas réellement enregistrées. Je suppose que c'est la raison pour laquelle mon test de l'appareil n'est pas répertorié, mais je ne sais pas ce que je dois faire pour obtenir Xamarin Studio d'accepter mes modifications.
Donc, après toutes ces expériences, je suis complètement perdu. Il serait utile d'avoir une complète, robuste A-Z tutoriel pour ce processus d'installation, mais, à défaut, des suggestions de ce que je devrais essayer la prochaine serait très apprécié.
Mise à JOUR: Si j'utilise le Ad-Hoc de configuration du projet (dans Visual Studio ou Xamarin Studio) correctement déploie et lance l'application sur le périphérique, mais ne pas attacher le débogueur. Si j'ai explicitement activer le débogage dans l'Ad-Hoc de configuration du projet, Xamarin Studio l'ignore, mais Visual Studio attache ensuite le débogueur, mais ne frappez pas les points d'arrêt. Est-ce que tous son droit? Offre-t-il des indices de ce que j'ai besoin de changer d'obtenir le vrai Debug config fonctionne correctement?
Merci. En utilisant Xcode > Window > Appareils, je viens de vérifier qu'il existe un profil de configuration installé sur l'iPhone. J'ai vérifié la installé profil mon compte Apple, et il comprend mon point de signature de code et listes de 3 appareils, qui est celui de l'iPhone que je suis en train de déboguer.
Étrange.... Nous avons un tas d'Androïdes qui ne fonctionnent pas avec Xamarin du débogueur (mais ne w/ A. S.), mais n'a jamais eu un iOS problème s'ils sont mis en service. Quelles versions iOS sont sur les iDevices (10?)?
iPhone 4 avec iOS 9.3 et de l'iPhone 5 et le 6+ avec iOS 10.
OriginalL'auteur Tim Coulter | 2016-10-21
Vous devez vous connecter pour publier un commentaire.
Pour toute personne confrontée à un problème similaire, la solution que j'ai finalement adopté comportait une "force brute".
J'ai commencé par la création d'une nouvelle Xamarin.Solution de formulaires (en utilisant le standard de Visual Studio modèle) et de supprimer les indésirables projets de la plateforme (UWP et Windows Phone). Dans cet état initial, j'ai vérifié qu'il était en mesure de lancer le débogage sur à la fois Android et iOS dispositifs, ainsi que les émulateurs/simulateurs. Tout a fonctionné correctement, confirmant que mon Mac configuration est correcte, et aussi me donner l'exacte iOS configuration de projet qui est nécessaire pour le débogage.
À ce point, je suppose que d'un problème de configuration doit être responsable de mes problèmes, j'ai donc exactement répliqué tous les détails de la configuration de travail dans ma solution originale. Néanmoins, il a refusé de débogage sur iOS.
J'ai alors commencé à soupçonner qu'un référencés package Nuget est la cause du problème, donc j'ai ajouté tous les packages référencés à partir de l'original dans la mise en œuvre de la nouvelle solution de test. Je m'attendais à ce casser le débogage sur iOS, mais il n'a pas.
Enfin, j'ai soigneusement transplantés tout le contenu de ma solution originale XAML (& code-behind fichiers, visualiser des modèles, des ressources, etc) dans la solution d'essai et il a continué à déboguer correctement.
Et en l'absence de viable de la procédure de diagnostic, j'ai résolu le problème par la reconstruction de ma solution à partir de la base. Aucun code n'a été changé, et, à ma connaissance, aucun des paramètres de configuration ont été modifiés, mais la nouvelle de la mise en œuvre est maintenant fiable debuggable dans tous les environnements cibles.
OriginalL'auteur Tim Coulter