Apple's canOpenURL 'solution'

Am I the only one that is a bit perplexed by the solution Apple has put in place for canOpenURL, how does adding the url schemes to a whitelist in your own application make sense? What is stopping Twitter from just adding the list of known custom URLs into their plist and continuing with their practice of using canOpenURL? It would probably make more sense for the app that is being queried to specify which apps should be allowed to query it, from a security standpoint, but I wouldn't advocate that either. I think Apple needs to come up with a better solution for the restriction on canOpenURL. I think at the very least an application that has the same Team ID as an application it wants to open should be allowed to do so without having to specify it in the whitelist.

The whitelist is there so that App Review can catch any apps that abuse canOpenURL. I'm sure they'll flag and reject any apps with excessively long or suspicious looking whitelists.

I understand your point, it's definitely a good way of automating the process of checking what URLs will be polled for. But for a big company like Twitter I feel like they have a few avenues to get around what Apple have implemented here, there isn't really anything stopping them from releasing an Enterprise version of their application which people can download from their site and forcing the Twitter downloaded from iTunes to update from there. I respect that Apple are combatting for Privacy Rights, but I feel like their solution wasn't given much thought and does harm for applications that use canOpenURL legitimately.

I use the canOpenURL to check which satnav apps a user has installed. As my app can then launch the users choice of satNav with the destination already set.


I will have to use whitelists for that, but surely there are certain classes of apps that should be allowed to be queried. It's pointless me supporting every satnav app that I want to, then offer the user a list which will include several they don't have installed!

That's now how the whitelist will work, if you have say 20 GPS apps listed in your whitelist but the user only has 1 installed then your canOpenURL call would only return True for the 1 that they have installed.


Apple wants to lock this down completely, they say this is to stop things like being able to log how many and what apps users have installed but the real recipients of this crackdown are services that use the canOpenURL for targeting ads based on what apps a user has installed.

Apple's canOpenURL 'solution'
 
 
Q