This is based on the react-native implementation of the cnblogs.com's mobile client for both android and ios. if you have any comments or suggestions, welcome feedback.
基于 react-native 实现不用懂原生就可以写app的梦想,兼容android和ios。如果您有任何问题或者建议,欢迎留言反馈,作者会第一时间进行回复,谢谢!
##首先就是搭建react-native的环境:
- node包
- javaJDK包
- Genymotion安卓模拟器包
- python包
- android Studio包 ****等等包 需要以上包的: 不用再为翻墙而苦恼, 不在需要百度, 不在为下的版本不对导致一堆坑而烦恼, 只需要勾勾你的小拇指, 点上一颗星,带你上直通车, 啥配置问题,各种报错,都是浮云, #车牌号:[email protected], 上车我帮你, 不用在烦恼,不用再犹豫,快上直通车。
只要全局安装react-native-cli脚手架,一般都没什么问题
遇到此图这样的问题,不要慌,其实这并不是构建失败,只是没有找到android模拟器,你只要启动你安装的模拟器就行了,推荐用genymotion模拟器http://www.genymotion.net/
- 首先,我们要配置数字签名才会被允许安装在用户手机上,你可以用keytool命令生成一个私有密钥
- 切到项目根目录后,输入以下命令
命令行:keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
有些人就会疑问这行命令行是什么意思,下面我就详细分解下:
- keytool 命令是javaJDK工具,用于生成android的数字签名,所以很明显在此之前你必须要安装javaJDK。
- -keystore 命令设置数字签名文件名,后面的配置要用到,所以不要玩骚操作,规矩命名。
- -alias 命令设置KEY_ALIAS的名称,后面的配置也要用到,还是不要玩蛇,规矩命名。
- -validity 设置数字签名过期时间,这个你随便骚,尽可能设置长点
- 其他都不需要研究,了解这几个是干啥的就行了
把数字签名文件my-release-key.keystore放到android/app目录下,接下来就开始搞事情了
- MYAPP_RELEASE_STORE_FILE=my-release-key.keystore(如果忘记该字段表示什么意思,参考上文不要玩蛇内容)
- MYAPP_RELEASE_KEY_ALIAS=my-key-alias(如果忘记该字段表示什么意思,参考上文不要玩蛇内容)
- MYAPP_RELEASE_STORE_PASSWORD=*** (数字签名的设置的密码)
- MYAPP_RELEASE_KEY_PASSWORD=*** (数字签名的设置的密码) 还有所不明,请参考下图:
添加配置如下
- signingConfigs { release { storeFile file(MYAPP_RELEASE_STORE_FILE) storePassword MYAPP_RELEASE_STORE_PASSWORD keyAlias MYAPP_RELEASE_KEY_ALIAS keyPassword MYAPP_RELEASE_KEY_PASSWORD } }
- signingConfig signingConfigs.release 不知代码放何处,请看下图:
此难有一小难:cd android表示进入android目录(如果你已经在android目录中了那就不用输入了)。./gradlew assembleRelease在macOS、Linux或是windows的PowerShell环境中表示执行当前目录下的名为gradlew的脚本文件,且其运行参数为assembleRelease,注意这个./不可省略;而在windows的传统CMD命令行下则需要去掉./。
Gradle的assembleRelease参数会把所有用到的JavaScript代码都打包到一起,然后内置到APK包中。如果你想调整下这个行为(比如js代码以及静态资源打包的默认文件名或是目录结构等),可以看看android/app/build.gradle文件,然后琢磨下应该怎么修改以满足你的需求。
生成的APK文件位于android/app/build/outputs/apk/app-release.apk,它已经可以用来发布了