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

标签 iphone ios ipad ota

我们为我们的一位客户开发了一个用于分发的 OTA 应用程序商店。

为了能够测试应用程序是否已安装,在我编写的每个应用程序中,我添加了两个自定义 URL 方案:一个只是应用程序 ID,一个包含应用程序 ID 和版本(均带有 . 替换为 -);例如,com-mycompany-appcom-mycompany-app-1-2-0 用于 com.mycompany.app,版本 1.2.0。

然后,在我们的“应用程序商店”中,我只是使用 [[UIApplication sharedApplication] canOpenUrl:] 来确定应用程序是否已安装或最新版本,如果是,则替换“安装”带有“打开”按钮的按钮。

通过 XCode 安装应用程序时,效果很好。但是,当我通过我的“应用商店”安装同一个应用 OTA 时,canOpenUrl: 调用总是返回 NO。为了查看它是否是缓存问题,我尝试在 OTA 安装完成后重新启动“应用商店”应用,但我得到了相同的结果。

这是我的 list plist 文件的问题吗?在属于目标的 Info.plist 中,自定义 URL Scheme 的东西显然在那里,但它不在 list 中。但是,我想它只使用 list 来启动初始安装......不应该在实际安装期间使用 Info.plist 来注册这些东西吗?还有什么我想念的吗?

谢谢!


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

最佳答案

我让这个工作正常,以防有人看到这个或偶然发现类似的问题。

唯一 我改变的是在我的 URL 方案中使用句点,而不是连字符,而且没有文档说明旧方法行不通或不应该。所以 com-company-app:// 变成了 com.company.app:// (与 bundle ID 相同),同样还有版本附加的。

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

关于iphone - iOS OTA 安装未注册自定义 URL 方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14508936/

相关文章:

iphone - 使用多个谓词获取请求?

iphone - 如何取消UISearchbar中的键盘?

ios - 设置添加为 subview Controller 的导航 Controller 的框架

ios - drawRect,绘制项目并忽略 mask

ios - 获取 UIBezierPath 的所有顶点

ios - 我们可以为 iOS 和 tvOS 创建一个应用程序吗?

iphone - 为什么 -[UISearchBar showsScopeBar] 被忽略了?

iphone - 匹配字典数组 - 其中一个数组不完全等于另一个数组

ios - 在 iPad 上更新已从 developer.apple.com 上注册的设备中删除的应用程序

ios - UITextView 从 textViewShouldBeginEditing 卡住 iPad 应用程序。 (无效的字形索引)