当前位置: 首页 > news >正文

React Native 搭建iOS与Android开发环境

背景:新的 mac电脑,要配置 iOS 与 Android 的开发环境,并且我是使用 React Native 开发。

目标:可以使用 xcode 与 Android studio 去开发。

第一步

已知设备是全新的,没有什么环境,那么我们要第一步,先去 Apple store 去下载xcode,然后去下载 Android studio,根据配置下载并安装,默认进去安装所有的sdk 即可。这个耗时比较久,所以放在第一步,在此期间我们可以去配置我们的其他环境

https://developer.android.com/studio?hl=zh-cn

第二步

接着整理我们需要安装的全部工具。

一、必须安装的工具

以下是开发 iOS 和 Android 所需的全部工具:

工具用途安装方式
Homebrew管理其他工具的安装终端运行安装脚本
Node.js运行 JavaScript 环境brew install node  Node.js — Download Node.js®
Watchman监听文件变化,提升开发体验brew install watchman
RubyiOS 依赖管理(CocoaPods 需要)macOS 自带,或 brew install ruby
CocoaPods管理 iOS 原生依赖sudo gem install cocoapods
JDK编译 Android 代码brew install --cask adoptopenjdk/openjdk/adoptopenjdk11
Android StudioAndroid 开发 IDE 和 SDK官网下载
XcodeiOS 开发 IDE 和工具链

App Store 下载

NVM管理node的版本brew install nvm,可以下载也可以不下载

首先是Homebrew,也就是brew,​​ 是 macOS 上推荐安装的包管理工具,它能帮你高效安装和管理开发所需的依赖。这个可以在安装 node 的时候去安装。

二、具体安装步骤

1. 安装 Homebrew

Homebrew — The Missing Package Manager for macOS (or Linux)

打开执行命令即可,有可能需要输入密码,之后就会开始下载一系列东西,过程很长,结束后看到提示,需要去配置一下环境:推荐国内源

#官方
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"#国内源
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"   
切换国内源和其他配置: 

国内源的配置情况:

有时候下载东西的时候,homebrew会去自动检查,有时候会漫长,所以可以在配置里禁掉:

# 方法1:设置环境变量(临时生效)
export HOMEBREW_NO_AUTO_UPDATE=1# 方法2:写入配置文件(永久生效)
echo 'export HOMEBREW_NO_AUTO_UPDATE=1' >> ~/.zshrc
source ~/.zshrc

2. 安装 node 

Node.js — Download Node.js®

打开 node 的安装页面,有nvm的安装方式,也有 brew 的安装命令:

这里推荐使用 nvm,当然你可以选择使用 homebrew,只是下载 node 的方式不一样而已。

这里我下载 v20.19.2版本的,并且使用nvm下载,根据官网的配置下载后,检查环境:


 3.下载watchman

因为是react native开发,所以为了监控文件系统的变化,必须下载这个。

如果电脑上之前安装了这个,需要检测一下gcc的版本,太低会有不兼容。

brew install watchman

使用-v 去看一下版本,如果是最近的日期,说明安装成功:

 


 4. Ruby

mac 电脑自带ruby,如果满足需求就可以不用更新了,可以先查看自己的版本:

# 查看版本
ruby -v#我的是ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin24]# 重新下载
brew install ruby

安装成功后,会提示是否需要写入环境变量:

If you need to have ruby first in your PATH, run:echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc

之后关闭终端之后再查看版本信息,可以看到最新的,我这里安装的是3.4.4


5.CocoaPods

这个是工作里开发iOS用的依赖管理工具,也是版本管理的工具,可以自动化流程解决第三方库的集成问题。

一个小细节,如果启动项目的时候,installing cocoapods。。。一直卡顿,很有可能是网络、版本有冲突。

CocoaPods.org

下载前,先确保自己的 ruby>=2.6(Mac电脑默认的)

然后去下载:

sudo gem install cocoapods
配置环境

 安装后如果像我这样找不到pod,那么就需要配置一下环境 

先找一下自己的pod的安装位置:

gem which cocoapods

然后再去看解决方案,例如我这里的是安装位置与系统的变量的位置不一致,所以我找到位置后,更换了一下位置:

export PATH="/opt/homebrew/lib/ruby/gems/3.4.0/bin:$PATH"


6. jdk

下载方式:

brew install openjdk@17

下载成功,配置环境:

#验证路径:brew --prefix openjdk@17#安装的时候推荐的路径:echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc#保存source ~/.zshrc#验证:java --version

在android studio里配置:sdk使用的gradle是homebrew 17 jdk。

7. 配置git 开发环境

mac 电脑默认的git版本较旧。

苹果 macOS 默认预装了 Git,但版本通常较旧 ,路径为 /usr/bin/git,与 macOS 系统工具深度集成。建议安装新版的git,并配置一下环境,这样系统命令行里使用的时候就是新版的git。

此外我习惯使用GitHub Desktop ,这个应用的 Git 仅用于该应用内部操作,不会影响终端中的 Git 命令。若需在终端使用 GitHub Desktop 的 Git,需将其路径添加到环境变量。

所以为了两个都能使用,我是会安装一个新的版本的git,并且配置两处的环境,使其指向一个。

Git - Downloading Package 

# 安装 git
brew install git# 将Homebrew的bin目录添加到PATH最前面
echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc  # 若使用zsh(默认)
# 或
echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.bash_profile  # 若使用bash# 立即生效配置
source ~/.zshrc  # 或 source ~/.bash_profile# 验证路径是否更新
which git  # 应显示 /opt/homebrew/bin/git
git --version  # 确认版本为2.49.0或者其他版本

 安装成功后,在github desktop 里面可以去登录,也可以不登录,跳过这一步,然后设置名字和邮箱,注意,邮箱设置为自己的托管地址的邮箱,然后配置ssh,就可以正常使用了!

可以使用这个方式去查看自己的邮箱与名字, 

git config --global user.email
git config --global user.name

也可以在这里设置自己的名字与邮箱: 

第三步——启动项目(可以忽略)

一般先是clone项目,然后启动项目,再打开模拟器,就可以正常开发了。

但是如果第一次启动的时候遇到这些问题:

1.Xcode的问题

这个是系统当前配置的开发者工具路径指向了 ​​Command Line Tools​​(命令行工具),而非完整的 ​​Xcode 开发环境​​,需要修改指向位置:

sudo xcode-select -s /Applications/Xcode.app/Contents/Developerxcode-select --print-path  # 应输出 `/Applications/Xcode.app/Contents/Developer`#验证版本xcodebuild -version

2.没有模拟器

Starting Metro Bundler
CommandError: No iOS devices available in Simulator.app

如何新建模拟器:

相关文章:

  • 【matlab】图片转视频
  • 如何理解DDD的领域和子域?
  • git回滚操作
  • 失业学习-前端工程化-webpack基础
  • 【图像处理入门】9. 基础项目实战:从去噪到图像加密
  • App Trace 快速安装解析(开发者视角)
  • 单片机 - STM32读取GPIO某一位时为什么不能直接与1判断为高电平?
  • 可展开收起的搜索项组件el-table
  • 开发工期紧急:用户体验优化5大实施策略
  • 暴雨服务器成功中标洪湖市政府框架采购项目
  • 手写一个Spring:一、IOC容器
  • 电阻、电容、电感
  • 漫画Android:从网络加载一个50MB的图片,要注意什么?
  • 探秘KingbaseES在线体验平台:技术盛宴还是虚有其表?
  • EasyExcel 4.X 读写数据
  • 『大模型笔记』第3篇:多长的 Prompt 会阻塞其他请求?优化策略解析
  • AI测试开发工程师如何用大模型调用工具:从入门到实践
  • Linux --Ext系列文件系统
  • 【PWN】04.Linux-User Mode-栈溢出-x86-中级ROP
  • 工业 AI Agent:智能化转型的核心驱动力
  • 做婚礼请柬的网站有哪些/中文域名注册官网入口
  • 做网站技术服务合同/网络营销员岗位的职责与要求
  • 外贸网站 推广/sem竞价培训班
  • 网站重新备案怎么做/谷歌seo建站
  • 真人做爰直播视频网站/网站排名系统
  • 网站开发结课大作业/如何快速提升网站关键词排名