如何构建用于生产的原生 Android 应用程序?

Posted

技术标签:

【中文标题】如何构建用于生产的原生 Android 应用程序?【英文标题】:How to build react native android app for production? 【发布时间】:2015-12-14 06:24:01 【问题描述】:

我已经看到了 react native for android 的新版本并尝试了一些示例。它仅适用于 USB 调试模式和“adb reverse tcp:8081 tcp:8081”。如何为“生产”构建 android 应用程序,包括所有依赖项并且没有响应 Web 服务器连接。 谢谢。

【问题讨论】:

这些解决方案对您有用吗?该过程为我生成了一个未签名的 apk,任何指针? 【参考方案1】:

要构建您的 Android 应用的发布版本:

$ cd your-app-folder
$ cd android && ./gradlew assembleRelease

您需要为 Play 商店设置签名密钥,完整文档在这里:http://facebook.github.io/react-native/docs/signed-apk-android.html

【讨论】:

谢谢。等待更好的工具来做到这一点。如果我错了,请纠正我,对于构建版本 .apk 还没有工具吗? 从根应用目录试试这个cd android && ./gradlew assembleRelease。根据新文档,facebook.github.io/react-native/docs/signed-apk-android.html @Martin 谢谢你,但我似乎仍然有麻烦,这个过程为我生成了一个未签名的 apk,知道我做错了什么吗? 您需要使用您的密钥库对其进行签名。看看这个 - facebook.github.io/react-native/docs/… @martin-konicek,这个解决方案只生成了一个app-release-unsigned.apk,我尝试安装但没有安装。有什么特别已知的原因吗?谢谢【参考方案2】:

您必须创建一个密钥来签署 apk。使用以下内容创建您的密钥:

keytool -genkey -v -keystore my-app-key.keystore -alias my-app-alias -keyalg RSA -keysize 2048 -validity 10000

出现提示时使用密码

生成密钥后,使用它生成可安装的构建:

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

使用 gradle 生成构建

cd android && ./gradlew assembleRelease

将 APK 上传到您的手机。 -r 标志将替换现有应用程序(如果存在)

adb install -r ./app/build/outputs/apk/app-release-unsigned.apk

这里提到了更详细的描述:https://facebook.github.io/react-native/docs/signed-apk-android.html

【讨论】:

文件夹结构更新,手机使用adb install -r ./app/build/outputs/apk/release/app-release.apk安装【参考方案3】:

至于我,我将 package.json 添加到“脚本”中:

"release": "cd android && ./gradlew assembleRelease"

然后在终端我使用:

npm run release

或者用纱线:

yarn release

【讨论】:

【参考方案4】:

我整理了一些对我有用的步骤。希望能节省时间。

要捆绑包以在本地工作,您需要这样做

$ curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"

然后用于编译apk

$ ./gradlew assembleRelease

我在https://github.com/shyjal/reactnative-android-production添加了详细说明

【讨论】:

【参考方案5】:

创建 Android 应用程序包以在 Play 商店中发布应用程序。

cd /android
sudo ./gredlew bundleRelease

转到android/build/outputs/bundle/release/app-release.aab

在 Play 商店控制台上上传此捆绑包。

【讨论】:

以上是关于如何构建用于生产的原生 Android 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

摆脱 AI 生产“小作坊”:如何基于 Kubernetes 构建云原生 AI 平台

在生产环境中,阿里云如何构建高性能云原生容器网络?(含 PPT 下载)

将复杂的原生应用程序编译到 Android ARM 的完整方法

如何在 NDK 原生代码中获取断点并在 Android Studio 中调试原生代码?

如何使用捆绑包中的 node_modules 依赖项正确构建用于生产的 NestJS 应用程序?

Android Studio 无法在 Windows 操作系统中构建反应原生项目