iOS 9 LaunchServices:错误:URL方案itms-services没有注册处理程序

时间:2015-09-18 12:29:32

标签: ios ios9 enterprise-distribution

我们有一些内部应用程序,在iOS 9之前,应用程序将打开类似于" itms-services://"的链接。在版本比较之后,将下载并安装新版本的应用程序。

但是在我们在iOS 9上测试后,我们发现应用程序无法打开链接" itms-services://"链接,得到错误像" LaunchServices:错误:没有注册处理程序的URL方案itms-services"

我们用于更新应用的代码:

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

我们测试过put" itms-services"," itms-services://"和完整的URL到" LSApplicationQueriesSchemes"在plist文件中。但仍然没有用。

4 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我用app首先打开带有safari的html url的方法来解决这个问题,

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

html网址重定向到网址--- itms-services://?action = download-manifest& url = https://xx.xx.xx.xx/xx/xx.plist地址。虽然这种方法可以更新我的应用程序,但更新过程需要先打开Safari,然后提醒打开App Store,如果选择打开按钮,它会提示是否安装你的应用程序,最后你确认安装按钮。该应用程序将自动安装。

我的html内容如下:

<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()">

答案 1 :(得分:0)

在iOS9中(在我的情况下,我的网址方案是:hash:)

更改info.plist: add the custom url schemes here

然后在appdelegate中注册事件处理程序:

 func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
    // do what you want to do
    print(url);

    // return true if url matches scheme
    return true;
}

答案 2 :(得分:0)

不知道它是你的情况,但你需要一个https网址来下载应用程序。我们的网站上没有SSL,因此我们所做的是将.plist上传到Dropbox并使用itms-services链接中的共享链接。 .plist重定向到您的服务器,我们没有问题

答案 3 :(得分:0)

在iOS 9中,您必须将您的应用程序想要在LSApplicationQueriesSchemes键(字符串数组)下的Info.plist中查询的任何URL方案列入白名单:

enter image description here

Info.plist中包含的方案一切正常。当您链接到iOS 9时,您不仅限于50个不同的方案,您只需要在Info.plist中声明您需要的内容。您可以包含多少方案似乎没有限制,但如果他们认为您滥用该机制,我会期待App Store审核小组提出的问题。

  

请注意,此机制仅适用于canOpenURL而不适用于openURL。   您无需在Info.plist中列出方案即可   用openURL打开它。

有关详情,请访问:http://useyourloaf.com/blog/querying-url-schemes-with-canopenurl.html