Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS 9 LaunchServices: ERROR: There is no registered handler for URL scheme itms-services

We have some in-house apps and before iOS 9, the apps will open a link like "itms-services://" after version compare, the new version apps will be downloaded and install.

But after we tested on iOS 9, we found the apps cannot open the link "itms-services://" link, got error like "LaunchServices: ERROR: There is no registered handler for URL scheme itms-services"

The code we used to update the app:

let downloadUrl = NSURL(string: url)
UIApplication.sharedApplication().openURL(downloadUrl!)

We have tested put "itms-services", "itms-services://" and the full URL into "LSApplicationQueriesSchemes" in plist file. But still not work.

like image 323
Daniel Avatar asked Sep 18 '15 12:09

Daniel


1 Answers

I have come to the same problem with you. And I solve this problem with the method that the app open a html url with safari first,

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http:// xx.xx.xx.xx/xx.html"]];

the html url redirect to the url --- itms-services://?action=download-manifest&url=https://xx.xx.xx.xx/xx/xx.plist address. Though this method can update my app, but the update process need open Safari first and then alert open App Store, if you select open button then it will alert whether install your app, at last you confirm install button. the app will be installed automatically.

my html content as follow:

<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=utf-8" />
     <script type="text/javascript">
               function load()
               {
                        window.location ="itms-services://?action=download-manifest&url=https://xxx/xx/xx.plist";
               }
     </script>
</head>
<body onload = "load()">
like image 65
dullgrass Avatar answered Sep 17 '22 11:09

dullgrass