近期公司原因换了台电脑(新旧都是mac),引出一系列坑。谨以此文,略做总结。
-
电脑系统版本过低,更新提示未能验证该更新
本来版本过低可以不用管,但是开发中需要使用Xcode工具,在App Store里面下载提示需要v11以上的版本。又试着在网上下载低版本的Xcode,下来下去都不成功,下载完也不能用。
无奈,只好继续更新版本。网上的方法试了好多都不行。最终求助大佬被告知可能是网络问题,换个网络试了一下,果然好使👍🏻。 -
使用迁移助理完成迁移
两台电脑同时打开迁移助理(路径:应用程序 => 实用工具 => 迁移助理)
旧电脑选择至另一台Mac,新电脑选择从Mac时间机器备份或启动磁盘,继续。
选择想要迁移的东西进行迁移即可。
注意:两台电脑需要在同一个网络下,新电脑版本需要比旧电脑版本高。 -
项目运行问题
迁移的时候因为内存原因删了一些文件,运行项目就提示
Loading dependency graph...libc++abi: terminating with uncaught exception of type std::__1::system_error: open: /usr/local/var/run/watchman/lewis-state: Permission denied
Watchman: watchman --no-pretty get-sockname returned with exit code=null, signal=SIGABRT, stderr= libc++abi: terminating with uncaught exception of type std::__1::system_error: open: /usr/local/var/run/watchman/lewis-state: Permission denied
没有打开lewis-state文件的权限?我就纳闷了,我项目里还想也没有用到这个文件呀。
干脆找到这个文件,移入废纸篓,项目正常运行,解决!
- Xcode报错
报错1:
/Users/singcloud/Desktop/ReactNative/xx/xxx/node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm:311:34: Cannot initialize a parameter of type ‘NSArray<id> *’ with an rvalue of type ‘NSArray *’
报错2:
/Users/singcloud/Desktop/ReactNative/xx/xxx/node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm:751:79: Cannot initialize a parameter of type ‘NSArray *’ with an lvalue of type ‘NSArray<id> *__strong’
报错3:
/Users/singcloud/Desktop/ReactNative/xx/xxx/node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm:802:69: Cannot initialize a parameter of type ‘NSArray<id> *’ with an lvalue of type ‘NSArray *__strong’
解决方法:
将_initializeModules:(NSArray<id> *)modules替换为_initializeModules:(NSArray *)modules
参考:https://www.jianshu.com/p/75afd2f8fbc1
Xcode12.5报错:https://www.jianshu.com/p/7d78792ef9d8
1、高版本修改
…/node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm文件中的
_initializeModules:(NSArray<id> *)modules
改为
_initializeModules:(NSArray *)modules
和
…/node_modules/react-native/ReactCommon/turbomodule/core/platform/iOS/RCTTurboModuleManager.mm文件中的
RCTBridgeModuleNameForClass(module))
改为
RCTBridgeModuleNameForClass(Class(module)))
2、低版本修改
我的 “react-native”: "0.53.3"就找不到
…/node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm
将
(void)_initModules:(NSArray<id> *)modules
修改为:
(void)_initModules:(NSArray *)modules