2015-09-18 25 views
10

我們有一些內部應用程序,在iOS 9之前,應用程序將在版本比較後打開類似「itms-services://」的鏈接,新版本的應用程序將被下載並安裝。iOS 9 LaunchServices:錯誤:URL方案沒有註冊處理程序itms-services

但是在我們測試iOS 9後,我們發現應用程序無法打開鏈接「itms-services://」鏈接,出現錯誤如「LaunchServices:ERROR:URL scheme itms-services沒有註冊處理程序」

我們用於更新應用程序的代碼:

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

我們已經測試放「ITMS服務」,「ITMS服務://」網址完整地進入plist文件「LSApplicationQueriesSchemes」。但仍然無法工作。

+0

已經得到此問題的變通辦法。在一個域上配置一個子域名,並設置新的URL自動重定向到itms-service:// URL(你的DNS服務提供商總是支持這個),在應用中打開新的URL而不是「itms-service」 URL,從應用論壇得到這個,尚未測試。 – Daniel

回答

0

在iOS9(在我的情況我的URL方案:哈希:)

變化的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; 
} 
+0

感謝您的回覆,但我沒有定義應用程序擁有的模式,只是想使用企業內部分配模式(用戶可以在Safari中打開URL來安裝內部分配而不是AppStore)。 – Daniel

0

不要知道這是你的情況,但你需要一個https url來下載應用程序。我們的網站上沒有SSL,因此我們所做的是將.plist上傳至收件箱,並在itms-services鏈接中使用共享鏈接。該的.plist重定向到您的服務器,我們沒有問題

+0

實際上,我們在9.0以前的iOS中可以使用這個工具,但是在更新到iOS 9之後,這是行不通的。似乎新的iOS無法找到以「itms-services」開頭的應用程序來打開URL,它應該可以正常工作,因爲URL可以直接由Safari打開。但不能從應用程序打開。 – Daniel

+0

@Daniel檢查我的答案在這裏,也許它可以幫助你,在我們的iOs 9設備,它工作正常http://stackoverflow.com/a/32769917/1339326 – magorich

+1

感謝您的答覆,但實際上我們的問題不是「安裝「但」升級「後,我們可以在Safari 9上安裝我們的應用程序在iOS 9上,但我們通過打開一個URL爲」itms-services://「來升級自己的應用程序,該應用程序適用於iOS 8,但無法在iOS 9上運行 – Daniel

0

在iOS中9,你必須列入白名單的應用程序要在Info.plist中查詢下LSApplicationQueriesSchemes密鑰的任何URL方案(字符串數組):

enter image description here

隨着Info.plist中包含的方案一切正常,如以前一樣。當你連接到iOS 9時,你不僅限於50個不同的方案,你只需要在Info.plist中聲明你需要的東西。對於您可以包含多少計劃似乎沒有限制,但如果他們認爲您濫用此機制,我會希望App Store審覈團隊提出問題。

Note that this mechanism only applies to canOpenURL and not openURL. You do not need to have a scheme listed in Info.plist to be able to open it with openURL.

更多信息請訪問:http://useyourloaf.com/blog/querying-url-schemes-with-canopenurl.html

1

我是來和你同樣的問題。我解決這個問題,該應用程序打開一個HTML鏈接使用Safari第一方法,

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

的HTML URL重定向到URL --- ITMS服務://行動=下載艙單&網址= 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()"> 
+0

此外,更新安裝過程與在safari中打開url tms-services://?action = download-manifest&url = https://xx.xx.xx.xx/xx/xx.plist相同 – dullgrass

相關問題