react natvie app 安卓打包

这篇具有很好参考价值的文章主要介绍了react natvie app 安卓打包。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

打包发布

Android 要求所有应用都有一个数字签名才会被允许安装在用户手机上,所以在把应用发布到应用市场之前,你需要先生成一个签名的 AAB 或 APK 包(Google Play 现在要求 AAB 格式,而国内的应用市场目前仅支持 APK 格式。但无论哪种格式,下面的签名步骤是一样的)。Android 开发者官网上的如何给你的应用签名文档描述了签名的细节。本指南旨在提供一个简化的签名和打包的操作步骤,不会涉及太多理论。

生成一个签名密钥​

你可以用keytool命令生成一个私有密钥。在 Windows 上keytool命令放在 JDK 的 bin 目录中(比如C:\Program Files\Java\jdkx.x.x_x\bin),你可能需要在命令行中先进入那个目录才能执行此命令。

$ keytool -genkeypair -v -storetype PKCS12 -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

这条命令会要求你输入密钥库(keystore)和对应密钥的密码,然后设置一些发行相关的信息。最后它会生成一个叫做my-release-key.keystore的密钥库文件。

在运行上面这条语句之后,密钥库里应该已经生成了一个单独的密钥,有效期为 10000 天。--alias 参数后面的别名是你将来为应用签名时所需要用到的,所以记得记录这个别名。

注意:请记得妥善地保管好你的密钥库文件,一般不要上传到版本库或者其它的地方。

设置 gradle 变量​

  1. my-release-key.keystore文件放到你工程中的android/app文件夹下。
  2. 编辑~/.gradle/gradle.properties(全局配置,对所有项目有效)或是项目目录/android/gradle.properties(项目配置,只对所在项目有效)。如果没有gradle.properties文件你就自己创建一个,添加如下的代码(注意把其中的****替换为相应密码)

注意:~符号表示用户目录,比如 windows 上可能是C:\Users\用户名,而 mac 上可能是/Users/用户名

MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****

上面的这些会作为 gradle 的变量,在后面的步骤中可以用来给应用签名。

关于密钥库的注意事项::如果你不想以明文方式保存密码,同时你使用的是 macOS 系统,那么你也可以把密码保存到钥匙串(Keychain)中。这样一来你就可以省略掉上面配置中的后两行(即 MYAPP_RELEASE_STORE_PASSWORD 和 MYAPP_RELEASE_KEY_PASSWORD)。

把签名配置加入到项目的 gradle 配置中​

编辑你项目目录下的android/app/build.gradle,添加如下的签名配置:

...
android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                storeFile file(MYAPP_RELEASE_STORE_FILE)
                storePassword MYAPP_RELEASE_STORE_PASSWORD
                keyAlias MYAPP_RELEASE_KEY_ALIAS
                keyPassword MYAPP_RELEASE_KEY_PASSWORD
            }
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}
...

生成发行 APK 包​

只需在终端中运行以下命令:

$ cd android
$ ./gradlew assembleRelease

译注:cd android表示进入 android 目录(如果你已经在 android 目录中了那就不用输入了)。./gradlew assembleRelease在 macOS、Linux 或是 windows 的 PowerShell 环境中表示执行当前目录下的名为 gradlew 的脚本文件,且其运行参数为 assembleRelease,注意这个./不可省略;而在 windows 的传统 CMD 命令行下则需要去掉./

Gradle 的assembleRelease参数会把所有用到的 JavaScript 代码都打包到一起,然后内置到 APK 包中。如果你想调整下这个行为(比如 js 代码以及静态资源打包的默认文件名或是目录结构等),可以看看android/app/build.gradle文件,然后琢磨下应该怎么修改以满足你的需求。

注意:请确保 gradle.properties 中没有包含_org.gradle.configureondemand=true_,否则会跳过 js 打包的步骤,导致最终生成的是一个无法运行的空壳。

生成的 APK 文件位于android/app/build/outputs/apk/release/app-release.apk,它已经可以用来发布了。

测试应用的发行版本​

在把发行版本提交到 Play Store 之前,你应该做一次最终测试。输入以下命令可以在设备上安装发行版本:

$ npx react-native run-android --variant=release

注意--variant=release参数只能在你完成了上面的签名配置之后才可以使用。你现在可以关掉运行中的 packager 了,因为你所有的代码和框架依赖已经都被打包到 apk 包中,可以离线运行了。

注意:在 debug 和 release 版本间来回切换安装时可能会报错签名不匹配,此时需要先卸载前一个版本再尝试安装。

针对不同的 CPU 架构生成 APK 以减小 APK 文件的大小​

默认情况下,生成的 APK 会同时包含针对于多种 CPU 架构的原生代码。这样可以让我们更方便的向其他人分享这个 APK,因为它几乎可以运行在所有的 Android 设备上。但是,这会导致所有设备上都有一些根本不会运行的代码,白白占据了空间。目前安卓设备绝大多数是 ARM 架构,因此对于大部分应用来说可以考虑去掉 x86 架构的支持(但是请注意模拟器大部分是 x86 架构,因此去掉 x86 架构后将无法在模拟器上运行)。

你可以在android/app/build.gradle中修改如下代码(false 改为 true)来生成多个针对不同 CPU 架构的 APK。

- ndk {
-   abiFilters "armeabi-v7a", "x86"
- }
- def enableSeparateBuildPerCPUArchitecture = false
+ def enableSeparateBuildPerCPUArchitecture = true

你可以把这上面打包生成的多个 APK 都上传到支持对用户设备 CPU 架构定位的应用程序商店,例如 Google Play 和 Amazon AppStore,用户将自动获得相应的 APK。如果您想上传到其他市场,例如 APKFiles(不支持一个应用有多个 APK 文件),可以修改下面的代码,来额外生成一个适用不同 CPU 架构的通用 APK。

- universalApk false
+ universalApk true  // 额外生成一个适用不同CPU架构的通用APK

启用 Proguard 来减少 apk 的大小(可选)​

Proguard 是一个 Java 字节码混淆压缩工具,它可以移除掉 React Native Java(和它的依赖库中)中没有被使用到的部分,最终有效的减少 APK 的大小。

重要:启用 Proguard 之后,你必须再次全面地测试你的应用。Proguard 有时候需要为你引入的每个原生库做一些额外的配置。参见app/proguard-rules.pro文件。

要启用 Proguard,修改android/app/build.gradle文件:

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
def enableProguardInReleaseBuilds = true

生成发行 AAB 包​

在命令行中运行下列命令:

cd android
./gradlew bundleRelease

Gradle 的bundleRelease参数会把所有用到的 JavaScript 代码都打包到一起,然后内置到 AAB 包(Android App Bundle)中。如果你想调整下这个行为(比如 js 代码以及静态资源打包的默认文件名或是目录结构等),可以看看android/app/build.gradle文件,然后琢磨下应该怎么修改以满足你的需求。

注意:请确保 gradle.properties 中没有包含_org.gradle.configureondemand=true_,否则会跳过 js 打包的步骤,导致最终生成的是一个无法运行的空壳。

生成的 AAB 文件位于android/app/build/outputs/bundle/release/app-release.aab,它已经可以用来上传到 Google Play 市场了。

In order for Google Play to accept AAB format the App Signing by Google Play needs to be configured for your application on the Google Play Console. If you are updating an existing app that doesn't use App Signing by Google Play, please check our migration section to learn how to perform that configuration change.

为了修改应用名称,打开"项目目录"  /android/app/src/main/res/values/strings.xml 文件,未修改的文件内容如下:

<resources>

<string name="app_name">不正常的群</string>

</resources>

将其中的不正常的群改为你想要的名称

在项目目录 /android/app/src/main/res/下有5个子目录,分别为mipmap-hdpi,mipmap-mdpi,mipmap-xhdpi,mipmap-xxhdpi,mipmap-xxxhdpi 替换其中的ic_launcher.png文件

配置应用版本号

在项目目录/android/build.gradle 文件中 修改versionCode,versionName

versionCode为应用的版本号(整数值),用于各应用市场的升级判断

versionName为应用的版本名称(字符串),在系统应用管理程序中显示的版本号文章来源地址https://www.toymoban.com/news/detail-430065.html

到了这里,关于react natvie app 安卓打包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp-安卓调试打包发布超详细!!流程

    一、点击运行,运行到手机或模拟器,没有安装插件到话会显示,安装真机运行插件。 二、安装好之后显示界面会更新。  三、 3.1、数据线连接手机 3.2、安卓手机 开启开发者模式 备注:第一次开启需要,在设置中找到自己的版本号(可以在设置里搜索版本号,找到自己手机

    2024年01月17日
    浏览(32)
  • 如何将安卓 Gradle 模块打包发布到本地 Maven 仓库

    笔者的运行环境: Android Studio Flamingo | 2022.2.1 Android SDK 33 Gradle 8.0.1 JDK 17   Android 的 Gradle 项目与一般的 Gradle 项目是不同的,因此对将 Gradle 模块打包发布到本地 Maven 仓库来说,对普通 Gradle 项目适用的方法,对 Android 项目是不适用的。   因为普通 Gradle 项目打包生成的是

    2024年02月02日
    浏览(52)
  • APP备案(Android) - 各应用平台对APP备案时间节点要求

    今年因 工业和信息化部 要求,Andorid各大厂商陆续发出通知,需要各应用公司及时进行 app备案 ,如过期未进行备案则会被陆续下架! 关联Blog APP备案(Android) - 各应用平台对APP备案时间节点要求 APP备案(Android) - 获取签名证书公钥、MD5 正好在统计 Andorid各平台 对于 app备案时间

    2024年01月20日
    浏览(50)
  • 安卓开发 | 将Vue项目打包为app

    大家好!我是初心,很高兴再次和大家见面。 今天跟大家分享的文章是 如何将Vue项目打包成apk,即安卓安装包 ,希望能帮助到大家!本篇文章收录于 初心 的 安卓开发 专栏。 🏠 个人主页:初心%个人主页 🧑 个人简介:大家好,我是初心,和大家共同努力 💕 欢迎大家:

    2024年02月05日
    浏览(44)
  • uniapp离线打包安卓APP全过程

    1、首先就是下载Android Studio,官方下载 就好了。 2、然后就是使用 HBuilderX 离线打包,生成本地打包App资源。 打包好的文件路径在unpackageresources__UNI__XXX,这里的这个__UNI__XXX就待会需要的。 3、再准备HBuilder最新的SDK下载好 原生开发者支持,点击 和彩云 , 提取码: LE9L; 如果此链接

    2023年04月08日
    浏览(47)
  • 安卓App生成签名证书,uniapp生成自有证书打包

    uniapp安卓打包生成自有证书,签名。从HBuilderX3.2.0及以上版本开始支持服务器生成证书(推荐这种方法),服务器生成一键操作,比较简单。自己一步一步操作相对还是比较麻烦的。 服务器生成的证书绑定应用appid,即每个appid会各自生成证书 服务器生成的证书会自动填写证

    2023年04月08日
    浏览(35)
  • uni-app离线打包安卓apk

    记录一下打包apk的过程: 参考:uni-app离线打包官网地址 2-1.遇见问题 1. 加载.idea和.gradle失败, 解决: File → Project Structure 重新构建: File → Sync Project with Gradle Files 安卓结构: Project → Android 登录开发者中心选择需要打包的应用→各平台信息→查看或新增安卓打包信息 这里

    2024年04月17日
    浏览(76)
  • UNI-APP安卓本地打包详细教程(保姆级)

    uni-app 官方文档地址   原生开发者支持 1、Android Studio 下载地址:Android Studio官网 OR Android Studio中文社区 2、最新版的HBuilderX 3、App离线SDK下载:最新android平台SDK下载 4、3.1.10版本起需要申请Appkey, 申请请参考 点击进入 Android Studio官网 或者 Android Studio中文社区 点击 Downl

    2024年04月23日
    浏览(68)
  • 记录--UNI-APP安卓本地打包详细教程(保姆级)

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 uni-app 官方文档地址 原生开发者支持 1、Android Studio 下载地址:Android Studio官网 OR Android Studio中文社区 2、最新版的HBuilderX 3、App离线SDK下载:最新android平台SDK下载 4、3.1.10版本起需要申请Appkey,申请请参考

    2023年04月09日
    浏览(75)
  • cocos creator 3.x打包构建原生安卓APK流程(打包release版本,修改APP图标)

    本文介绍cocos creator 3.x如何打包构建原生安卓APK,一开始是按照官网构建示例操作的,发现存在各种SDK版本问题,因为对原生Android没什么研究只能瞎琢磨,最后勉强算是打包出来了…写个文章记录下流程,免得后续又忘记…如果有不对的地方,欢迎在评论区指正,有疑问也可

    2024年02月10日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包