WIN下React Native打包apk

安卓项目发布到真机上测试需要打包成apk。就介绍下打包流程:

1. 产生签名的key

该过程会用到keytool,开发过安卓的都应该接触过该东西。详细请见密钥和证书管理工具。
在工程的主目录中执行:

keytool -genkey -v -keystore my-release-key.keystore -aliasmy-key-alias-keyalg RSA -keysize2048-validity10000

[注:在产生的时候需要提供密钥和存储密码,后续会用到]

把生成的 my-release-key.keystore 拷贝到工程目录 /android/app/目录下
WIN下React Native打包apk_第1张图片
图片.png

2.新建assets文件夹

找到工程目录下/android/app/src/main,并在该目录下新建assets文件夹
图片.png

3. 在工程目录下执行以下命令

目的是将 index.android.bundle下载并保存到assets资源文件夹中

curl -k "http://localhost:8081/index.android.bundle" > android/app/src/main/assets/index.android.bundle

提示curl命令不是内部...? 答案在: http://www.cnblogs.com/xing901022/p/4652624.html
执行完后在步骤2新建的目录下android/app/src/main/assets/多了一个index.android.bundle文件

WIN下React Native打包apk_第2张图片
图片.png

4. 修改android/gradle.properties文件,增加如下

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

[注意替换xx为你自己设置的密钥和存储密码]

5.修改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
    }
  }
}

6.然后进入android目录执行如下:

gradlew assembleRelease

结束后会在android/app/build/outputs/apk/app-release.apk。
每次执行前,注意将该apk删除。

遇到的问题

第一次执行打包操作时出现下面问题,什么拒绝访问

WIN下React Native打包apk_第3张图片
图片.png

我也不清楚这个问题的来由,我进入\android\app\build\intermediates\assets\目录下没有看到release目录,所以我新建一个release目录,并把相关资源拷贝进去,再次打包成功

你可能感兴趣的:(WIN下React Native打包apk)