MacBook Pro 2015 换代 2023 的坑

我用MacBook Pro 2015开发iOS App,马上就快8年了。因为只是开发时打开用,所以一个月也开不了几天盖(从来不关机,就只盒盖),运行还是很流畅的;只是电池充满自耗电归0的周期,从刚开始的1个多月变成现在的1周。

 

前几天提交新版时得到一个警告:自2023-04-25开始只接受由SDK V16.1+构建的App,而使用SDK V16.1 + 须安装XCode V14.1+,而XCode V14.1+只能在Mac OS 13.0+上运行,最后,我的MacBook Pro 2015最高能升级到Mac OS V12.6.5...相当于被苹果勒令换开发机了。

于是购置了MacBook Pro M2(2022年首发,买到的是今年的生产日期)16G/512G配置,赠鼠标。

坑1:迁移助理

迁移助理100多G数据,通过wifi,有时进度根本不动,于是过夜等一晚上,提示迁移成功,实际并没有,还有一段小字:部分文稿未迁移成功,这倒没什么,你倒是列一个清单啊,没有。从新Mac剩余空间看,有几十G没导。

坑2:时间机器

于是找了块U盘用时间机器备份,备份倒是挺快,结果到了M2上,用迁移助理根本找不到这块盘(但启动迁移助理前,插上数据线,Mac OS还是认识这块U盘的)。

以上2个坑,也许是机器型号2015到2023差异太大导致?还是说必须系统版本差距不能太大?搞不清。

于是直接把主工程和各子工程文件夹(其内有.xcodeproj 文件)全部AirDrop过去。那为啥最开始不这样做,因为我抱着一丝希望:感觉用迁移助理或时间机器导数据会很完整,应该类似Windows的克隆效果,希望所有的XCode配置都自动过去了,打开XCode不会报一堆错。

附带的坑:这块U盘既然不能做迁移用,就继续给windows机器用吧,结果插上不认了, 还需要在Mac的“磁盘工具”内抹掉(格式选exFAT,这样Mac OS/Windows同时都认),windows才能认。

坑3:XCode 14.3 报错

果然不出所料,这样所需复制文件夹的方式,XCode编译会报很多错,只能见一个解决一个

3-1、运行到模拟器,报错:和第三方静态库有关,有的不报,有的报

In /Users/applepiggy/Documents/GoBible/GoBible/weixin/libWeChatSDK.a(WechatAuthSDK.o), building for iOS Simulator, but linking in object file built for iOS, file '/Users/applepiggy/Documents/GoBible/GoBible/weixin/libWeChatSDK.a' for architecture arm64

解决:在Build Settings - Architectures - Excluded Architectures - Debug/Release 都加上 arm64

但最初我没有找到Excluded Architectures 后来这个项出现了,难道是关闭XCode再打开后才有的,搞不清。

3-2、想运行到真机,报错:

ld: file not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)

解决办法:

// iOS问题记录 - Xcode 14.3版本运行项目报错_crasowas的博客-CSDN博客

采用其中将XCode 14.3删除的文件夹arc复制回来的办法。

附:把文件复制到无权限文件夹下的方法:

设置 - 隐私与安全性 - 完全磁盘访问权限 - 按加号 - 浏览到应用程序的终端;

然后在终端下执行 sudo cp 提示输入密码时输入你登录Mac的账号的密码。

3-3、其他

project/target的deployment target分别为8.0/9.0,如果按警告提示修改为11.0,会导致无法运行到模拟器或真机!原因和解决办法以后再说。

3-4、追加 @2023-06-11

本来好好的,突然真机调试显示 Unable to install ... 点击detail按钮显示 Code: -402620415

一顿操作猛如虎,最终Architecture改为下图即可(真机、模拟器同时可部署,但能部署到真机试个假象!具体往后找到 #1 )

dMacBook Pro 2015 换代 2023 的坑_第1张图片

注意

1. Build Active Architecture Only: Debug Yes / Release No

2. Excluded Arichitectures下Debug右侧有arm64(之前没有),Debug子项Any SDK右侧也有arm64;而Release则没有子项,右侧也是空白状态。

3-4相当于部分否定了3-1的做法,请往前翻看3-1

但是:!修改代码后(例如注释某段)真机调试时,代码仍然能进到注释代码内,说明XCode14有切换模拟器、真机时存在缓存的bug,于是clean(#1),重新运行,出错了:Executable Path is a Directory

于是按如下:Excluded Arichitectures下Debug右侧的删除,结果如下图

MacBook Pro 2015 换代 2023 的坑_第2张图片

 这样就可以在真机运行了。

所以说,xcode14在切换模拟器/真机运行时,每次这样的切换,都要修改图中的Architectures...而且说不定要clean为妙(前边已经提及被注释的代码块都能step in...)...暂失不知道有什么好办法不这么麻烦

你可能感兴趣的:(xcode,macos,ide)