The problem with doing the symbolication on the next startup on the device is, that you need to make sure that the app version did not change (if you want to symbolicate those too, which you shouldn't since you won't get line numbers) and need to make sure that the iOS version is also the same. So trying to open them might give you more trouble unsuccessful results than you want.
The safest and most reliable way is to symbolicate on your Mac or a server where you can collect all symbols and are also able to get line numbers for your own apps code.
Why don't use just use PLCrashReporter to collect the crash logs? This does all you need in a very safe and reliable way, including catching exceptions, signal handlers etc. This article shows more about some of the problems working with crashes has: http://landonf.bikemonkey.org/code/objc/Reliable_Crash_Reporting.20110912.html
See https://code.google.com/p/plcrashreporter/ and our fork with some additions for Mac support and safe (!!) symbolication of system libs right when the crash happens, see https://github.com/bitstadium/PLCrashReporter and https://github.com/bitstadium/HockeySDK-iOS which uses that fork.
One important note I forgot to mention: since iOS 6 a lot of symbols result in "redacted" when symbolicated on the device. Another reason you may want to avoid this.