我们为我们的一位客户开发了一个 OTA 应用商店进行分发。
为了测试是否安装了应用程序,在我编写的每个应用程序中,我添加了两个自定义 URL 方案:一个只是应用程序 ID,另一个是应用程序 ID 和版本(都.
替换为-
);例如com-mycompany-app
,com-mycompany-app-1-2-0
对于 com.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 框架中的一个合法错误。