iOS OTA安装无法注册自定义URL scheme

3
针对我们的一个客户,我们开发了一个OTA应用商店来进行分发。
为了测试应用程序是否已安装,在我编写的每个应用程序中,我添加了两个自定义URL方案:一个只是应用程序ID,另一个包含应用程序ID和版本(两者都将 . 替换为 - );因此例如com.mycompany.app的ID为 com-mycompany-app ,版本为1.2.0,则相应的ID为 com-mycompany-app-1-2-0
然后,在我们的“应用商店”中,我只需使用 [[UIApplication sharedApplication] canOpenUrl:] 来确定应用程序是否已安装或最新版本,如果是,则将“安装”按钮替换为“打开”按钮。
当通过XCode安装该应用程序时,它非常好用。但是,当我通过我的“应用商店”OTA安装同样的应用程序时, canOpenUrl: 调用总是返回NO。为了查看是否存在缓存问题,我尝试在OTA安装完成后重新启动“应用商店”应用程序,但结果相同。
这是我的清单plist文件出现问题吗?在属于目标的Info.plist中,自定义URL方案显然存在,但不在清单中。但是,我想它仅在初始化安装时使用清单...实际安装期间应该使用Info.plist来注册这些内容,我是否漏掉了其他内容?
谢谢!
编辑:我正在使用自定义构建脚本实际创建用于OTA分发的 .ipa .plist 文件。我尝试使用iPhone配置实用程序直接安装IPA,我的应用商店能够识别那些可打开的URL。我唯一可以想到的是,我用于下载和安装的清单需要具有对这些自定义URL方案的某种引用,或者它实际上是Apple的OTA框架中一个合法的错误。

你在自定义构建脚本中验证过生成 .plist 文件时是否实际包含了自定义方案吗? - Shaun
是的,为了彻底一些,我也将所有的URL方案内容添加到了清单plist中。结果还是一样的。 - cscott530
我刚刚尝试在XCode中进行归档,并使用了企业分发步骤。我手动将其放置在我的应用商店服务器上,但结果相同。 - cscott530
1个回答

3

我已经解决了这个问题,如果有人在看或者遇到类似的问题,请注意以下内容。

唯一改变的事情是我使用句点而不是连字符作为我的URL方案,虽然没有文档说明旧方法不能或不应该工作。所以com-company-app:// 变成了 com.company.app:// (与包标识相同),版本附加的也是一样。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接