iOS OTA安装未注册自定义URL方案

时间:2013-01-24 19:13:01

标签: iphone ios ipad ota

对于我们的一位客户,我们开发了一个OTA应用商店以供分发。

要启用测试是否安装了应用,在我编写的每个应用中,我添加了两个自定义网址方案:一个只是应用ID,另一个是应用ID和版本(均为{{1} }替换为.);例如,对于com.mycompany.app,版本1.2.0,-com-mycompany-app

然后,在我们的“应用程序商店”中,我只使用com-mycompany-app-1-2-0来确定是安装了应用程序还是最新版本,如果是,请使用“打开”按钮替换“安装”按钮。

通过XCode安装应用程序时,效果很好。但是,当我通过我的“app store”安装相同的应用程序OTA时,[[UIApplication sharedApplication] canOpenUrl:]调用始终返回NO。为了查看它是否是缓存,我尝试在OTA安装完成后重新启动“app store”应用程序,但我得到了相同的结果。

这是我的清单plist文件的问题吗?在属于目标的Info.plist中,自定义URL Scheme显然存在,但它不在清单中。但是,我认为它只使用清单启动初始安装...不应该在实际安装过程中使用Info.plist来注册这些东西吗?还有其他我想念的东西吗?

谢谢!


编辑:我正在使用自定义构建脚本来实际创建用于OTA分发的canOpenUrl:.ipa文件。我尝试使用.plist直接安装IPA,我的应用商店能够识别这些网址是否可以打开。我能想到的唯一可能的事情就是我用来下载的plist&安装需要对这些自定义URL方案有某种引用,或者它实际上是Apple的OTA框架中的合法错误。

1 个答案:

答案 0 :(得分:3)

我得到了这个工作,万一有人在看这个或偶然发现类似的问题。

我改变了唯一的东西 - 并且没有文档说旧方法不会或不应该工作 - 是在我的URL方案中使用句点而不是连字符。因此,com-company-app://变为com.company.app://(与捆绑ID相同),同样附加了版本。

我不知道我的旧网址方案是否违反官方网址规范,或者您是否应该使用反向DNS,但现在一切正常。