If you set your Xcode scheme to run manually (Edit Scheme> Run> Info), you can stop your application from starting after you scheduled UILocalNotification .
Then, if you run the application again, it will not start until you launch it from the simulator / device.
Then you can wait until the notification appears, and click on the notification, which then launches your application (manually!). This way you can debug UILocalNotification from launchOptions application:didFinishLaunchingWithOptions:
Just remember that for debugging, you probably want to schedule UILocalNotification for a date of about 10 seconds or so in the future, it always hurts to debug time-related things.
Good luck.
Daniel
source share