You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.
Forum Discussion
Anthony B.15
8 years agoExplorer | Level 4
Xcode 9 simulator DropboxClientsManager.authorizeFromController failing.
Using SwiftyDropbox 4.3.0 on iOS.
I'm trying to link my app to my Dropbox account on the latest iOS simulator and it is failing with the following errors:
-canOpenURL: failed for URL: "dbapi-2://1/connect" - error: "The operation couldn’t be completed. (OSStatus error -10814.)"
-canOpenURL: failed for URL: "dbapi-8-emm://1/connect" - error: "The operation couldn’t be completed. (OSStatus error -10814.)"
Error -10814 (kLSApplicationNotFoundErr) says "No application in the Launch Services database matches the input criteria.". I don't have the Dropbox app installed in the simulator, so shouldn't it just be launching Safari?
This was previously working fine in Xcode 9.1. Things seem to still be running fine on a real device. Anyone have an idea what might be going on?
We've seen this happen when the controller passed in to authorizeFromController isn't the top-most controller. The solution would be to make sure that you're passing the top-most view controller when authorizing. For example, with the UISplitViewController case, it's not necessarily self. Can you check if that's what's happening in your case?
- Anthony B.15Explorer | Level 4
Just a follow-up. This only seems to be happening with the iPad simulator in Xcode 9.2. I've not seen it occur when using one of the iPhone simulators. Seems kind of like an Xcode simulator bug but I can't say for sure.
Would appreciate if anyone else could confirm this.
- Greg-DBDropbox StaffThat's correct, these 10814 errors are expected when the official Dropbox iOS app isn't installed, and the SDK should automatically fall back to processing the app authorization flow in Safari in that case. (More specifically, it should present a SFSafariViewController with the OAuth 2 app authorization flow on the Dropbox web site.)
I just tried this in an iPad simulator with Xcode 9.2 though, and it worked for me. Can you elaborate on what does/doesn't happen for you? Does the SFSafariViewController not get presented at all? Does it happen in multiple iPad simulators? If not, you may want to try resetting that particular simulator in case it's somehow in a broken state.- Anthony B.15Explorer | Level 4
The SFSafariViewController does appear but it just seems to hang. It doesn't load the login page and doesn't even show any browser controls.
I've done a little more testing and now find that this only occurs in portrait mode of all the iPad simulators. In landscape mode it works ok. About the only difference here is that I am using a UISplitViewController, but my "link" button is always in the same view controller. In either case, I initiate the authorization sequence as follows:
DropboxClientsManager.authorizeFromController(UIApplication.shared,
controller: self,
openURL: { (url: URL) -> Void in UIApplication.shared.openURL(url)
})
This behavior is strange considering that all this worked correctly before Xcode 9.
Thanks for the help. I'll keep experimenting.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,911 PostsLatest Activity: 34 minutes agoIf you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!