2010-11-27 14 views
0

Le problème survient sur XCode> 'Construire et exécuter',
pas lors de l'exécution dans 'Instruments> Fuites'. Il semble donc y avoir un problème avec Xcode.
Si tel est le cas, cela ne me dérange pas de faire une reconstruction supplémentaire.Comment empêcher la nécessité de reconstruire l'application après avoir changé de langue/région

Toutefois, si problème également se produire après l'application est affiché dans l'App Store d'iTunes,
et le client installe l'application dans son appareil,
qu'elle aurait à réinstaller l'application à chaque fois qu'elle change la langue/région.
(aiguilles à dire, ce ne serait pas acceptable).

Ce numéro est-il:
a) seulement dans Xcode (pas dans l'App Store)?
b) pas expérimenté par d'autres développeurs, donc un bogue dans l'application est-il probable? ou
c) risque-t-il de faire surface même lorsque l'application est installée en téléchargeant à partir du magasin d'applications?

Si 'b' ou 'c', des idées pour le réparer?

---------------- Procédure pour reproduire le problème -----------------
Au cours du développement:
1) Faites un Xcode> 'Build and run', vérifiez que l'application fonctionne comme prévu (dans un simulateur ou un appareil);
2) Changer la langue et de la région (dans 'les Réglages> Général> International')
3) de l'iPhone Vérifier:
-CONSOLE montre l'erreur non informative:
Programme signal reçu: « SIGKILL ».
-App plante en arrière-plan,
l'icône de l'icône de l'application -cliquez ne lance l'application
(écran affiche par défaut pour une seconde, puis tombe en panne
4) Effectuer une autre applications) « Build and run »
5) Vérifiez maintenant que l'application se lance et fonctionne bien
(dans la nouvelle langue et la région comme prévu.Toutes les chaînes de localisation de l'application etc fonctionnent bien).

6) Faites un "Exécuter avec outil de performance> Fuites de
7) Changer de langue et de la région (dans 'Paramètres')
8) de l'iPhone pas de problème vérifier.

Les instruments de suivi des interruptions (pas de plantage dans l'application ou dans l'outil), et
l'utilisateur peut relancer l'application dans l'iPhone comme d'habitude (les étapes 3 et 4 sont éliminées).

Répondre

1

J'ai observé un comportement similaire. Entre les étapes trois et cinq, vous pouvez essayer d'arrêter le débogage dans Xcode et ignorer la reconstruction.

Je peux changer la langue sur l'appareil, puis utiliser l'application avec la nouvelle langue choisie sans faire de nouvelle construction, mais je dois d'abord appuyer sur le bouton stop dans Xcode.

+0

Merci. Dans ce cas, le problème survient même si j'arrête le débogage. Si je quitte également xcode, l'exécution de l'application isolée dans l'appareil se bloquera sur l'un des écrans. Comme le problème est uniquement lié à la modification de la langue et de la région, et qu'il ne se produit pas lors de l'exécution d'outils de performances, il semble que la façon dont xcode déploie l'application n'est pas un problème. C'est un puzzle. – sambaMan

+0

Merci @Olaf, qui a résolu mon problème. Je ne comprends tout simplement pas pourquoi! – Adriana

0

SOLUTION: Le problème était dans l'application.
Il stockait une valeur localisée dans .plist et utilisait cette valeur pour la comparaison.
Lorsque la langue a été modifiée, la valeur dans .plist est restée dans l'ancienne langue, donc la comparaison (avec la valeur dans la nouvelle langue) a échoué.
Correction de l'utilisation de valeurs indépendantes du langage dans .plist et comparaison.