前言
现在官网主推的是Expo框架
进行开发,但是expo集成原生插件比较麻烦。
公司用的app大多都会集成一些各种各样的第三方原生sdk(比如广告、支付类)或其它一些原生功能,这种情况下 推荐用无框架环境
进行开发。
如果Expo官方提供的原生插件功能满足项目需求,还是推荐用Expo框架进行开发的。
吐槽
现在React Native
的环境是真的繁琐且踩坑
,网络环境差一些的估计要搭建的心态爆炸。一个无框架初始化app
安装完各种依赖能跑起来的项目大小大概是570M
,前端项目总是被各种npm包空间占用的真难受,空间根本顶不住,而隔壁Flutter
跟着官网教程走,用vscode搭建一个初始化项目只需要几分钟,且项目大小是80M
左右。
环境搭建
下面以0.74
版本为例,还是跟着官方文档来。
Macos环境
cocoapods 可以用homebrew或ruby安装(都是macos自带),由于macos自带的ruby版本一般都比较低(cocoapods 1.15.2依赖于ruby3.3.4版本),这里推荐用homebrew来安装。
大概需要cocoapods、watchman、node
环境,再就是 下载xcode 选择合适自己系统的版本。
前置步骤:
# 安装cocoapods
brew install cocoapods
# watchman
brew install watchman
无框架项目构建:
# 如果您之前安装了全局的`react-native-cli`软件包,请将其删除,因为它可能会导致意外问题:
npm uninstall -g react-native-cli @react-native-community/cli
开始踩坑:
1. 官方初始化项目命令
我的本地环境为node20,现在最新的cli版本是v14.0.0
官方文档命令:会报错
提示Invalid Version: latest.
npx @react-native-community/cli@latest init AwesomeProject
测试后有效命令如下,需要注意如果同时安装了npm和yarn,cli会使用yarn安装依赖,我本地的yarn版本是v1,然后cli在安装依赖的过程中会设置yarn版本为v3,后面就会提示yarn-error。解决办法是命令后面加--pm npm
的参数,然后就会使用npm安装了。
安装过程是漫长的,还需要翻墙!
npx react-native@latest init ProjectName
# 使用npm安装依赖的命令
npx react-native@latest init ProjectName --pm npm
2. 安装bundle和pod依赖
上面初始化模板下载完以后,如果选择了不安装cocoapods,那么项目现在还是运行不了的,需要下面命令,继续安装依赖。
安装过程是漫长的,还需要翻墙!!!
# 1. 如果您在使用 iOS 时遇到问题,请尝试运行以下命令来重新安装依赖项:
cd ios
# 2. 安装bundle
bundle install
# 3. 安装pod依赖
bundle exec pod install
3. 打开xcode
注意:
打开ios文件夹内.xcworkspace
的后缀文件,修改签名
,然后运行到模拟器或真机
如果是打开的.xcodeproj
,那么还可能会提示各种运行错误,貌似大多都是pod引起的,可以尝试下面命令
pod deintegrate
pod update
4. 启动开发服务
# 启动服务
npm run start
如果没有运行到手机或模拟器上,可以选择i
命令 运行到ios,或者自己用xcode运行到手机或模拟器上。
如果是运行到iphone手机上 还有要注意的点
,当修改App.tsx
内的代码后,发现手机上不会同步更新,这个时候可能是因为没有开启本地网络
。
吐槽:
在这个问题上尝试过好多次重复的上面步骤,总怕遗漏了什么步骤或哪个包没有安装正确,不论怎么设置app内的Configure Bundler
都无效,后来无意中点击app内的链接,提示没有网络权限,然后把app的本地网络打开后,才可以正常本地开发、更新。