So Apple has changed how openURL: and canOpenURL: work in iOS 9, an app has to register specific URL schemes they would like to open in their whitelists, which can only be updated by submitting an update to iTunes. Otherwise, these two methods will always return FALSE (i.e. not able to open that app).
However, I sent an app invitation through Facebook, and I was able to open my app on my device through clicking the "Open" button in Facebook's app (my device for testing is currently iOS 9 beta 3). How is this possible?
Thanks!
update:
I tried to use openURL: to launch another app which is also mine, and its URL scheme has not been registered in the whitelist of the calling app. And turns out that I can launch another app successfully, while canOpenURL: is returning NO.
I have no idea whether Apple is ONLY changing canOpenURL, or successfully launching another app is a bug.