When the application is in "Not Running" state, app would loose its previous state and would start afresh which means, app would re-start with didFinishLaunch method getting called. At this point, the entire state of the app's dependants would also have to be re-initialized.
Same happens with the SDK as well, the notification userinfo is not known to the SDK as it would have not been initialized and the URL handling delegate would have not been set when the app is launched afresh. Hence, the application should pass on the notification object to the SDK only when ready.
This will work for a normal push as it just launches the application and no actions to be done with the payload by the SDK.
Also, please note that the register for remote notification should be called in the success callback of SDK init as SDK depends on the notification userinfo, otherwise may lead to the above crash.
Thanks,
Prakashini
get state
method as well as logs from initialization continuing through the problem you're experiencing as that will speed the process along.