2013-01-24 93 views
3

對於我們的客戶之一,我們開發了OTA應用商店進行分銷。iOS OTA安裝不註冊自定義URL方案

爲了使檢測是否安裝了應用程序,在每一個我寫的應用程序中,我添加了兩個自定義URL方案:一個方案,這僅僅是應用程序ID,和一個與應用程序ID和版本(均與.替換-);例如對於com.mycompany.app,版本1.2.0,例如com-mycompany-appcom-mycompany-app-1-2-0

然後,在我們的「應用程序商店」中,我只是使用[[UIApplication sharedApplication] canOpenUrl:]來確定應用程序是否已安裝或最新版本,如果是,請用「打開」按鈕替換「安裝」按鈕。

通過XCode安裝應用程序時,效果很好。但是,當我通過我的「應用程序商店」安裝相同的應用程序OTA時,canOpenUrl:調用始終返回NO。要查看它是否是緩存,我嘗試在OTA安裝完成後重新啓動「應用商店」應用程序,但獲得相同的結果。

這是我的清單plist文件的問題嗎?在屬於目標的Info.plist中,顯然存在自定義URL Scheme的東西,但它不在清單中。然而,我想它只使用清單來啓動初始安裝......在實際安裝過程中不應該使用Info.plist來註冊這些類型的東西?還有什麼我失蹤?

謝謝!


編輯:我使用自定義構建腳本實際創建正在使用OTA分佈.ipa.plist文件。我嘗試使用iPhone Configuration Utility直接安裝IPA,並且我的應用商店能夠將這些URL識別爲可打開。我能想到的唯一可能的事情是,我用來下載&安裝的plist需要對這些自定義URL方案有某種參考,或者它實際上是Apple OTA框架中的一個合法錯誤。

+0

您是否在自定義構建腳本中驗證了您生成.plist的位置,它實際上包含了自定義方案? – Shaun

+0

是的,爲了更徹底,我將所有URL方案的東西都加入到清單plist中。相同的結果。 – cscott530

+0

我只是嘗試在XCode中存檔,並且也使用了企業分發步驟。我手動將它放在我的應用商店服務器上,並獲得相同的結果。 – cscott530

回答

3

我得到了這個工作,以防萬一有人在看這個或者在類似的問題上遇到困難。

只有事情我改變 - 沒有文件說舊的方式不會或不應該工作 - 是在我的URL方案中使用句點,而不是連字符。因此com-company-app://變成com.company.app://(與捆綁ID相同),並且與版本追加的一樣。

我不知道我的舊URL方案是否違反官方URL規範,或者如果您應該使用反向DNS,但現在一切正常。