前言 最近自己的react native app已经完成了,博主想将其打包成android apk运行在安卓端的手机上。然后遇到了一系列的问题。...但是要打包成apk时,需要将这些js文件打包成bundle包,当做android的运行资源。放置在assets目录下(离线包的方式)。 ?...APK打包 1.生成签名文件 使用keyTool工具生成签名文件,在jdk安装目录的bin\下运行 keytool -genkey -v -keystore my-release-key.keystore...signingConfig signingConfigs.release } } 3.打包生成签名的apk 进入android目录,执行: gradlew.bat assembleRelease...或者: gradle assembleRelease 注:生成的APK文件在/android/app/build/outputs/apk下,去手机端安装你的app吧
React Native发布APP之签名打包APK ---- 用React Native开发好APP之后,如何将APP发布以供用户使用呢?...既然Android Studio中可以进行APP的签名打包,那我们可不可以用它进行打包呢,实践表明用Android Studio打包React Native APP不是一种推荐的方案。...在发这篇博文前我曾试着用Android Studio打包React Native APP,编译,打包,安装各项指数正常,当我欣喜在手机上打开APP看一下效果时,APP在启动时闪退了。...对比用Android Studio签名打包生成的APK与用官方推荐方式签名打包生成的APK,发现了它们在大小上和内容上都有所差别,如图: 大小上的差别: ?...签名APK需要一个证书用于为APP签名,生成签名证书可以Android Studio以可视化的方式生成,也可以使用终端采用命令行的方式生成,需要的可以自行Google这里不再敖述。
二、打包发布android应用 1.生成签名秘钥 在Windows上keytool命令放在JDK的bin目录中(比如C:\Program Files\Java\jdkx.x.x_x\bin),你可能需要在命令行中先进入那个目录才能执行此命令...-validity 10000 需要输入两次密码,它会生成一个叫做my-release-key.keystore的密钥库文件,有效期为10000天,执行界面如图: ?...2.设置gradle变量 ①.把my-release-key.keystore文件放到你工程中的~/android/app文件夹下。...4.发行应用 执行命令: cd android && gradlew assembleRelease 生成的APK文件位于android/app/build/outputs/apk/app-release.apk...Proguard是一个Java字节码混淆压缩工具,它可以移除掉React Native Java(和它的依赖库中)中没有被使用到的部分,最终有效的减少APK的大小。
接着滚动到构建Tab,点击添加构建步骤,然后选择Invoke Gradle script,如图: 然后配置构建时的Gradle版本,和需要执行的任务,如图: 这个Tasks是先clean工程,然后打包所有渠道的...成功之后,返回项目地址就可以点击工作空间,在app的build目录下面查看apk生成情况。 以上就是Jenkins打包最简单的配置,我知道大家想要的不止这些,更精彩的还在后面。...这样每次打包后都会在生成apk的文件夹内生成一个对应的二维码。...接着滚动到构建Tab,点击添加构建步骤,然后选择Invoke Gradle script,如图: 然后配置构建时的Gradle版本,和需要执行的任务,如图: 这个Tasks是先clean工程,然后打包所有渠道的...成功之后,返回项目地址就可以点击工作空间,在app的build目录下面查看apk生成情况。 以上就是Jenkins打包最简单的配置,我知道大家想要的不止这些,更精彩的还在后面。
/gradlew assembleRelease,你就可以在android/app/build/outputs/apk/app-release.apk中找到你的应用包。...pushy uploadApk android/app/build/outputs/apk/app-release.apk 发布热更新版本 你可以尝试修改一行代码(譬如将版本一修改为版本二),然后生成新的热更新版本...混合app热更新 jsbundle 拆分 对 React Native 的代码打包编译后会生成一个 bundle 文件,这里要说明一下, jsbundle 的拆分是基于生成的 bundle 文件可以看成两部分构成...首先需要做的就是生成 common.bundle ,新建一个 blank.android.js 文件,在文件中仅引入 react 及 react native。...在拷贝过程中根据历史记录的版本号,进行判断是否需要执行拷贝,拷贝完成后将 common.bundle 及 .diff 文件进行 patch 合并,合并后的文件即为一个完整的 bundle 文件,文件名规定为
按照提示输入信息 设置 gradle 变量 把 my-release-key.keystore密钥库文件放到工程中的android/app文件夹下 编辑 项目目录/android/gradle.properties...测试应用的发行版本 注意:在 debug 和 release 版本间来回切换安装时可能会报错签名不匹配,此时需要先卸载前一个版本再尝试安装。...react-native run-android --variant=release 生成发行 APK 包 react-native bundle --platform android --dev false...注意:请确保 gradle.properties 中没有包含_org.gradle.configureondemand=true_,否则会跳过 js 打包的步骤,导致最终生成的 apk 是一个无法运行的空壳...生成的 APK 文件位于android/app/build/outputs/apk/app-release.apk,它已经可以用来发布了。
用React Native开发好APP之后,如何将APP发布到市场以供用户使用呢?不管是Android还是ios等原生app走的都是:签名打包—>发布到各store这两大步骤。...此时,你会发现,你的确可以生成一个apk,并且可以安装,但是却无法运行,发生闪退。这是为什么呢?...这是因为React-Native在android平台下默认没有生成资源文件相关的包(及js的相关资源文件)。...关于build.grandle的配置这里不再详述,请大家按照原生app打包过程。 ? Android 打包常见的问题 在Android打正式包的过程中,往往会碰到一些莫名其妙的问题。...在React Native项目的根目录下执行命令: react-native bundle --entry-file index.ios.js --platform ios --dev false --
为什么用Gradle Ant能打包(构建)apk。----任务执行 Maven管理jar包。...任务执行:每次测试都需要生成apk包进行测试,生成apk包是一个可以重复的流程,也可以称为任务,这个过程就叫做任务执行。Ant相当于把这相同的任务给自动化实现了。...Build时失败了两次,对比下demo和依赖库中是没有lint检查。...添加后build成功了 app/build/outputs/apk 目录下会看到类似于app-debug-unaligned.apk, app-release-unsigned.apk等,看名字应该能理解意思...生成签名后的apk App/build.gradle 配置之后每次再build的时就会生成签过名的包了 Gradle其它操作 Project 和 Task Gradle中有两个基本的概 念:project
,有很多不如意的地方,水平有限:app/components/navbar.js: 'use strict'; import React, { Component } from 'react'...RSA -keysize 2048 -validity 10000,keytool命令就不做详细介绍了,如果windows系统找不到,可以使用git的bash 证书生成之后复制到android/app...RELEASE_KEY_ALIAS=key-alias RELEASE_STORE_PASSWORD=*****// 生成证书的密码 RELEASE_KEY_PASSWORD=***** // 另一个密码.../gradlew assembleRelease成功即可在android/app/build/outputs/apk/app-release.apk找到apk,运行..../gradlew installRelease可以在设备上测试安装,注意如果是调试机请先卸载debug的apk不然会安装失败。
so资源动态化方案 so资源打包问题 在打包so资源的过程中,我们遇到了如下问题。 如何移除apk中的so文件,并将他们收集起来? 如何将多个so文件压缩打包,并生成对应的信息?...如何保证第三方sdk缺少so文件时,不崩溃? so资源打包解决方案 移除并收集apk中的so文件 看到移除 so文件可能有些同学会问,这不是只要在as中删除libs目录就搞定了么?...我们注意到as在进行build时,会有大量的系统提供的task在运行,那么这些系统task是否就完成了编译并收集各个地方的so文件,并把他们打包进apk的任务呢?...上一步中,我们已经将so文件从系统apk构建流程中删除,并且拷贝到了指定目录下。那么现在我们应该做什么呢? 将so文件打包成.zip压缩包。 生成该资源对应的实体类DynamicPkgInfo。...我们替换系统方法的目的。一个是为了保证so库不存在时,程序不崩溃,另外一个就是so库下载校验完成后,能自动完成之前失败的加载,为此,我们设计了如下流程。
前面写了关于React的一系列入门章:http://lib.csdn.net/xiangzhihong8/5375/chart/React%20Native 欢迎大家吐槽,今天要说的是在Android...此时,你会发现,你可以继续生成一个apk,并且可以安装,但是却无法运行,发生闪退。这是因为React-Native的android平台下默认没有生成资源文件也就是我们所有的js图片文件等等。.../main/assets 2,生成Bundle文件 生成Bundle文件的命令: React-native bundle --platform android --dev false --entry-file.../app/src/main/res/ 我们已经完全生成了bundle文件了,可以查看自己工程assets下的文件夹,如果生成,则再次签名运行就没有问题。.../gradlew assembleRelease 完成之后便会在android/app/build/outputs/apk/app-release.apk生成可安装包。
此时,你会发现,你可以继续生成一个apk,并且可以安装,但是却无法运行,发生闪退。这是因为React-Native的android平台下默认没有生成资源文件也就是我们所有的js图片文件等等。.../main/assets 2,生成Bundle文件 生成Bundle文件的命令: React-native bundle --platform android --dev false --entry-file.../app/src/main/res/ 我们已经完全生成了bundle文件了,可以查看自己工程assets下的文件夹,如果生成,则再次签名运行就没有问题。...signingConfig signingConfigs.release } } } ... 生成签名APK包 ..../gradlew assembleRelease 完成之后便会在android/app/build/outputs/apk/app-release.apk生成可安装包。
在 before_deploy 的时候,将会安装 Android 的打包环境,并执行打包操作、 在 deploy 的时候,则会执行上传 apk 包到 GitHub Release 页面。...Growth NG Release 页面 详细的配置可以见:Growth NG travis CI 配置 在这个过程中,有几个坑值得说一下: 使用 openJDK 会出错,只能使用 oraclejdk8...,当我们要测试原生的组件,需要在 jest.setup.js 中 mock 这些方法,如下是用来 mock 包 react-native-device-info 中的 getVersion 方法: jest.mock.../android/app/build/outputs/apk/app-release.apk'), 'platformName': 'Android',...它提供了一系列的脚本,来实现对一些工作的自动化,如: 上传 APK 包到 Google Play, 上传 iOS 应用到 iTunes Connect 上传截图、版本更新说明 等等的内容 只需要执行一下
link自动注册相关的组件到原生配置中 打开项目中的android->app->src->main->AndroidManifest.xml文件,在第8行添加如下配置: Release版本的apk安装包 请参考以下两篇文章: ReactNative之Android打包APK方法(趟坑过程) React Native发布APP之签名打包APK 如何发布一个apk...-keyalg RSA -keysize 2048 -validity 10000 其中: my-release-key.keystore 表示你一会儿要生成的那个 签名文件的 名称【很重要,包找个小本本记下来...】 当生成了签名之后,这个签名,默认保存到了自己的用户目录下C:\Users\liulongbin\my-release-key2.keystore 将你的签名证书copy到 android/app目录下.../gradlew assembleRelease开始发布APK的Release版; 当发行完毕后,进入自己项目的android\app\build\outputs\apk目录中,找到app-release.apk
Travis生命周期: before_install install:安装依赖 before_script script:运行脚本 aftersuccess or afterfailure:script阶段执行成功或失败时执行...基于秘钥通过 openssl对文件进行加密,并在根目录生成 xch_android.jks.enc文件 3. 在 .travis.yml中自动生成Travis CI环境下解密文件的配置。...Travis CI自动发布apk到GitHub Release Step1. 执行travis命令自动生成deploy配置 travis setup releases ?...当Travis CI任务执行成功后,在GitHub就能看到发布的apk。 ?...}/app/build/outputs/apk/release/app-release.apk" $PGYER_API_KEY Step5.
在该项目包名时遇到的一个android打包问题,如下 改包名步骤 修改android/app/build.gradle里的applicationId,为新包名,如:com.xxx.yyy.myProject.../java/com下根据新包名中多出的两级xxx.yyy新创建两级新目录,如:android/app/src/main/java/com/xxx/yyy 将之前android/app/src/main/.../gradlew stop(虽然这步我执行失败了,但是好像起到了new一个gradle daemon的作用) 然后执行 ..../gradlew assembleRelease (会生成一个release但是未签名的版本) build=>Generate signed APK,选择证书生成签名的release版本 可能遇到的其他问题...on demand前的对勾去掉(这个选项是加速gradle build的,但是可能会造成build出错) Generate signed APK时,如果目标文件夹下已经有了app-release.apk
如果加固前的文件名为app-release.apk,在官网下载的加固包为app-release_legu.apk,接着使用PC工具重签名后,最终变为app-release_legu_signed_zipalgin.apk...如果生成的应用宝渠道文件为app-xyz.huaq.cmake-yyb-release-v1.0-1-20180605-201855.apk, 在官网上加固后文件名多了"_legu',使用6中的命令行apksigner...put -c yyb app-xyz.huaq.cmake-yyb-release-v1.0-1-20180605-201855_legu_zipalign_signed.apk 最终生成文件app-xyz.huaq.cmake-yyb-release-v1.0...在cmd中执行adb install *.apk即可看到具体的安装错误信息。 6.如何确定哪个apk是已经加固的?...7.如何查看apk的签名信息? 安装好java,并配置环境变量。 在cmd中执行:keytool -printcet -jarfile *.apk即可看到apk的签名MD5字段信息。
调试是出错误提示,可以检查任务管理器,关闭所有执行中的node.exe程序,node端口占用可能导致调试连接失败,也可以关闭react native包生成工具,node程序大概是用作生成包的 adb...,启动界面如下 adb reverse tcp:8097 tcp:8097 浏览器中点击reload按钮连接 apk程序,设置toggle inspector后,选中控件,可以高亮react-devtools...中的模块 修改源码 node_modules/react-native目录下面 ReactAndroid/src/main/java/com/facebook/react/views/modal/可以修改编译的目标控件...native断开连接后重连,成功加载后才能有界面上的错误提示,否则只能在vscode中看到错误,app中没有call stack显示) 另一个调试工具占用,vscode调试退出 先启动vscode调试...--stop关闭gradle,重启电脑都会有记录,只能执行命令 打包发布 android目录下,gradlew assembleRelease
使用它可以很轻松的执行以下操作: 自定义,配置和扩展编译流程。 使用相同的项目和模块为你的应用创建多个具有不同功能的 APK。 在不同源集之间重复使用代码和资源。...在 Android 中有很多种工程类型,常见的有 App 应用工程,用于生成可运行的 APK 。 Library 库工程,用于生成 AAR 包给其他 APK 应用工程公用。...一般我们常用的任务是 build、assemble、clean、check、lint等,通过这些任务可以对应用进行打包生成 APK,对现有的 Android 工程进行 lint 检查等。...# 配置 SDK 在本机的目录,创建项目时,Android studio 会自动配置,如果需要自己单独设置,可以更改 sdk.dir=/Users/skymxc/Library/Android/sdk...# ndk 在本机的目录 需要时配置 ##ndk.dir=/Users/skymxc/Library/Android/sdk/ndk-bundle gradle.properties # 使用 AndroidX
它是围绕React Native和本机平台构建的一组工具和服务,可帮助您从同一JavaScript / TypeScript代码库在iOS,Android和Web应用程序上开发,构建,部署和快速迭代。...当你想打包你的App 成APK 文件: 你可以是使用EXPO 提供的 指令: expo build:android 打包的时候,会需要EXPO的账户, 因为它会发布到你EXPO账户下,生成APK 文件...是不是很轻松哈,使用官方提供的,你的自己配置,查找模拟器。 React Native 支持热更新 这样很方便我们开发APP 中调试, 数据改变, 视图同时改变。...打包成功,它会提供一个链接,去这个链接你就可以下载打包后的APK 文件 下载APK 显示效果 到此该结束了 本章介绍了,如何配置React Native 环境, 以及EXPO 神器如何使用,...中间我踩了很多坑,写文章记录下来,别的朋友就可以减少踩坑的时间,专注业务开发方面,从而开发出优质的APP 应用。 祝大家,5.1 快乐
领取专属 10元无门槛券
手把手带您无忧上云