适用于 iOS 应用程序的具有多个捆绑标识符的 URL 类型

Posted

技术标签:

【中文标题】适用于 iOS 应用程序的具有多个捆绑标识符的 URL 类型【英文标题】:URL types with multiple bundle identifiers for iOS apps 【发布时间】:2018-09-19 08:34:01 【问题描述】:

我希望我的 ios 项目能够处理多个 URL 类型和多个包标识符,因此我可以在同一设备上安装 2 个版本的应用程序。

我有 2 个不同的捆绑包 ID:com.mycompany.myapp 和 com.mycompany.myapp-test

我在 Info.plist 文件中为两个包标识符注册了 2 种 URL 类型

我使用 2 个捆绑标识符生成 2 个构建,并将两个应用程序安装在同一设备上。然后我尝试使用 2 个 url 访问我的应用程序:myapp://feed 打开 myapp 和 myapp-test://feed 打开 myapp-test。

但是由于某种原因,我无法打开 myapp-test,当我单击两个链接时,它总是会打开 myapp。

我处理这个问题的方式肯定有问题,所以我想知道如何在同一个 Xcode 项目中使用多个 URL 方案管理多个包 ID?

谢谢

【问题讨论】:

【参考方案1】:

您需要有两个不同的 info.plist 文件,一个用于每个目标,并具有您希望用于特定应用的特定 URL 方案。

然后在 Xcode 中添加适当的info.plist 相关目标。

iOS 不使用identifier 来确定哪个 urlscheme 适用于应用程序。如果多个应用程序声明支持相同的 URL 方案,则未定义将启动哪一个。

【讨论】:

以上是关于适用于 iOS 应用程序的具有多个捆绑标识符的 URL 类型的主要内容,如果未能解决你的问题,请参考以下文章

swift 4如何将firebase Crashlytics用于多个标识符IOS的多个捆绑标识符

Google App Invites:具有不同包名称/捆绑 ID 的 iOS 应用和 Android 应用 - 它们如何与 goo.gl/App Invites 关联?

适用于 iOS 的 Google Maps SDK 要求 GoogleMaps.bundle 成为“复制捆绑资源”下目标的一部分

使用firebase iOS swift创建具有相同捆绑ID的多个环境?

删除应用扩展后仍然出现应用安装失败错误 - 此应用包含具有非法捆绑标识符的应用扩展

更改捆绑包标识符时,iOS 启动屏幕不显示图像