RN环境搭建
rn环境终于搭建完成了 😭 但是还是很激动,决定马上记录下我踩过的坑给跟我同样遭遇的小伙伴们参考鸭~搭建环境为MacOs-ios 和 MacOs-android
- react-native官网提供了环境搭建教程,ReactNative中文网 但是就算你完成整个搭建过程在run时也会报错,这可能是跟你各种安装包版本等有关系。
遇到的问题
-
jdk版本的问题,我下载jdk13,但是由于rn不支持1.9以上的jdk版
-
安卓模拟器找不到
- 打开AndroidStudio点击下面这个图标,然后选择创建一个虚拟机,选择一个尺寸,下一步选择pie28,创建完成后回到你的虚拟机点击绿色的播放按钮启动,然后运行react-antive run-android即可

- 打开AndroidStudio点击下面这个图标,然后选择创建一个虚拟机,选择一个尺寸,下一步选择pie28,创建完成后回到你的虚拟机点击绿色的播放按钮启动,然后运行react-antive run-android即可
-
项目中使用cocoapods:为iOS程序提供依赖管理的工具
# 1.先升级Gem sudo gem update --system # 2.切换cocoapods的数据源 【先删除,再添加,查看】 gem sources --remove https://rubygems.org/ gem sources -a http://ruby.taobao.org/ gem sources -l 3.安装cocoapods sudo gem install cocoapods 4.将Podspec文件托管地址从github切换到国内的oschina 【先删除,再添加,再更新】 pod repo remove master pod repo add master http://git.oschina.net/akuandev/Specs.git pod repo add master https://gitcafe.com/akuandev/Specs.git pod repo update 5.设置pod仓库 pod setup 6.测试 【如果有版本号,则说明已经安装成功】 pod --version 7.利用cocoapods来安装第三方框架 01 进入要安装框架的项目的.xcodeproj同级文件夹 02 在该文件夹中新建一个文件Podfile 03 在文件中告诉cocoapods需要安装的框架信息 a.该框架支持的平台 b.适用的iOS版本 c.框架的名称 d.框架的版本 8.安装 cd ios pod install --no-repo-update pod update --no-repo-update注意看每一步,有时候会出现结果显示完成,但是某一步出现过error信息,最好解决一下,以免后面步骤出现问题。
-
安装fastlane:一个任务流工具,堪称打包神器
cd ios # Using RubyGems sudo gem install fastlane -NV # Alternatively using Homebrew brew cask install fastlane- 执行fastlane init 如果出现说明没有配置环境变量
加上就好了
export PATH="$HOME/.fastlane/bin:$PATH" security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k Fpi123456 login.keychain fastlane init - 执行过程中报错,提示ruby版本必须大于2.4,使用rvm升级ruby
$ ruby -v 查看Ruby版本 $ curl -L https://get.rvm.io | bash -s stable 安装rvm $ source ~/.rvm/scripts/rvm 载入 RVM 环境(新开终端不需要,会自动载入) $ rvm -v 测试是否安装成功 $ rvm list known 查看ruby版本 $ rvm install ruby-x 更新某个版本的ruby安装好测试下ruby版本 运行fastlane init完成
- 执行fastlane init 如果出现说明没有配置环境变量
-
项目依赖
yarn 安装项目依赖 cd ios && fastlane updateSign 安装ios依赖 -
react-native run-ios
- 总是报错,Could not find iPhone 6 simulator,解决方案
- 指定某个模拟器运行
xcrun simctl list --json devices 查看所有的ios设备,指定某一种运行- 修改文件node_modules->react-native->local-cli->runIOS->findMatchingSimulator.js,修改为如下图所示

可以继续运行react-native run-ios --simulator 'iPhone 8' 由于我Xcode版本比较高,默认运行在iPhone6上会找不到,所以制定一个模拟器,如果你们有iPhone6的话可以直接react-native run-iosif (!version.includes('iOS') && !version.startsWith('tvOS')) { continue; } if (simulator.availability !== '(available)' && simulator.isAvailable !== true) { continue; }
- 总是报错,Could not find iPhone 6 simulator,解决方案
-
运行成功,Xcode11 beta版本问题 如下图所示,运行成功后报红

解决方式:
路径:node_modules->react-native->/React/Base/RCTModuleMethod.mm 函数修改为: static BOOL RCTParseUnused(const char **input) { return RCTReadString(input, "__attribute__((unused))") || RCTReadString(input, "__attribute__((__unused__))") || RCTReadString(input, "__unused"); }这个BUG是Xcode.11引起的, 可以查看这个问题的提交记录,链接为:github.com/facebook/re…
再次重新运行就可以了
ending~ ❤