เก็บ iOS App Crash Log ส่ง App Developer กันเถอะ!

ก็เป็นเรื่องปกติที่ app จะทำงานมีปัญหา อาจจะ crash บ้างอะไรบ้าง สาเหตุก็ร้อยแปดพันเก้า ทั้งที่โดยปกติแล้ว นักพัฒนาก็จะทดสอบโปรแกรมบนเครื่องตัวเองอยู่แล้ว (ซึ่งอันนี้ก็แล้วแต่คน ว่าจะทดสอบละเอียดขนาดไหน บางคนก็แทบไม่ได้ทดสอบอะไร แค่รันผ่านๆ ก็คิดว่าใช้ได้แล้วก็มี) แต่ประเด็นก็คือ ถ้าโปรแกรมทำงานมีปัญหา บนเครื่องของเรา จะทำอย่างไร? หลายคนก็บ่นๆ ไปเรื่อยๆ และปัญหาก็ไม่ได้ถูกแก้

ผมเสนอว่า “แจ้งผู้พัฒนา” ครับ และไม่ใช่แจ้งแค่ว่า “โปรแกรมคุณมีปัญหาเมื่อทำแบบนี้ๆๆ” เพราะว่าแบบนั้นช่วยนักพัฒนาไม่ได้แน่ๆ ยิ่งถ้าเค้าทดสอบบนเครื่องเค้าแล้วมันไม่มีปัญหา เค้าก็จะมืดแปดด้านต่อไป แล้วปัญหามันก็จะอยู่ต่อไป .. งั้นทำไงดี?

คำตอบคือ “ส่ง crash log ให้เค้าด้วย” … แล้วไอ้ crash log ที่ว่านี่ อยู่ตรงไหนล่ะ?

สำหรับโปรแกรมหลายตัว เมื่อมัน crash ก็จะมี dialog ขึ้นมา ให้ส่ง log เพื่อแจ้งผู้พัฒนาอยู่แล้ว ซึ่ง log ที่ว่านี้จะเต็มไปด้วยข้อมูลต่างๆ ที่ผู้ใช้ทั่วไปจะอ่านไม่รู้เรื่องหรอกครับ อาจจะคิดว่ามันไม่สำคัญด้วยซ้ำไป แต่เป็นข้อมูลที่สำคัญยิ่งสำหรับผู้พัฒนา ว่าอะไรมันเกิดขึ้นบ้าง จะได้แก้ปัญหาถูก

สำหรับโปรแกรม iPhone, iPod touch, iPad นั้น ปกติแล้วเครื่องจะเก็บ log ไว้ตลอดเวลา และเมื่อเรา sync เครื่องกับ iTunes นั้น log เหล่านี้ก็จะถูก sync ลงเครื่องด้วย โดยจะอยู่ในที่ต่อไปนี้ครับ:

  1. บน Mac:
    ~/Library/Logs/CrashReporter/MobileDevice/ชื่อไอโฟน/
  2. บน Windows XP:
    C:\Documents and Settings\\Application Data\Apple computer\Logs\CrashReporter\ชื่อไอโฟน\
  3. บน Windows VISTA:
    C:\Users\\AppData\Roaming\Apple computer\Logs\CrashReporter\MobileDevice\ชื่อไอโฟน\

Crash log จะถูกเก็บอยู่ในนั้นครับ โดยให้สังเกตนิดหน่อย ว่าถ้ามี folder (directories) ชื่อ “ชื่อไอโฟน” กับ “ชื่อไอโฟน.symbolicated” ล่ะก็ ให้เลือก .symbolicated นะครับ มันจะมีข้อมูลที่เป็นประโยชน์กับนักพัฒนาที่มากกว่าใน folder “ชื่อไอโฟน” เฉยๆ

สำหรับรูปแบบของ Crash log จะถูกเก็บในไฟล์รูปแบบนี้: ชื่อapp_วันเวลา_ชื่อเครื่อง.crash เช่น PetdoComics_2010-09-04-175745_Rawitats-iPhone-4.crash หรือ TwitterFonPro_2010-08-30-103513_Rawitats-iPhone-4.crash เป็นต้น (ข้อมูลจริงจากบนเครื่องผม)

ตัวอย่างครับ

  • รูปแสดงตัวอย่างที่อยู่และตำแหน่งของ crash log (บน Mac OS X)

    location_crash.png

  • การเปิด crash log ดู จะเห็นข้อมูลที่เป็นประโยชน์กับผู้พัฒนา เช่นโปรแกรมมัน crash เมื่อเรียกอะไรขึ้นมาทำงาน ขณะนั้นมีอะไรทำงานอยู่บ้าง ฯลฯ (ตัวอย่างของ Echofon)

    crash_log.png

ดังนั้น สำหรับ App ผมทุกตัว ส่งมาได้นะครับ contact อยู่ในหน้า App ของ iTunes อยู่แล้ว :-D