ä¸ãå¦ä½è·å¾crashæ¥å¿
å½ä¸ä¸ªiOSåºç¨ç¨åºå´©æºæ¶ï¼ç³»ç»ä¼å建ä¸ä»½crashæ¥å¿ä¿åå¨è®¾å¤ä¸ãè¿ä»½crashæ¥å¿è®°å½çåºç¨ç¨åºå´©æºæ¶çä¿¡æ¯ï¼é常å
å«çæ¯ä¸ªæ§è¡çº¿ç¨çæ è°ç¨ä¿¡æ¯ï¼ä½å
åéªéæ¥å¿ä¾å¤ï¼ï¼å¯¹äºå¼å人åå®ä½é®é¢å¾æ帮å©ã
å¦æ设å¤å°±å¨èº«è¾¹ï¼å¯ä»¥è¿æ¥è®¾å¤ï¼æå¼Xcode - Window - Organizerï¼å¨å·¦ä¾§é¢æ¿ä¸éæ©Device Logsï¼å¯ä»¥éæ©å
·ä½è®¾å¤çDevice Logsæè
Libraryä¸ææ设å¤çDevice Logsï¼ï¼ç¶åæ ¹æ®æ¶é´æåºæ¥ç设å¤ä¸çcrashæ¥å¿ãè¿æ¯å¼åãæµè¯é¶æ®µæç»å¸¸éç¨çæ¹å¼ã
å¦æåºç¨ç¨åºå·²ç»æ交å°App Storeåå¸ï¼ç¨æ·å·²ç»å®è£
使ç¨äºï¼é£ä¹å¼åè
å¯ä»¥éè¿iTunes Connectï¼Manage Your Applications - View Details - Crash Reportsï¼è·åç¨æ·çcrashæ¥å¿ãä¸è¿è¿å¹¶ä¸æ¯100%ææçï¼èä¸å¤§å¤æ°å¼åè
并ä¸ä¾èµäºæ¤ï¼å 为è¿éè¦ç¨æ·è®¾å¤åæä¸ä¼ ç¸å
³ä¿¡æ¯ï¼è¯¦æ
å¯åè§iOS: Providing Apple with diagnostics and usage informationæè¦ã
èèå°å¹¶ä¸æ¯ææiPhoneç¨æ·é½å
许èªå¨åéè¯ææ¥åï¼crashæ¥å¿ï¼ï¼èä¸å¯¹äºé¨åæ交å°Appleå¾crashæ¥å¿ï¼å¼åè
è¿éè¦æå¨å»æåï¼ç¶åæ¾å°å¯¹åºç符å·æ件è¿è¡è§£æââè¿æ¯ä¸ä»¶å¾ç¹ççäºæ
ãæ以å®é
项ç®å¼åä¸ï¼é常æ¥å
¥ç°æçcrashæ¶éå·¥å
·ï¼åè1ï¼åè2ï¼ï¼æè
èªå·±ç¼åä¸ä¸ªè¿è¡èªå¨åæ¶éã解æåç»è®¡æ±æ»ã
äºãå¦ä½è§£æcrashæ¥å¿
å½è·å¾ä¸ä»½crashæ¥å¿æ¶ï¼æ们éè¦å°åå§å±ç¤ºçåå
è¿å¶å°åçåå§ä¿¡æ¯æ å°ä¸ºæºä»£ç 级å«çæ¹æ³å称å代ç è¡æ°ï¼ä½¿å
¶å¯¹å¼å人åå¯è¯»ãè¿ä¸ªè¿ç¨ç§°ä¸ºç¬¦å·å解æãè¦æåå°ç¬¦å·å解æä¸ä»½crashæ¥å¿ï¼æ们éè¦æ对åºçåºç¨ç¨åºäºè¿å¶æ件以å符å·ï¼.dSYMï¼æ件ã
å¦æå¤äºå¼åè°è¯é¶æ®µï¼é常Xcodeé½è½å¹é
å°crashæ¥å¿å¯¹åºçäºè¿å¶æ件å符å·æ件ï¼æ以è½å¤å¸®æ们èªå¨è§£æã
å¦æå¤äºæµè¯é¶æ®µï¼æµè¯äººåå·²ç»å®è£
äºä¸åççæ¬ï¼æ¯å¦alphaãbetaçæ¬ï¼ï¼é£ä¹éè¦ä¿å好对åºçæ¬çäºè¿å¶æ件å符å·æ件ï¼ä»¥ä¾¿å¨åºç¨ç¨åºå´©æºæ¶å¯¹crashæ¥å¿è¿è¡è§£æã对äºè¿ç§åºæ¯ä¸äº§ççcrashæ¥å¿ï¼åªéè¦å°.crashæ件ã.appæ件å.dSYMæ件ä¸è
æ¾å¨åä¸ä¸ªç®å½ä¸ï¼ç¶åå°.crashæ件ææ¾å°Xcode - Window - Organizerä¸å·¦ä¾§é¢æ¿Libraryä¸çDevice Logsä¸ï¼å³å¯è¿è¡è§£æã
å¦æè¦æ交åå¸ï¼é£ä¹æ们é常ä¼å
æ§è¡Cleanï¼åBuildï¼æåéè¿Product - Archiveæ¥æå
ãè¿æ ·ï¼Xcodeä¼å°äºè¿å¶æ件å符å·æ件å½æ¡£å¨ä¸èµ·ï¼å¯ä»¥éè¿Organizerä¸çArchivesè¿è¡æµè§ã
è¿éæ¯ä¸ä»½å
³äºå¦ä½è§£æcrashæ¥å¿ç讨论ï¼
http://stackoverflow.com/questions/1460892/symbolicating-iphone-app-crash-reports ã
ä¸ãå¦ä½åæcrashæ¥å¿
å¨åæä¸ä»½crashæ¥å¿ä¹åï¼å¦æå¼å人å对äºå¸¸è§çé误类åææäºè§£ï¼é£å®æ¯æ好çã
crashæ¥å¿ç产çæ¥æºäºä¸¤ç§é®é¢ï¼è¿åiOSçç¥è¢«å¹²æï¼ä»¥åèªèº«ç代ç bugã
1. iOSçç¥
1.1 ä½å
åéªé
åé¢æå°å¤§å¤æ°crashæ¥å¿é½å
å«çæ§è¡çº¿ç¨çæ è°ç¨ä¿¡æ¯ï¼ä½æ¯ä½å
åéªéæ¥å¿é¤å¤ï¼è¿éå°±å
ççä½å
åéªéæ¥å¿æ¯ä»ä¹æ ·çã
æ们使ç¨Xcode 5åiOS 7ç设å¤æ¨¡æä¸æ¬¡ä½å
åéªéï¼ç¶åéè¿Organizeræ¥ç产ççcrashæ¥å¿ï¼å¯ä»¥åç°ProcessåTypeé½ä¸ºUnknownï¼
èå
·ä½çæ¥å¿å
容å¦ä¸ï¼
第ä¸é¨åæ¯å´©æºä¿¡æ¯ï¼å
æ¬è¯å«æ è¯ã软硬件信æ¯åæ¶é´ä¿¡æ¯çã
第äºé¨åæ¯å
å页åé
ä¿¡æ¯ï¼ä»¥åå½åå ç¨å
åæå¤çè¿ç¨ï¼ä¸å¾ä¸ä¸ºcrashTypeDemoã
第ä¸é¨åæ¯å
·ä½çè¿ç¨å表ï¼æè¿°çæ¯ä¸ªè¿ç¨ä½¿ç¨å
åçæ
åµä»¥åå½åç¶æãå¨è¾æ©ççæ¬ä¸å¯ä»¥å¨æäºè¿ç¨åé¢çå°âjettisonedâåæ ·ï¼è¡¨æè¿äºè¿ç¨ä½¿ç¨è¿å¤å
å被ç»æ¢äºï¼èç°å¨æ们çå°çæ¯âvm-pageshortageâåæ ·ã
å½iOSæ£æµå°å
åè¿ä½æ¶ï¼å®ï¼çVMç³»ç»ï¼ä¼ååºä½å
åè¦åéç¥ï¼å°è¯åæ¶ä¸äºå
åï¼å¦ææ
åµæ²¡æå¾å°è¶³å¤çæ¹åï¼iOSä¼ç»æ¢åå°åºç¨ä»¥åæ¶æ´å¤å
åï¼æåï¼å¦æå
åè¿æ¯ä¸è¶³ï¼é£ä¹æ£å¨è¿è¡çåºç¨å¯è½ä¼è¢«ç»æ¢æã
æ以ï¼æ们çåºç¨åºè¯¥åçå°ååºç³»ç»æåºæ¥çä½å
åè¦åéç¥ï¼å¯¹ä¸äºç¼åæ°æ®åå¯éæ°å建ç对象è¿è¡éæ¾ï¼åæ¶è¦é¿å
åºç°å
åæ³é²çé®é¢ã
ä½å
åéªéæ¯ç±iOSçç¥å³å®ç»æ¢åºç¨ç¨åºè¿è¡çï¼åæ ·åºäºiOSçç¥çè¿æWatchdogè¶
æ¶åç¨æ·å¼ºå¶éåºã
1.2 Watchdogè¶
æ¶
AppleçiOS Developer Libraryç½ç«ä¸ï¼QA1693ææ¡£ä¸æè¿°äºWatchdogæºå¶ï¼å
æ¬çæåºæ¯å表ç°ãå¦ææ们çåºç¨ç¨åºå¯¹ä¸äºç¹å®çUIäºä»¶ï¼æ¯å¦å¯å¨ãæèµ·ãæ¢å¤ãç»æï¼ååºä¸åæ¶ï¼Watchdogä¼ææ们çåºç¨ç¨åºå¹²æï¼å¹¶çæä¸ä»½ååºçcrashæ¥åã
è¿ä»½crashæ¥åçæ趣ä¹å¤å¨äºå¼å¸¸ä»£ç ï¼â0x8badf00dâï¼å³âate bad foodâã
å¦æ说ç¹å®çUIäºä»¶æ¯è¾æ½è±¡ï¼é£ä¹ç¨ä»£ç æ¥ç´æ¥æè¿°çè¯ï¼å¯¹åºçå°±æ¯ï¼å建ä¸ä¸ªå·¥ç¨æ¶Xcodeèªå¨çæçï¼UIApplicationDelegateçå 个æ¹æ³ï¼
æ以å½éå°Watchdogæ¥å¿æ¶ï¼å¯ä»¥æ£æ¥ä¸ä¸å¾å 个æ¹æ³æ¯å¦ææ¯è¾éçé»å¡UIçå¨ä½ã
QA1693举çä¾åæ¯å¨ä¸»çº¿ç¨è¿è¡åæ¥ç½ç»è¯·æ±ãå¦ææ们æ¯å¨å
¬å¸çWifiç¯å¢ä¸ä½¿ç¨åä¸å顺å©ï¼ä½å½åºç¨ç¨åºåå¸åºå»é¢åå¾å¤§èå´çç¨æ·ï¼å¨åç§ç½ç»ç¯å¢ä¸è¿è¡ï¼åä¸å¯é¿å
å°ä¼åºç°ä¸çWatchdogè¶
æ¶æ¥åã
å¦ä¸ç§å¯è½åºç°é®é¢çåºæ¯å°±æ¯æ°æ®éæ¯è¾å¤§çæ
åµä¸è¿è¡çæ°æ®åºçæ¬è¿ç§»ï¼åæ ·æ¯å¨ä¸»çº¿ç¨ä¸ï¼ï¼è¿ä¹æ¯ä¿ä½¿æåè¿ç¯æ»ç»çä¸ä¸ªç´æ¥å ç´ ã