为了账号安全,请及时绑定邮箱和手机立即绑定

17-3 react native Android打包

标签:
React Native

想要打包Android应用,必须要有一个签名。

其实这一节的内容已经和react native无关了,都是关于Android打包的知识。

首先,我们在项目的根目录下进入android/app目录中,然后执行这个生成签名的命令。

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

然后设置 gradle 变量
打开gradle.properties文件,添加签名文件,包括名字、别名、密码等等

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

最后,把签名配置加入到项目的 gradle 配置中,
打开android/app/build.gradle文件,在singingConfigs里面添加一个release。

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中将signingConfigs.debug修改成release
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}

接下来,我们设置针对不同的 CPU 架构生成 APK 以减小 APK 文件的大小

enableSeparateBuildPerCPUArchitecture=true

接下来,我们就可以进行打包,react native官方教程是直接使用gradle命令打包的

cd android && ./gradlew assembleRelease

如果是在window系统的cmd命令行下执行需要去掉./

其实也可以使用一个脚本工具进行打包react-native-upload,它可以帮助我们用一个命令打包并且上传到各个测试平台和app store。
要注意的是这个命令是用shell脚本写的,如果想要在window系统上运行,推荐大家安装git bash。

首先安装依赖

yarn add react-native-upload --dev

再执行生成配置文件

npx upload-init

然后可以执行打包命令

# 单独打包android
npx upload-build --no-ios

window系统下需要在git bash命令行下执行,如果有安装的话,在vscode里面可以选择使用bash

打包的apk名字解释:
arm64-v8a: 第8代、64位ARM处理器,很少设备,三星 Galaxy S6是其中之一。
armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年以后的生产的大部分Android设备都使用它.
x86: 平板、模拟器用得比较多。
x86_64: 64位的平板。
一般情况使用armeabiv-v7a包就可以运行在大多数的手机上了。

打包完成之后,我们的应用一般还需要给测试人员进行测试,或者给公司内部人员使用,这种情况下我们可以将应用上传到测试市场。
这里,我们使用蒲公英,蒲公英是一个应用测试市场,只需将需要测试的应用上传至蒲公英,生成二维码,用户就可以在手机上通过扫描二维码,进行安装了。
upload.json

"pgy": {
	// 上传凭证,访问链接 https://www.pgyer.com/account/api ,复制Api Key
    "pgy_api_key": "蒲公英key",
    "pgy_install_type": 2,
    "pgy_install_password": "123456",
    "ios_export_plist": "./ios-export/ad-hoc.plist"
  }

现在我们执行命令

# 默认上传所有生成的android apk文件,apk指定上传的apk的名字正则
npx upload-pgy --apk=v7a --no-ios 
#  先忽略iOS端的打包,因为我们还没有配置iOS端的

当然也可以在scripts中添加一个命令

"build": "export ENVFILE=.env.production && npx upload-pgy --apk=v7a --no-ios"

在window系统上可以在git bash上执行

"build": "set ENVFILE=.env.production && npx upload-pgy --apk=v7a --no-ios"

完成,这样以后需要发布到测试市场上,一个命令就可以了。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
104
获赞与收藏
33

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消