升级Xcode13后打开Objective-C项目xcworkspace意外崩溃求助
问题根因
从崩溃栈可直接定位:Xcode 13 读取项目Info.plist中的App Transport Security(ATS)配置时,出现类型不匹配异常,系统尝试对布尔类型的配置值执行mutableCopy操作触发崩溃。
解决方案
1. 临时应急打开项目
- 右键点击
.xcworkspace文件,选择「显示包内容」,删除xcuserdata文件夹下所有内容 - 先启动Xcode,不要直接点击项目文件,在启动界面选择「打开其他项目」,选中项目的
*.xcodeproj文件打开 - 打开后不要切换到「Capabilities」标签页,直接关闭Xcode再重新打开xcworkspace即可正常进入
2. 永久修复
步骤1:排查错误ATS配置
打开项目Info.plist,找到NSAppTransportSecurity字段,检查所有子配置:
常见错误:
- 本该是字典/数组类型的ATS子项被错误配置为布尔值
NSExceptionDomains下的自定义域名项被设为YES/NO,而非字典类型NSAllowsArbitraryLoads相关子配置嵌套了错误类型
步骤2:修正配置
按照苹果官方规范调整ATS配置类型:
NSAppTransportSecurity为字典类型NSAllowsArbitraryLoads为布尔类型NSExceptionDomains为字典类型,每个子项是域名字符串,值为该域名的例外配置字典
步骤3:验证
修正配置后重新打开xcworkspace,崩溃不再触发。
3. 备选兼容方案
若暂时无法修正ATS配置,可继续使用Xcode 12.5,手动导入iOS 15模拟器包,无需升级Xcode 13也可完成iOS 15适配测试。
内容的提问来源于stack exchange,提问作者SaadurRehman
相关产品推荐
相关产品推荐

