近期更新了xcode至xcode12.2版本,运行老项目,会报You don’t have permission. To view or change permissions, select the item in the Finder and choose File > Get Info.
一脸懵逼,没有权限查看、与更改~~~[大写的问号脸]

点击Details跟着路径前往文件夹并显示包内容,发现没执行文件...
为什么会出现这些错误?
查看Xcode12的升级文档,发现如下内容:

1、Xcode11项目中模拟器会编译为x86_64,但Xcode12的模拟器基于苹果Apple Silicone architecture执行,需要编译为arm64运行在模拟器上。还有许多第三方库(如AFNetworking等)并未提供Xcode12版本的更新支持,导致报错。
2、Xcode12开始移除编译设置Bulid Setting
中的Valid Architectures
的宏定义,当使用Xcode12打开项目,会在Bulid Setting
中的User-Defines
中自动生成VALID_ARCHS
宏定义。如果旧项目存在于此冲突的宏定义,会导致编译失败。
如何解决
一:终端执行sudo chmod -R 777 +文件路径获取权限
然后clear一下,运行。
如果还不行就去项目里设置Excluded Architectures
二:设置Excluded Architectures
打开项目,找到路径Build Settings - Excluded Architectures,Debug&Release都添加 Any iOS Simulator SDK
,设置为arm64

然后clear一下,运行。
如果还是失败,想必这个时候你可能有点崩溃...没关系还有一种方法。
三:删除项目里所有的VALID_ARCHS(整个删除,不能只删除value留下Key)

点击步骤1进入源代码,command+f全局搜索
VALID_ARCHS
,然后整行删除就可以了,如图步骤二,0 matchs,为全部删除。
未删除VALID_ARCHS
状态如下图所示:

然后clear一下,运行,终于有权限了,hhh~
网上还有一种方法:重新创建项目,然后把文件都copy过去。
我看网上有的小伙伴说可以,有的说不可以,我是没操作,直接给pass掉了- 0 - 有兴趣的同学可以试一试该方法。
网友评论