React Native 环境搭建

Mac 版

根据官网步骤进行,V 0.72

注:在开始之前,我删除了电脑中已有 Homebrew ,重新安装最新版的 Homebrew。过程中使用有科学上网工具。

关于 Homebrew 的安装问题,可以参考这篇博客。

1,安装 node

brew install node@16

下载到某个阶段,就进行不下去,停止后,耐着性子,继续执行上述指令,在执行失败了 N 次以后,直接下载了 Nodejs 官网的 pkg 进行安装

2,安装 watchman

brew install watchman

跟 1中 指令一样,安装到某一个耗时较长的框架就会断(失败),那就反复执行这个指令,直到下载成功。

我大概反复执行了 4次 该指令。

没有切换淘宝源。

3,配置 yarn

npm install -g yarn

需要管理员权限,又执行

sudo npm install -g yarn

4,Xcode 安装

安装完成之后,配置模拟器。

关于 Xcode 的安装这里不再赘述,有不懂的自行搜索安装配置。

5,CocoaPods 安装

CocoaPods 被誉为 iOS 的 npm。

安装指令,以下二选一:

sudo gem install cocoapodsbrew install cocoapods

我最开始使用了 brew 的方式来安装,毕竟刚刚安装完 brew,想继续使用它。

过程中依然会遇到某一个库安装比较慢 和 卡断 的问题,我 brew 安装 cocoapods 指令执行了 三四次才安装OK。

6,我之前安装过 react-native-cli,所以先执行卸载的指令

npm uninstall -g react-native-cli @react-native-community/cli

7,在想要创建 ReactNative 项目的文件夹下,执行以下指令来创建项目

npx react-native@latest init AwesomeProject

可是,还是失败了!项目创建失败!

结果如上图!

✖ Installing Ruby Gems

error Ignoring ffi-1.15.1 because its extensions are not built. Try: gem pristine ffi --version 1.15.1

✖ Installing Ruby Gems

error Looks like your iOS environment is not properly set. Please go to https://reactnative.dev/docs/environment-setup?os=macos&platform=android and follow the React Native CLI QuickStart guide for macOS and iOS.

原因分析:

1,Cocoapods 问题?

瞎猜的,不过在排查时,有重大发现!!!

Mac 自带有 ruby 环境,而 Cocoapods 和 Homebrew 在安装和配置时都有关于 ruby 环境的更新和使用。并且,由于路径的问题,我们一直使用的都是 Mac 自带的 ruby,所以在这个地址,发现了修改 ruby 环境地址的方法。

我这里也记录一份,修改 ruby 环境路径的具体修改步骤如下:

步骤一:

依次输入如下终端指令

which rubyruby -v

得到如下结果,说明你的电脑 ruby 环境 Mac 默认的 ruby 环境

步骤二:

终端执行以下指令,或者直接找到文件进行编辑

open -e ~/.zshrc

如果告诉你没有找到 .zshrc 文件,请移步这里创建并使用 .zshrc 文件。

步骤三:

在 .zshrc 文件中输入以下内容

Inter 芯片:

if [ -d "/usr/local/opt/ruby/bin" ]; thenexport PATH=/usr/local/opt/ruby/bin:$PATHexport PATH=`gem environment gemdir`/bin:$PATH
fi

M系列芯片:

if [ -d "/opt/homebrew/opt/ruby/bin" ]; thenexport PATH=/opt/homebrew/opt/ruby/bin:$PATHexport PATH=`gem environment gemdir`/bin:$PATH
fi

步骤四:

保存并关闭 .zshrc 文件。

关闭终端窗口,以确认修改。

步骤五:

再次输入 ruby -v 指令,获取到最新的 ruby 版本(不是步骤一中的版本,就代表路径修改完毕了,没必要再执行 which ruby 指令了)。

执行完以上步骤之后,再次在目标文件夹中执行 npx react-native@latest init AwesomeProject 指令,尝试创建 React Native 项目。

又报错了

✔ Processing template

✖ Installing Ruby Gems

error /Library/Ruby/Site/2.6.0/rubygems.rb:264:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)

from /Library/Ruby/Site/2.6.0/rubygems.rb:283:in `activate_bin_path'

from /usr/bin/bundle:23:in `<main>'

✖ Installing Ruby Gems

error Looks like your iOS environment is not properly set. Please go to https://reactnative.dev/docs/environment-setup?os=macos&platform=android and follow the React Native CLI QuickStart guide for macOS and iOS.

这不还是 Ruby 的问题吗?难道没有修改成功?

ruby -v 发现确实 ruby 路径又出问题了。

再次按照上述博客修改 ruby 默认路径。

之后再次执行 npx react-native@latest init AwesomeProject 指令创建项目。

再次失败。报错如下:

✔ Installing Ruby Gems

⠴ Updating CocoaPods repositories (this may take a few minutes)  fatal: unable to access 'https://github.com/CocoaPods/Specs.git/': Recv failure: Operation timed out

✖ Updating CocoaPods repositories (this may take a few minutes)

✖ Updating CocoaPods repositories (this may take a few minutes)

error Failed to update CocoaPods repositories for iOS project.

Please try again manually: "pod repo update".

CocoaPods documentation: https://cocoapods.org/.

info Run CLI with --verbose flag for more details.

随后,执行 pod repo update 失败。

然后执行:sudo pod repo update --verbose

出错了,我想当然的加了 sudo,执行后 报错,不能使用 sudo,但是我没注意。

然后开始搜索:[!] CocoaPods was not able to update the `cocoapods` repo. If this is an unexpected issue and persists you can inspect it running `pod repo update --verbose`

找到一篇博客,说是 执行 pod repo list 然后发现有三个 repo 源,然后执行

pod repo remove XXX 来逐个卸载感觉不对的 源。过程中,可能卸载错了源,导致后面卸载重装 cocoapods。

然后就执行 pod repo update 指令。报错:

[!] CocoaPods was not able to update the `cocoapods` repo. If this is an unexpected issue and persists you can inspect it running `pod repo update --verbose`

执行 pod update 企图再次更新。报错:

[!] No `Podfile' found in the project directory.

算了,卸载吧!这是乱搞的下场,不再乱搞了,卸载 cocoapods,然后重新来过。

brew uninstall cocoapods

然后:sudo gem install cocoapods,换一种安装 cocoapods 的方式。安装成功。

看到终端告诉我:

A new release of RubyGems is available: 3.4.10 → 3.4.21!

Run `gem update --system 3.4.21` to update your installation.

那就执行指令:gem update --system 3.4.21

随后:ruby -v

得到结果:ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-darwin21]

(好像跟之前的ruby版本一样,不纠结了,其实是更新失败了,但感觉这个 3.2.2 也可以了)

折腾了半天。

执行:pod setup 指令,得到结果:Setup completed。

React Native 环境配置中,安装完 cocoapods 之后,没有要求执行 pod setup 指令,之前在搜索卸载安装 cocoapods 时,发现了这个指令,好像回想起来 cocoapods 需要 setup 的吧。索性就执行下吧。

然后 输入 pod --version,得到当前版本号 1.14.2 。之前是 1.13.0 。这也算是这段折腾的收货吧。

pod repo list 输出的 repo 源只有一个了。

执行:pod repo update 指令。想着创建 React Native 项目之前,再执行下这个指令吧,省得待会儿创建项目时再报 repo 的问题。

还是报错:

Updating spec repo `cocoapods`

  $ /usr/bin/git -C /Users/xuedongli/.cocoapods/repos/cocoapods fetch origin --progress

  fatal: unable to access 'https://github.com/CocoaPods/Specs.git/': Failure when receiving data from the peer

[!] CocoaPods was not able to update the `cocoapods` repo. If this is an unexpected issue and persists you can inspect it running `pod repo update --verbose`

再执行下:pod repo update --verbose 吧。......

更新成功了!。。。。。。

我上面折腾了半天,是不是我想当然的加了 sudo 惹的祸。。。。。。哎!

继续执行:npx react-native@latest init AwesomeProject 指令创建项目吧!

关于 React Native 的原生安装方式的探索到此结束吧!

接下来将使用 简易沙盒 环境来创建项目了!

本章完!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/160439.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亚马逊云科技:让生成式AI真正走向普惠

伴随着ChatGPT的横空出世&#xff0c;生成式AI&#xff08;Artificial Intelligence Generated Content&#xff0c;也称AIGC&#xff09;大潮也以锐不可当之势席卷全球。从各行各业的商业领袖&#xff0c;到千千万万的程序员和开发者&#xff0c;都在思考如何借助生成式AI技术…

[iOS开发]iOS中TabBar中间按钮凸起的实现

在日常使用app的过程中&#xff0c;经常能看到人家实现了底部分栏控制器的中间按钮凸起的效果&#xff0c;那么这是怎么实现的呢&#xff1f; 效果演示&#xff1a; 实现原理&#xff1a; 创建按钮 创建一个UITabBar的子类&#xff0c;重写它的layoutSubviews方法&#xff1…

文本内容转换成语音播放的工具:Speech Mac

Speech Mac版是一款适用于Mac电脑的语音合成工具。它将macOS语音合成器的所有功能整合到一个易于使用的界面中。通过Speech Mac版&#xff0c;用户可以选择40多种声音和语言&#xff0c;方便地将文本转换为语音。用户可以将文本拖放或粘贴到Speech中&#xff0c;并随时更改语音…

Nginx搭载负载均衡及前端项目部署

目录 ​编辑 一.Nginx安装 1.安装所需依赖 2.下载并解压Nginx安装包 3.安装nginx 4.启动Nginx服务 二.Tomcat负载均衡 1.准备环境 1.1 准备两个Tomcat 1.2 修改端口号 1.3 配置Nginx服务器集群 2.效果展示 ​编辑三.前端项目打包 ​编辑四.前端项目部署 1.上传项目…

Websocket @ServerEndpoint不能注入@Autowired

在websocket中使用ServerEndpoint无法注入Autowired、Value 问题分析 Spring管理采用单例模式&#xff08;singleton&#xff09;&#xff0c;而 WebSocket 是多对象的&#xff0c;即每个客户端对应后台的一个 WebSocket 对象&#xff0c;也可以理解成 new 了一个 WebSocket&…

SQL左连接实战案例

要求&#xff1a;用表df1和表df2的数据&#xff0c;得到df3 一、创建表 CREATE TABLE df1 (姓名 varchar(255) DEFAULT NULL,年龄 int DEFAULT NULL,部门 varchar(255) DEFAULT NULL,id int DEFAULT NULL );CREATE TABLE df2 (部门 varchar(255) DEFAULT NULL,年龄 int DEFAU…

Qt中正确的设置窗体的背景图片的几种方式

Qt中正确的设置窗体的背景图片的几种方式 QLabel加载图片方式之一Chapter1 Qt中正确的设置窗体的背景图片的几种方式一、利用styleSheet设置窗体的背景图片 Chapter2 Qt的主窗口背景设置方法一&#xff1a;最简单的方式是通过ui界面来设置&#xff0c;例如设置背景图片方法二 &…

【六、http】go的http的客户端重定向

一、http的重定向 重定向过程&#xff1a;客户浏览器发送http请求----》web服务器接受后发送302状态码响应及对应新的location给客户浏览器–》客户浏览器发现是302响应&#xff0c;则自动再发送一个新的http请求&#xff0c;请求url是新的location地址----》服务器根据此请求寻…

GitLab CI/CD 持续集成/部署 SpringBoot 项目

一、GitLab CI/CD 介绍 GitLab CI/CD&#xff08;Continuous Integration/Continuous Deployment&#xff09;是 GitLab 提供的一种持续集成和持续部署的解决方案。它可以自动化软件的构建、测试和部署过程&#xff0c;以便开发者更快地、更频繁地发布可靠的产品。 整体过程如…

jetsonTX2 nx配置yolov5和D435I相机,完整步骤

转载一篇问题解决博客&#xff1a;问题解决 一、烧录系统 使用SDK烧录 二、安装archiconda3 JETSON TX2 NX的架构是aarch64,与win10,linxu不同,所以不能安装Anaconda&#xff0c;这里安装对应的archiconda。 1. 安装 wget https://github.com/Archiconda/build-tools/rel…

MySQL8.0.26-unbuntu版安装

MySQL8.0.26-ubuntu版安装 在这里会有一个坑&#xff0c;就是我在安装的时候,是按照另外一种版本的安装&#xff0c;报错没有rpm这个包&#xff0c;然后我就去下载&#xff0c;然后就报错 E: 无法定位软件包 &#xff0c;害的我找了好久的资料&#xff0c;一直没有解决&#x…

VSCode中的任务什么情况下需要配置多个问题匹配器problemMatcher?多个问题匹配器之间的关系是什么?

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、简介 在 VS Code 中&#xff0c;tasks.json 文件中的 problemMatcher 字段用于定义如何解析任务输出中的问题&#xff08;错误、警告等&#xff09;。 problemMatcher是一个描述问题匹配器的接口&…