【问题标题】:How do you configure multiple iOS URL Schemes如何配置多个 iOS URL Schemes
【发布时间】:2020-04-25 06:00:57
【问题描述】:

是否可以为同一个应用注册与不同应用 ID 关联的多个 URL 方案。例如,我的应用程序的每个环境都有单独的应用程序,每个应用程序都有自己唯一的 bundke id。 E.G

com.test.app-dev (testapp-dev://)
com.test.app-qa (testapp-qa://)
com.test.app (testapp://)

如果我想从一个 url 启动开发应用程序,我会使用想要使用 testapp-dev://

【问题讨论】:

  • 如果应用具有不同的捆绑 ID,则它们是不同的应用。您需要为每个应用程序包含适当的 info.plist 条目。这是您在构建期间需要管理的内容。
  • 感谢您的提示。对于使用 plist buddy 更新构建产品目录中的 Info.plist 文件的每个环境,我能够在 XCode 方案中的构建后操作中执行自定义脚本。

标签: ios url-scheme


【解决方案1】:

正如@Paulw11 建议的那样,这需要在构建时完成。对于每个应用程序环境,我都有一个关联的 Xcode 方案。在 xcode shceme 的构建部分,您可以配置构建后操作。您可以将 shell 脚本作为构建后操作执行。

例如在 com.test.app-dev 方案中,有一个运行此脚本的构建后操作

/usr/libexec/PlistBuddy -c "set :CFBundleURLTypes:0:CFBundleURLSchemes:0 testapp-dev" "$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH"
/usr/libexec/PlistBuddy -c "set :CFBundleURLTypes:0:CFBundleURLName com.test.app-dev" "$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH"

然后在 com.test.app-qa 方案中,有一个运行此脚本的构建后操作:

/usr/libexec/PlistBuddy -c "set :CFBundleURLTypes:0:CFBundleURLSchemes:0 testapp-qa" "$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH"
/usr/libexec/PlistBuddy -c "set :CFBundleURLTypes:0:CFBundleURLName com.test.app-qa" "$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH"

这可确保为与每个环境关联的每个应用程序注册正确的自定义 url 方案。

【讨论】:

    猜你喜欢
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 2017-06-25
    相关资源
    最近更新 更多