React-Native填坑汇总

React-Native自问世以来到如今已经到了v-0.57.3了,作者从iOS原生开发,走到Android原生开发,再走到React-Native,回想起这3年,坑遇到了无数个,我一直想整理一份填坑文章,现终于有时间将这些坑整理出来。分享给大家,让大家在开发的时候节省爬坑的时间。

特殊说明:若读者有本文没有涉及到的其它报错,也可以把情况写在评论区里,本文会一直更新。

1.":CFBundleIdentifier",Does Not Exist

":CFBundleIdentifier",Does Not Exist
  • 删除node_modules文件夹及iOS目录下的build文件夹。
  • npm install
  • react-native upgrade 注意:执行react-native upgrade的时候,看好控制台的提示,涉及到Android的全部选择N,涉及到iOS的全部选择Y.
  • react-native run-ios

2.缺少@babel/runtime

@babel/runtime does not exist in the module

这个问题基本上从0.57开始出现

  • yarn add @babel/runtime 或者 npm install @babel/runtime
  • 重启服务

3.macOS10.14安装Homebrew报错Downloading Command Line Tools for Xcode.

Downloading Command Line Tools for Xcode

这个问题是因为新版的Xcode已经不再安装到此路径了

  • 点击下载Command Line Tools
    developer.apple Command Line Tools

    选择对应的版本下载后,安装package。
  • 重新安装Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

4.极光推送本地成功,后台失败。

  • 确定AppID中是否打开了推送权限。
  • 打开推送权限后是否更新了证书文件。
  • 证书文件是否安装在了钥匙串中。
  • 导出p12文件是否已经上传至极光后台。
  • 确定工程文件已经打开推送设置。
  • 核心来了Xcode10新特性增加了New Build System创建系统,但是此时我们不需要,所以改成Legacy创建系统,在File > Project/Workspace Settings页选择它。配置后项目会在Activity View显示一个橘黄锤子标签。
    Legacy Build System

5.Xcode10升级项目报错library not found for -lstdc++.6.x.x

原因:Xcode10后不再用此库了

  • 只需要打开tagets->Build Phases ->Link Binary With Libraries下找到对应版本库删除就OK了。

6.完全删除第三方开源组件的依赖包

很多时候,光执行npm unstall是不能完全卸载组件的,尤其是react-native link后的

  • npm uninstall -s -D -O react-native-xxxx 卸载npm包中的组件,这里的xxxx是你第三方模块的名字
    -D:组件作为devDependencies
    -O:从optionalDependencies中删除
  • Android
    1.进入项目下的android目录下,然后打开setting.gradle,删除"include"、"project"所在的两行依赖
    2.进入android/app目录下,打开build.gradle,删除dependencies代码块内的一行依赖:
    3.找到 MainApplication 找到RN调用的原生方法.
    4.还是在 MainApplication 文件中删除最上面的import导包
  • iOS
    1.打开xcode,找到AppDelegate.m,然后删除对应引用库的原生代码
    2.打开xcode,进入左侧主目录的Libraies中,右键删除这个库
    3.打开 Build Phases —— Link Binary With Libraties —— Header Search Paths —— 点击左侧小箭头展开,然后双击右侧的第一行目录,找到你的组件路径,点击下面的减号删除你的组件的路径
  • RN删除对应模块的import
    OK了

未完待续...

你可能感兴趣的:(React-Native填坑汇总)