换电脑踩坑记

近期公司原因换了台电脑(新旧都是mac),引出一系列坑。谨以此文,略做总结。

  1. 电脑系统版本过低,更新提示未能验证该更新
    在这里插入图片描述
    本来版本过低可以不用管,但是开发中需要使用Xcode工具,在App Store里面下载提示需要v11以上的版本。又试着在网上下载低版本的Xcode,下来下去都不成功,下载完也不能用。在这里插入图片描述
    无奈,只好继续更新版本。网上的方法试了好多都不行。最终求助大佬被告知可能是网络问题,换个网络试了一下,果然好使👍🏻。

  2. 使用迁移助理完成迁移
    两台电脑同时打开迁移助理(路径:应用程序 => 实用工具 => 迁移助理)
    旧电脑选择至另一台Mac,新电脑选择从Mac时间机器备份或启动磁盘,继续。
    选择想要迁移的东西进行迁移即可。
    注意:两台电脑需要在同一个网络下,新电脑版本需要比旧电脑版本高。

  3. 项目运行问题
    迁移的时候因为内存原因删了一些文件,运行项目就提示

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文件的权限?我就纳闷了,我项目里还想也没有用到这个文件呀。
干脆找到这个文件,移入废纸篓,项目正常运行,解决!

  1. 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值