搭建RN环境:
利用Homebrew安装(简称brew,MacOSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件)
1.打开终端,执行以下命令安装Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
我们推荐使用Homebrew来安装 Node 和 Watchman。在命令行中执行下列命令安装:
brew install node
brew install watchman
安装成功后
node -v:查看node版本
npm -v:查看npm版本
如果你已经安装了 Node,请检查其版本是否在 v8.3 以上。安装完 Node 后建议设置 npm 镜像以加速后面的过程(或使用科学上网工具)。
注意:不要使用 cnpm!cnpm 安装的模块路径比较奇怪,packager 不能正常识别!
npm config set registry https://registry.npm.taobao.org --global
npm config set disturl https://npm.taobao.org/dist --global
Watchman则是由 Facebook 提供的监视文件系统变更的工具。安装此工具可以提高开发时的性能(packager 可以快速捕捉文件的变化从而实现实时刷新)。### Yarn、React Native 的命令行工具(react-native-cli)
Yarn是 Facebook 提供的替代 npm 的工具,可以加速 node 模块的下载。React Native 的命令行工具用于执行创建、初始化、更新项目、运行打包服务(packager)等任务。
npm install -g yarn react-native-cli
这里可能会遇到坑:
react-native :command not found 在别的路径不能使用react-native命令解决
1. 在终端输入命令: sudo npm install -g react-native-cli 出现的一个类似:/usr/......(/Users/username/.nvm/versions/node/v6.11.1/bin/react-native)的路径记录下路,这里叫做路径A
2.使用vim命令 输入:vim ~/.bash_profile
在里面加入:export RN=路径A
export PATH=$RN:$PATH
然后按“esc”键 结束编辑 并输入“:wq”存储
例如:
export RN=/Users/`username`/.nvm/versions/node/v6.11.1/bin
export PATH=$RN:$PATH
3.输入:source~/.bash_profile 使其生效
4.输入:echo $path 查看是不是有刚刚添加的路径A
如果这个设置配置出现问题则参考如下:
终端用的是iTerm2,安装了 zsh 和 oh-my-zsh,所以打开命令行的时候不在执行~/.bash_profile
解决方案
那么修改 zsh 的配置文件,每次都执行~/.bash_profile
步骤
1.进入zsh配置文件
vim ~/.zshrc
2.在末尾添加
source ~/.bash_profile
3.保存退出
4.配置生效
source ~/.zshrc
ok了。
插播:iTerm2 + Oh My Zsh 打造舒适终端体验
舒适好用的终端,带提示
https://www.jianshu.com/p/9c3439cc3bdb
2411388-5dfc4e3044f22baf.png
安装完 yarn 后同理也要设置镜像源:
yarn config set registry https://registry.npm.taobao.org --global
yarn config set disturl https://npm.taobao.org/dist --global
安装完 yarn 之后就可以用 yarn 代替 npm 了,例如用yarn
代替npm install
命令,用yarn add 某第三方库名
代替npm install 某第三方库名
。### Xcode
React Native 目前需要Xcode 9.4 或更高版本。你可以通过 App Store 或是到Apple 开发者官网上下载。这一步骤会同时安装 Xcode IDE、Xcode 的命令行工具和 iOS 模拟器。
Xcode 的命令行工具
启动 Xcode,并在Xcode | Preferences | Locations
菜单中检查一下是否装有某个版本的Command Line Tools
。Xcode 的命令行工具中包含一些必须的工具,比如git
等。

创建新项目
使用 React Native 命令行工具来创建一个名为"AwesomeProject"的新项目:
!!!注意!!!:init 命令默认会创建最新的版本,而目前最新的 0.45 及以上版本需要下载 boost 等几个第三方库编译。这些库在国内即便翻墙也很难下载成功,导致很多人无法运行iOS项目
!!!中文网在论坛中提供了这些库的国内下载链接。如果你嫌麻烦,又没有对新版本的需求,那么可以暂时创建0.44.3
的版本。
react-native init AwesomeProject
提示:你可以使用
--version
参数(注意是两
个杠)创建指定版本的项目。例如react-native init MyApp --version 0.44.3
。注意版本号必须精确到两个小数点。
如果你是想把 React Native 集成到现有的原生项目中,则步骤完全不同,请参考集成到现有原生应用。
编译并运行 React Native 应用
在你的项目目录中运行react-native run-ios
:
cd AwesomeProject
react-native run-ios
提示:如果 run-ios 无法正常运行,请使用 Xcode 运行来查看具体错误(run-ios 的报错没有任何具体信息)。
很快就应该能看到 iOS 模拟器自动启动并运行你的项目。

react-native run-ios
只是运行应用的方式之一。你也可以在 Xcode 或是Nuclide中直接运行应用。
如果你无法正常运行,先回头
仔细对照文档检查
,然后可以看看论坛的求助专区。
在真机上运行
上面的命令会自动在 iOS 模拟器上运行应用,如果你想在真机上运行,则请阅读在设备上运行这篇文档。
修改项目
现在你已经成功运行了项目,我们可以开始尝试动手改一改了:
- 使用你喜欢的编辑器打开
App.js
并随便改上几行。 - 在 iOS 模拟器中按下
⌘-R
就可以刷新 APP 并看到你的最新修改!(如果没有反应,请检查模拟器的 Hardware 菜单中,connect hardware keyboard 选项是否选中开启)
完成了!
恭喜!你已经成功运行并修改了你的第一个 React Native 应用。

接下来?
-
试着在开发者菜单中打开Live Reload,现在你只要一保存代码应用就会自动完整刷新。
-
如果你想把 React Native 集成到现有的原生项目中,则请参考集成到现有原生应用。
如果你想从头开始学习 React Native 开发,可以从尝试编写 Hello World开始。
提示:
把node_modules/目录记录到.gitignore文件中(即不上传到版本控制系统,只保留在本地)。
vim ~/.gitignore_global
集成到现有的iOS项目中时:
https://reactnative.cn/docs/integration-with-existing-apps/
坑: pod install 会出错
1.首先检查路径:./是当前目录,../是上一级目录

ls
vim Folly.podspec
查看spec.platforms = { :ios => "9.0", :tvos => "9.2" } (此处可不能改改的是下边图片所示两处)
修改以下图片这两处的版本号即可ok。



iOS 原生混合RN开发最佳实践
https://www.jianshu.com/p/f9812f601a2c
RN项目接入CodePush实现热更新技术
https://github.com/guangqiang-liu/CodePushDemo
网友评论