是否可以为同一个应用程序注册与不同应用程序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://
正如@ Paulw11所建议的,这需要在构建时完成。对于每个应用程序环境,我都有一个关联的Xcode方案。在xcode shceme的build部分中,您可以配置postbuild操作。您可以执行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方案。