web-dev-qa-db-fra.com

Comment déboguer un problème avec une version en mode libération créée dans iOS?

Je travaille sur une application iOS et j'ai remarqué un bug qui ne peut être reproduit que lorsque l'application est construite en mode release. Le seul moyen que j'ai trouvé pour exécuter une application en mode de publication que j'ai créée consiste à créer une archive, à la signer avec mon profil de débogage et à effectuer un déploiement ad hoc sur mon appareil. En utilisant cette méthode, cependant, je ne peux pas attacher avec un débogueur, et je ne suis même pas sûr de pouvoir l'attacher si cela fonctionnerait bien après que la compilation ait exécuté l'exécution de l'optimiseur sur le code.

Est-ce que quelqu'un connaît un bon moyen de déboguer un problème qui ne peut être reproduit que si une application est construite en mode de publication?

26
lehn0058

L’optimisation est désactivée (-O0) pour faciliter le débogage, alors que l’optimisation est activée pour les versions de Release (-O3 ou -Os), ce qui accélère l’exécution du code, mais rend également le débogage plus difficile (mais pas impossible). Vous pouvez simplement aller dans les paramètres de construction dans Xcode dans la configuration de débogage et augmenter temporairement le niveau d'optimisation - cela conservera tous les autres objets de débogage (symboles, etc.), mais nous espérons également effacer le bogue du mode de publication. (N'oubliez pas de réinitialiser le niveau d'optimisation sur -O0 dans la configuration de débogage lorsque vous avez terminé!)

30
Paul R
  1. Allez dans la commande "Projet" du menu d'une application Xcode et choisissez "Éditer le schéma" (raccourci: ⌘ <).
  2. Sélectionnez "Exécuter le nom du projet" dans le volet de gauche.
  3. Dans le volet de droite, sous l'onglet "Info", remplacez "Version de configuration" par "Libérer".
9
Rahul Wakade

Vous ne pouvez pas exécuter une application en mode de publication tant que le débogage est activé. Ce n'est pas prévu. 

Lorsque vous exécutez une application en mode édition, vous devez trouver un moyen différent d’observer le comportement de votre application (par exemple, en utilisant des alertes). 

 Uncheck <code>Debug executable</code> do run your app in release mode

De plus, vous devrez faire confiance au profil de distribution sur votre appareil. Xcode vous avertira et vous guidera avec un message d'alerte lors de la première exécution. 

7
ehrpaulhardt

Pour déboguer une application iOS en mode édition, modifiez les paramètres suivants: Paramètres de construction -> Déploiement -> Post-traitement du déploiement -> Version -> définissez la valeur sur "NON".

Définissez la valeur 'Non' sur 'Deployment Post Processing: Release'

0
Naveen Kumar