集成到ReactNative的Android程序打包问题

最近需要打包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

看详细的...

但那儿没写遇到问题处理的方法...如果还没能解决你的问题留个言说一声.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值