最近需要打包ReactNative的Android程序,但是ReactNative的中文网翻译的东西少了一块儿..导致怎么打都不好使...
经过一天半的各种搜索..终于打出来了...为了避免忘了和方便别人发个博客记录一下...
第一步:
在RN的根目录下用命令行运行以下命令:
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest res
这里需要注意的有以下几点:
1,android/app/src/main/assets/ 这个路径指的是RN目录下Android程序的main文件夹...最好先在main下简历一个assets资源文件夹...命令运行成功后在assets文件夹下会出现index.android.bundle和index.android.bundle.meta这俩文件
2,最后一个res是指定RN内用到的资源的放置路径...这里理论上是可以直接指定到原生的资源目录下..但我指定过去后并没有生成RN的资源文件..所以直接在根目录下生成...
运行成功后在根目录下会创建res文件夹并在里面出现drawable-hdpi等等那几个资源文件夹,将这些文件夹直接复制到原生的资源目录下
第二步:
1,生成一下签名文件,命令行运行:
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
my-release-key.keystore和my-key-alia是自己编辑的..分别是签名文件名和文件的别名
(理论上也可以用自己用AndroidStudio生成的签名文件)
2,将签名文件包复制到android/app下...android是我的原生程序名字
3,打开原生程序目录下(也就是android目录下)的gradle.properties找个位置添加
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****
注意:这个不要在gradle目录下的那个里面修改.因为没有毛用...还有记得将相应的签名文件名和别名,密码改成自己的..
第三步:
在android/app/build.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 } } }
第四步:
在android目录下用命令行执行 gradlew assembleRelease 命令
注意:这条命令有可能会运行不下去...出现什么gradle怎么这么了..what....try...version52什么的错误...具体错误没存上,现在复现不了了..大概就是这类的...
我的处理方法如下,然后今天是2017年5月3日,以下说的最新版是根据今天说的:
1,升级gradle...打开android/gradle/wrapper下的gradle-wrapper.properties修改
distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip这条数据的版本号...现在最高应该是4.0了...然后重启一下AS..就能开始下载你指定的版本了...但你网速不行没下下来就怪你倒霉了...去百度一下具体的升级方法吧..
2,升级AS的版本...打开AS的Setting-Appearance&Behavior-System Setting-Updates然后Check Now一下就可以下载 了...最新版是2.3.1..
3,升级JDK版本...
第五步:
理论上应该没问题了...除了第一步别的步骤可以去
http://reactnative.cn/docs/0.44/signed-apk-android.html#content
看详细的...
但那儿没写遇到问题处理的方法...如果还没能解决你的问题留个言说一声.