I'd like to know if (and how) Apple guaranty the uniqueness of CFBundleURLSchemes entries for iPhone applications.
In the Apple documentation (http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/StandardBehaviors/StandardBehaviors.html) section "Implementing custom URL Schemes") they say that about CFBundleURLName "To ensure uniqueness, it is recommended that you specify a reverse-DNS style of identifier", but nothing about CFBundleURLScheme. And when an application launches another application using an URL scheme, there is no reference to BundleURLName, it just refer to URL scheme. (method "- (BOOL)openURL:(NSURL *)url" of UIApplication).
So if I publish an application responding to a particular URL scheme on the app store, can I be sure that no other application responds to this URL scheme ? Is it a part of the Apple validation process ?
I have not be able to find any documentation about that neithe开发者_如何学运维r on the Apple site nor on any other site.
No, as far as I know uniqueness of application URL schemes is not guaranteed by Apple - it only provides a recommendation that can significantly improve chances for that. If everyone will use recommended reverse dns style for their custom urls then they will not "collide" (assuming that company and application name combinations used for url are unique)
As far as I can tell, Apple does not ensure uniqueness of the URL scheme and the 'URL name' is nice for documentation but does not factor in when determining uniqueness. Only the URL scheme matters.
精彩评论