开发环境搭建
https://reactnative.cn/docs/0.51/getting-started.html#content
创建项目
- react-native init projectName --projectName为项目名称
*首次创建需要耐心等待一段时间 - cd projectName --进入项目根目录
- react-native run-android/run-ios --在设备/设备模拟器上运行
- adb devices --查看已经连接的设备
$ adb devices //$为项目目录 List of devices attached emulator-5554 offline //# Google模拟器 14ed2fcc device //# 真实设备
- adb devices --查看已经连接的设备
打包apk
- 生成一个签名密钥
$ keytool -genkey -v -keystore my-key-name.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
//my-key-name.keystore为生成密钥的名称
//my-key-alias为密钥对应应用的别名 在签名时会用到
*keytool命令需要安装了JDK且在环境变量中配置或进入JDK的bin目录下方可有效
- 设置gradle变量
1.把my-key.keystore文件放到项目中的android/app文件夹下。
2.编辑~/.gradle/gradle.properties(没有这个文件你就创建一个),添加如下的代码(注意把其中的****替换为相应密码)
*如果你不想以明文方式保存密码,同时你使用的是macOS系统,那么你也可以把密码保存到钥匙串(Keychain)中。这样一来你就可以省略掉上面配置中的后两行(即MYAPP_RELEASE_STORE_PASSWORD和MYAPP_RELEASE_KEY_PASSWORD)。//~表示用户目录,比如windows上可能是C:\Users\用户名,而mac上可能是/Users/用户名。 MYAPP_RELEASE_STORE_FILE=my-key.keystore MYAPP_RELEASE_KEY_ALIAS=my-key-alias MYAPP_RELEASE_STORE_PASSWORD=***** MYAPP_RELEASE_KEY_PASSWORD=*****
- 添加签名到项目的gradle配置文件
编辑项目目录下的android/app/build.gradle文件中的android中,添加如下的签名配置: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包
- 在终端进入到项目目录下执行命令
cd android && ./gradlew assembleRelease
//在android目录下则不需要cd
//./gradlew assembleRelease在macOS、Linux或是windows的PowerShell环境中表示执行当前目录下的名为gradlew的脚本文件,且其运行参数为assembleRelease,注意这个./不可省略;而在windows的传统CMD命令行下则需要去掉./。
//生成的APK文件位于android/app/build/outputs/apk/app-release.apk,可以用来发布。
- 关于打包时的错误
1.SDK位置没有找到
解决方法:在项目根目录下的android文件下新建一个local.properties的文件,在文件中写入java.lang.RuntimeException: SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
2.SDK与配置中不对应或配置的SDK版本未安装sdk.dir =D:/Android/ //sdk的位置
A problem occurred configuring project ':app'.>failed to find Build Tools revision 23.0.1
A problem occurred configuring root project 'Android'. > You have not accepted the license agreements of the following SDK components: [android SDK Platform 23].
解决办法:修改项目目录下/android/app/build.gradle配置中的compileSdkVersion和buildToolsVersion版本为已安装的
或者在Android Studio安装配置中的Build Tools版本