9
votes

L'application se bloque lors du débogage sur le périphérique

Mon application débogue parfaitement sur le simulateur IOS, et cela fonctionne bien lorsque je construit et déploier un fichier IPA sur l'appareil. Cependant, si j'essaie de déboguer sur l'appareil (iPhone 9.3.1 et iPad 9.3), l'application se bloque immédiatement au démarrage. J'utilise Visual Studio W / Xamarin. Le problème semble être construit / configuration / la version liée car cela fonctionne bien sur les versions de simulateur et de fichier IPA, mais je ne peux tout simplement pas comprendre le problème.

Visual Studio 2013 Mise à jour 5 Xamarin 4.0.3.214 Xamarin.ios 9.6.1.8

Configurations de projet entre les constructions qui fonctionnent et ne font pas: xxx

rapport d'accident: xxx


6 commentaires

Avez-vous regardé dans la liaison de votre application? Voir: développeur.xamarin.com/guides/ios/advanced_topics/linker


Oui. J'ai éteint la liaison avec le même résultat.


Est-ce que quelque chose dans le projet d'iOS AppDelegate.FinishedLaunching prend éventuellement plus longtemps sur le périphérique que le simulateur, de tels appareils WatchDog de l'appareil pourraient tuer l'application?


En regardant le rapport d'accident d'IOS un peu plus proche, un accès à l'adresse invalide et le fait que l'exécution semblait être dans le code MVVMcross faisant une toarray, mon premier commentaire semble inutile.


Vous devriez essayer de ne pas déboguer le processus de base.


@Zachgreen Vous avez déjà trouvé une solution à votre problème. J'ai des problèmes similaires, mais pas d'utiliser mvvmcross. Cela signifie-t-il qu'il y a une erreur dans le code au moment de l'exécution ou est-ce quelque chose d'autre?


3 Réponses :


0
votes
MtouchUseRefCounting
This may be required. Go to build options, advanced tab, and tick the box on the right. It should be ticked in debug mode/simulator. So tick it in debug/device too.

1 commentaires

Pas de chance. Toujours accidenté.



1
votes

Ce n'est pas une réponse directe à votre question, mais en regardant le MVVMCross Source pour mvxiossystem.buildversion , la ligne 27 semble exécuter le toarray où l'application meurt sur l'accès à l'adresse non valide: xxx

pourrait uidevice.currentdevice.systemversion retourner quelque chose de manière intéressante inattendue par le framework mvvmcross?

IE Comment version.split ('.'). Sélectionnez (int.parse) .toarray () Cause cet accès non valide?

Peut-être que vous pourriez peut-être utiliser une ligne de code similaire dans Votre application avant que le démarrage MVVMCross se produise pour obtenir la valeur de la version et, espérons-le, plus d'indices à déboguer avec.

J'ai essayé cela dans un petit projet xamarin.ios, juste dans Main.cs, mais je ne pouvais rien voir Cela causerait le problème - version est revenu "9.3.1" et pièces était un tableau int [3] : < Pré> xxx

J'ai également essayé de substituer des valeurs créatives pour version au lieu d'appeler uidevice.currentdevice.systemversion , mais tout ce que je pourrais générer, mais tout ce que je pourrais générer a été non géré. Format ou Null Références Exceptions de référence avec un journal de crash iOS très différent de ce que vous avez affiché.

Je me demande si le périphérique réinitialisez peut effacer le problème, de Cela répond donc à une question similaire.


4 commentaires

Une réinitialisation de périphérique peut être la réponse, mais c'est mon téléphone personnel et ce n'est pas une option actuelle.


Je ne peux toujours pas déboguer de mes appareils, et bien que vous répondiez que vous ne répondez pas de solution, cela fournit un aperçu.


Avez-vous déjà eu la chance de voir quelle valeur a été renvoyée de uidevice.currentDevice.systemversion ? Je suis curieux d'obtenir un indice sur le point de savoir si l'appareil déclenche que mvvmcross code à crash ou s'il s'agit de quelque chose de plus comme un problème de mémoire physique.


Je n'ai pas encore été dû aux voyages de la conférence, mais j'espère essayer quand je suis de retour dans mon bureau la semaine prochaine. Je vais mettre à jour alors.



1
votes

Je réponds sur la base de l'application native, cela peut se produire si vous définissez un profil provisoire adhoc à l'option de débogage dans la construction de paramètres de projet. Cela signifie de déboguer votre code, vous devez définir le profil provisoire de débogage du profil provisoire de «débogage» et non adhoc.


1 commentaires

Ce n'est pas le cas pour moi