繁体   English   中英

将React Native发布到Google Play控制台会生成旧的APK

[英]Publishing React Native to Google Play console generates old apk

我正在尝试在我的React Native项目上为Android生成发布APK。 我遵循了Facebook官方的React Native发布文档中的所有步骤。

当我在Play控制台中上载生成的apk时,下载并在我的设备上运行它,我看不到上次发布apk后所做的任何更改。 (意味着我看到具有较旧功能而不是新功能的较旧apk)

我还尝试在react-native run-android --variant=release之前运行react-native run-android --variant=release ,我得到的是相同版本的apk。 但是我可以看到所有新功能在调试中运行时都有效,没有发布标志。

尝试了以下类似的其他解决方案,但会导致“重复错误”。

react-native run-android将旧版本的代码构建到设备上

更新:希望这对遇到相同问题并试图找到解决方案的人有所帮助。

我让它以这种方式工作。 我不知道这是多么明智,但这暂时对我而言有效。 我在官方的本机github问题页面上找到了解决方案。 这是实际解决方案链接 ,也是对解决方案的快速了解。 在doFirst代码块之后,我必须使用以下代码编辑react.gradle文件。 该文件可以在节点模块> react-native文件夹下找到。

doLast {
        def moveFunc = { resSuffix ->
            File originalDir = file("$buildDir/generated/res/react/release/drawable-${resSuffix}");
            if (originalDir.exists()) {
                File destDir = file("$buildDir/../src/main/res/drawable-${resSuffix}");
                ant.move(file: originalDir, tofile: destDir);
            }
        }
        moveFunc.curry("ldpi").call()
        moveFunc.curry("mdpi").call()
        moveFunc.curry("hdpi").call()
        moveFunc.curry("xhdpi").call()
        moveFunc.curry("xxhdpi").call()
        moveFunc.curry("xxxhdpi").call()
        }

然后我运行以下命令:

cd android
./gradlew bundleRelease
cd..
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

然后,我运行了带有发行版本的build命令,它起作用了。 获得所有最新更改并生成新的apk。 尝试了多次并工作。

react-native run-android --variant=release

当您运行“ react-native run-android --variant = release”时,您之前是否删除过设备上的应用程序? (如果我以前不这样做,我会遇到麻烦)。

对于Play商店部分,您是否增加了react项目的构建版本? (package.json上的“版本”,android> app> build.gradle中的“ defaultConfig> versionCode和versionName”,ios的info.plist)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM