RN的脚手架搭建
create-react-native-app
1:安装脚手架npm install -g create-react-native-app
创建项目create-react-native-app my-app
react-native-cli
1:安装RN:直接输入npm install -g react-native-cli。会因为权限不够而报错:npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules。所以我们直接输入下面两句话
sudo chown -R $(whoami) /usr/local/*
npm install -g yarn react-native-cli
测试安装成功否,react-native -v。
2:创建RN项目
react-native init RNTest
.初始化项目失败
npx react-native init project
出现如下报错:
cli.init is not a function
安装最新版本react-native
yarn add react-native –exact
初始化项目
输入命令react-native init Hello
RN的安卓打包
1、jdk的bin下去生成秘钥,使用此命令
keytool -genkeypair -v -storetype PKCS12 -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
2、设置 gradle 变量
把my-release-key.keystore文件放到你工程中的android/app文件夹下。
编辑~/.gradle/gradle.properties(全局配置,对所有项目有效)或是项目目录/android/gradle.properties(项目配置,只对所在项目有效)。如果没有gradle.properties文件你就自己创建一个,添加如下的代码(注意把其中的****替换为相应密码)
注意:~符号表示用户目录,比如 windows 上可能是C:\Users\用户名,而 mac 上可能是/Users/用户名。
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=** MYAPP_RELEASE_KEY_PASSWORD=**
上面的这些会作为 gradle 的变量,在后面的步骤中可以用来给应用签名。
关于密钥库的注意事项:
如果你不想以明文方式保存密码,同时你使用的是 macOS 系统,那么你也可以把密码保存到钥匙串(Keychain)中。
这样一来你就可以省略掉上面配置中的后两行(即 MYAPP_RELEASE_STORE_PASSWORD 和 MYAPP_RELEASE_KEY_PASSWORD)。
3、生成发行 APK 包
只需在终端中运行以下命令:
$ cd android
$ ./gradlew assembleRelease
译注:cd android表示进入 android 目录(如果你已经在 android 目录中了那就不用输入了)。./gradlew assembleRelease在 macOS、Linux 或是 windows 的 PowerShell 环境中表示执行当前目录下的名为 gradlew 的脚本文件,且其运行参数为 assembleRelease,注意这个./不可省略;而在 windows 的传统 CMD 命令行下则需要去掉./。
Gradle 的assembleRelease参数会把所有用到的 JavaScript 代码都打包到一起,然后内置到 APK 包中。如果你想调整下这个行为(比如 js 代码以及静态资源打包的默认文件名或是目录结构等),可以看看android/app/build.gradle文件,然后琢磨下应该怎么修改以满足你的需求。
注意:请确保 gradle.properties 中没有包含org.gradle.configureondemand=true,否则会跳过 js 打包的步骤,导致最终生成的是一个无法运行的空壳。
生成的 APK 文件位于android/app/build/outputs/apk/release/app-release.apk,它已经可以用来发布了。
4、测试应用的发行版本
在把发行版本提交到 Play Store 之前,你应该做一次最终测试。输入以下命令可以在设备上安装发行版本:
$ npx react-native run-android –variant=release
注意–variant=release参数只能在你完成了上面的签名配置之后才可以使用。你现在可以关掉运行中的 packager 了,因为你所有的代码和框架依赖已经都被打包到 apk 包中,可以离线运行了。
注意:在 debug 和 release 版本间来回切换安装时可能会报错签名不匹配,此时需要先卸载前一个版本再尝试安装。