gpt4 book ai didi

android - react-native 在构建期间获取发布构建包名称/包 id?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:04:02 25 4
gpt4 key购买 nike

我正在为我的应用程序使用 firebase,并且有 2 个 iOS 目标和 2 个 android 风格,我们称它们为 productiondevelopment。它们使用不同的 firebase 项目,并在 ci 中构建为发布版本。

问题来了,我需要为某些需要传递 bunlde ids/package ids(来自 javascript 代码)的 firebase 调用提供不同的配置。

因为我在构建这些时总是处于 Release模式,所以我不能依赖全局 DEV 变量。

有没有办法让我找出在 js 代码中构建的目标/ flavor 并根据此调整那里的内容?

最佳答案

是的,您可以通过 android 的 buildConfigField 字段和 iOS 的 environment.plist 设置访问该信息。

您可以使用框架 react-native-build-config 和 react-native-userdefaults-ios 在您的 js 代码中访问它们。

因此,在 Android 上,您可以在 app/build.gradle 文件中的 productFlavor 中设置一个 buildConfigField:

buildConfigField "String", "CONFIGURATION_VARIABLE", '"some_url_or_other_info"'

然后在js中通过react-native-build-config访问。

在 iOS 上,您只需创建 2 个 environment.plist 文件,名称如 environment_production.plist 和 environment_development.plist。在 Build Phases -> Setup Environment 下,您可以添加一个脚本以在它们之间进行选择:(在示例中,我对 GoogleServices-info 文件执行相同的操作,这对我来说也是不同的)

    if [ ${CONFIGURATION} == "Production" ]
then
cp ${PROJECT_DIR}/environment_production.plist ${PROJECT_DIR}/environment.plist
cp ${PROJECT_DIR}/Firebase/GoogleService-Info.production.plist ${PROJECT_DIR}/Firebase/GoogleService-Info.plist

else
cp ${PROJECT_DIR}/environment_development.plist ${PROJECT_DIR}/environment.plist
cp ${PROJECT_DIR}/Firebase/GoogleService-Info.development.plist ${PROJECT_DIR}/Firebase/GoogleService-Info.plist
fi

然后它将在 js 的 userDefaults 中可见。希望这就是您要找的。

关于android - react-native 在构建期间获取发布构建包名称/包 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49193198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com