React-Native自问世以来到如今已经到了v-0.57.3了,作者从iOS原生开发,走到Android原生开发,再走到React-Native,回想起这3年,坑遇到了无数个,我一直想整理一份填坑文章,现终于有时间将这些坑整理出来。分享给大家,让大家在开发的时候节省爬坑的时间。
特殊说明:若读者有本文没有涉及到的其它报错,也可以把情况写在评论区里,本文会一直更新。
1.":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
这个问题基本上从0.57开始出现
- yarn add @babel/runtime 或者 npm install @babel/runtime
- 重启服务
3.macOS10.14安装Homebrew报错Downloading Command Line Tools for Xcode.
这个问题是因为新版的Xcode已经不再安装到此路径了
- 点击下载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显示一个橘黄锤子标签。
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了
未完待续...