RN 打android离线包生成apk文件
发布日期:2021-10-16 12:05:05 浏览次数:14 分类:技术文章

本文共 2212 字,大约阅读时间需要 7 分钟。

#####第一步:生成离线bundle包

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

参数:

-h, --help
–platform [string] ios 或 andorid
–dev [boolean] 如果为false, 警告会不显示并且打出的包的大小会变小
–entry-file
RN入口文件的路径, 绝对路径或相对路径
–bundle-output bundle文件的输出路径
–assets-dest [string] 输出的asset资源目录
–prepack 当通过时, 打包输出将使用Prepack格式化
–bridge-config [string] 使用Prepack的一个json格式的文件__fbBatchedBridgeConfig 例如: ./bridgeconfig.json
–sourcemap-output [string] 生成Source Map,但0.14之后不再自动生成source map,需要手动指定这个参数
–verbose 显示打包过程
–reset-cache 移除缓存文件
–config [string] 命令行的配置文件路径

#####第二步:生成签名文件

1、生成密钥文件:这条命令会要求你输入密钥库(keystore)和对应密钥的密码,然后设置一些发行相关的信息。最后它会在android/app目录下生成一个叫做my-release-key.keystore的密钥库文件。密钥库里应该已经生成了一个单独的密钥,有效期为10000天。–alias参数后面的别名是你将来为应用签名时所需要用到的,所以记得记录这个别名。

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

2、生成签名文件

点击android stuido 菜单栏中的 build, 找到“Generate Signed APK”
这里写图片描述
3、设置gradle变量:编辑~/.gradle/gradle.properties

MYAPP_RELEASE_STORE_FILE=my-release-key.keystoreMYAPP_RELEASE_KEY_ALIAS=my-key-aliasMYAPP_RELEASE_STORE_PASSWORD=123MYAPP_RELEASE_KEY_PASSWORD=123

#####第三步:添加签名到项目的gradle配置文件

...android {    ...    defaultConfig { ... }    signingConfigs {        release {            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

// rn根项目 cd android 输入命令行生成apk文件./gradlew assembleRelease     ---生产包./gradlew assembleDebug        ---测试包//生成的APK文件位于android/app/build/outputs/apk/app-release.apk
tips1 mac ./gradlew Permission denied 需要授权
chmod a+x gradlew
tips1 如何清理缓存
watchman watch-del-all                  // Clear watchman watches.rm -rf node_modules && npm install      // Delete the `node_modules` folder.rm -rf /tmp/metro-bundler-cache-*` or `npm start -- --reset-cache // Reset Metro Bundler cache.rm -rf /tmp/haste-map-react-native-packager-*  // Remove haste cache.

转载地址:https://blog.csdn.net/snow51/article/details/82288725 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:js 关于时间日期常用格式化的整理
下一篇:AngularJS 无刷新下载文件

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月12日 15时07分19秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章