RN环境搭建

588 阅读3分钟

RN环境搭建

      rn环境终于搭建完成了 😭 但是还是很激动,决定马上记录下我踩过的坑给跟我同样遭遇的小伙伴们参考鸭~
搭建环境为MacOs-ios 和 MacOs-android
  • react-native官网提供了环境搭建教程,ReactNative中文网 但是就算你完成整个搭建过程在run时也会报错,这可能是跟你各种安装包版本等有关系。

遇到的问题

  • jdk版本的问题,我下载jdk13,但是由于rn不支持1.9以上的jdk版

  • 安卓模拟器找不到

    • 打开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完成

  • 项目依赖

        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,修改为如下图所示
      if (!version.includes('iOS') && !version.startsWith('tvOS')) {
          continue;
      }
      
      if (simulator.availability !== '(available)' && simulator.isAvailable !== true) {
          continue;
      }
      
      可以继续运行react-native run-ios --simulator 'iPhone 8' 由于我Xcode版本比较高,默认运行在iPhone6上会找不到,所以制定一个模拟器,如果你们有iPhone6的话可以直接react-native run-ios
  • 运行成功,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~ ❤