2010-07-10 3 views
4

J'ai une application qui plante sur l'iPhone, mais seulement lorsqu'elle a été lancée via Xcode.L'application iPhone tombe en panne lorsqu'elle est lancée à partir de Xcode, mais pas à partir de l'iPhone

Je vois dans le journal de la console iPhone que l'application reçoit un avertissement de mémoire, puis il y a quelques événements étranges comme ceux-ci:

Sun Jul 11 00:03:43 Matts-iPhone com.apple.launchd[1] (UIKitApplication:com.mycom.myapp[0x3f60][5591]) <Notice>: (UIKitApplication:com.mycom.myapp[0x3f60]) Bug: launchd_core_logic.c:3270 (24132):0 
Sun Jul 11 00:03:43 Matts-iPhone com.apple.debugserver-48[5590] <Warning>: 1 [15d6/1403]: error: ::read (6, 0x3809f4, 1024) => -1 err = Bad file descriptor (0x00000009) 
Sun Jul 11 00:03:43 Matts-iPhone com.apple.launchd[1] (UIKitApplication:com.mycom.myapp[0x3f60][5591]) <Notice>: (UIKitApplication:com.mycom.myapp[0x3f60]) Bug: launchd_core_logic.c:2688 (24132):10 
Sun Jul 11 00:03:43 Matts-iPhone com.apple.launchd[1] (UIKitApplication:com.mycom.myapp[0x3f60][5591]) <Notice>: (UIKitApplication:com.mycom.myapp[0x3f60]) Working around 5020256. Assuming the job crashed. 
Sun Jul 11 00:03:43 Matts-iPhone com.apple.launchd[1] (UIKitApplication:com.mycom.myapp[0x3f60][5591]) <Warning>: (UIKitApplication:com.mycom.myapp[0x3f60]) Job appears to have crashed: Segmentation fault 
Sun Jul 11 00:03:43 Matts-iPhone SpringBoard[40] <Warning>: Application 'Phone' exited abnormally with signal 9: Killed 
Sun Jul 11 00:03:45 Matts-iPhone SpringBoard[40] <Warning>: Application 'myapp' exited abnormally with signal 11: Segmentation fault 

Cependant, quand je lance l'application du téléphone (pas par Xcode) alors cela fonctionne comme prévu. (Il y a un avertissement de mémoire lors du lancement, je sais que c'est serré, mais il récupère et ne plante pas).

Cela rend particulièrement difficile le débogage d'autres problèmes.

Est-ce que je suis tombé sur un bug iOS?

Des idées?

Répondre

7

Il s'avère dans mon cas que j'avais oublié que j'avais toujours la variable d'environnement "NSZombiesEnabled" définie, ce qui augmentait l'utilisation réelle de la mémoire (provoquant le plantage) lorsqu'elle était lancée à partir de Xcode. Lorsqu'elle est lancée directement à partir de Springboard, cette variable d'environnement n'a pas été définie et l'application utilisée contient beaucoup moins de mémoire.

Il est très utile pour le débogage ... jusqu'à ce que vous manquez de mémoire et d'oublier qu'il est là :)

0

Habituellement, lorsque vous voyez un crash sur un simulateur mais pas sur un périphérique ou vice versa, cela indique une défaillance avec une bibliothèque compilée pour un matériel mais pas pour l'autre. Toutefois, si votre mémoire est insuffisante, vous êtes probablement confronté à un plantage dû aux différences subtiles entre le code compilé pour Intel et le code compilé pour ARM. Le code d'Intel est probablement juste plus sensible pour une raison quelconque. Le même problème se produira éventuellement sur l'appareil si vous le laissez fonctionner suffisamment longtemps sous une mémoire restreinte.

2

Ce qui est arrivé à moi et était aussi en raison de la NSZombiesEnabled étant réglée. Dans mon cas, il était placé dans un fichier ~/.gdbinit dont j'avais oublié l'existence. Dans Xcode, la case à cocher NSZombieEnabled était désactivée et il n'y avait rien dans les variables d'environnement du système, ce qui me rendait fou en essayant de comprendre le problème. Morale de l'histoire est de s'assurer qu'il n'est pas défini dans le. Gdbinit ainsi que dans XCode.

2

J'ai eu ce problème également et il a été provoqué par l'installation de Resupported 4 à partir de Cydia. Après l'avoir supprimé, mon application s'est parfaitement lancée.

+0

Mon problème était uididfaker et locationholic de cydia, et après avoir désinstallé xcode courir sur mon iphone très bien. – ozba

Questions connexes