菜鸟教程小白 发表于 2022-12-11 19:50:24

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


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

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

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

<p>有没有办法让我找出在 js 代码中构建的目标/风格并基于此调整内容?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>是的,您可以通过 android 的 buildConfigField 字段和 iOS 的 environment.plist 设置访问该信息。</p>

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

<p>因此,在 android 上,您可以在 app/build.gradle 文件中的 productFlavor 中设置 buildConfigField:</p>

<pre><code>buildConfigField &#34;String&#34;, &#34;CONFIGURATION_VARIABLE&#34;, &#39;&#34;some_url_or_other_info&#34;&#39;
</code></pre>

<p>然后通过js中的react-native-build-config访问。</p>

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

<pre><code>    if [ ${CONFIGURATION} == &#34;Production&#34; ]
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
</code></pre>

<p>然后它将在 js 的 userDefaults 中可见。
希望这就是您正在寻找的。</​​p></p>
                                   
                                                <p style="font-size: 20px;">关于android - react-native 在构建期间获取发布构建包名称/bundle ID?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/49193198/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/49193198/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: android - react-native 在构建期间获取发布构建包名称/bundle ID?