7. Autorelease
• give the ownership to autorelease pool
• default autorelease pool created by AppKit
• life cycle = event cycle
• You can create your own autorelease pool
• Don’t over use autorelease
Saturday, April 9, 2011
9. Rules
You only release or autorelease
objects you own
• If you own the object by alloc, copy or
retain, you have to release or autorelease
• If the object is not owned by you, don’t call
release or autorelease
Saturday, April 9, 2011
29. Crash Reports
• What’s crash reports?
• Where to get crash reports?
• How to read crash reports?
• Generate crash reports by 3rd party lib
Saturday, April 9, 2011
31. Xcode Organizer
Get crash reports from devices
Saturday, April 9, 2011
32. Local Directories
• Mac OS X: ~/Library/Logs/CrashReporter/
MobileDevice/ <DEVICE_NAME>
• Windows XP: C:Documents and Settings
<USERNAME>Application DataApple Computer
LogsCrashReporterMobileDevice
<DEVICE_NAME>
• Windows Vista + 7: C:Users<USERNAME>
AppDataRoamingApple ComputerLogs
CrashReporterMobileDevice<DEVICE_NAME>
Saturday, April 9, 2011
33. iTunes Connect
Get users’ crash reports after release
Saturday, April 9, 2011
34. Crash Types
• EXC_BAD_ACCESS (SIGBUS or SIGSEGV)
• EXC_CRASH (SIGABRT)
• Low Memory
• 00000020
Exception Codes Type
0x8badf00d Timeout
0xdeadfa11 User Force-Quit
Saturday, April 9, 2011
35. Symbols
• Keep symbol before each release
• Xcode Archive
• dSYM file
• Read the report
• Xcode organizer
• atos, symbolicatecrash, symbolizecrashlog
• 3rd party tools - Symbolicator
Saturday, April 9, 2011
37. Test
• Unit Test
• Beta Test
• Automating UI Test
Saturday, April 9, 2011
38. Unit Test
• Unit Test Target
• How easy to test: M > C > V
Saturday, April 9, 2011
39. Automating UI Test
• Instruments
• Accessibility
• Javascript
Saturday, April 9, 2011
40. Beta Test
• Ad Hoc
• Build suggestion:
Ad Hoc and Distribution share the same
bundle id but different from Debug build
Saturday, April 9, 2011
41. Ad Hoc Deploy
• Deploy via internet
• Hockey
• TestFlightApp.com
• dropbox
Saturday, April 9, 2011
42. Crash Report Lib
• plcrashreporter
• http://code.google.com/p/plcrashreporter/
• can be used in both ad hoc and distribution
builds
• output as protobuf-encoded messages
Saturday, April 9, 2011