本文主要介绍Mac开发平台的React Native环境搭建(我只是官方教程的搬运工)。
软件安装
必选工具
Homebrew
这个我在安装cocoapods时已经安装过,所以具体会遇到什么问题也不清楚,暂时略过。
Node
安装语句,命令行输入:
brew install node
如果Homebrew的版本过低,会自动进行升级,然后安装node。
安装node后设置npm镜像以加速后面的过程(官方教程这样写)。
npm config set registry https://registry.npm.taobao.org --global
React Native的命令行工具(react-native-cli)
React Native的命令行工具用于执行创建、初始化、更新项目、运行打包服务(packager)等任务。
npm install -g react-native-cli
Xcode
这个是标配= =就不做赘述了。
可选工具
Watchman
Watchman是由Facebook提供的监视文件系统变更的工具。安装此工具可以提高开发时的性能(packager可以快速捕捉文件的变化从而实现实时刷新)。
brew install watchman
测试安装
创建项目
react-native init AwesomeProject
创建好项目后,命令行会给出工程路径,打开xcodeproj文件,即可打开项目。
修改项目
在我喜欢的编辑器(我没有喜欢的编辑器)打开index.ios.js并随便改上几行。
在iOS Emulator中按下⌘-R就可以刷新APP并看到你的最新修改!
总结
这个没有Cocoapods安装那么坑,基本按照官方教程就可以,本来记录是为了记录安装过程的坑,结果很顺利,但还是发了吧。学习新技能!!!
回家之后,发现的问题
在公司编译没问题,回家重新配置一下,发现编译iOS工程时报错,shell script invocation error,修改方式是在工程设置中,Build Phases->Bundle React Native code and images->勾选Run script only when installing
然后编译,又出了第二个错:
Unpacking /Users/air/.rncache/boost_1_63_0.tar.gz...
tar: (Empty error message)
tar: Error exit delayed from previous errors.
Command /bin/sh failed with exit code 1
我把Derived Data删掉,Clean编译之后,又出了第三个错
'boost/iterator/iterator_adaptor.hpp' file not found
产生原因:
- /Users/Vanessa/.rncache 中 boost_1_63_0.tar.gz, double-conversion-1.1.5.tar.gz, folly-2016.09.26.00.tar.gz, glog-0.3.4.tar.gz 文件下载不完整
- node_modules/react-native/third-party 文件不完整
解决方案:
- 删除 .rncache 后重新下载,或手动下载后放入 .rncache 中
- 把以上文件解压后放入 node_modules/react-native/third-party 下
Clean & Build
问题还是没解决。。。暂时放弃。。。
运行项目报错
升级到Xcode8后,运行ReactNative 的项目会报错 ignoring return value of function declared with warn_unused_result attribute
解决方法:RCTWebSocket => TAGETS =>Build Settings => Custom Compiler Flags 去掉 -Werror -Wall两个flags 再运行项目就可以了