Xcode 无限循环闪退解决方案

发布于:2025-03-05 ⋅ 阅读:(131) ⋅ 点赞:(0)

1. 阻止 Xcode 自动打开上次的项目

方法 1. 按住 Shift 键启动 Xcode

  • 关闭 Xcode(如果还在运行)。
  • 按住 Shift 键,然后打开 Xcode。这将阻止 Xcode 自动打开上次的项目。

方法 2. 删除最近打开的项目记录

  • 在终端运行:

    defaults delete com.apple.dt.Xcode recentDocuments

  • 然后重新启动 Xcode。

2. 尝试安全模式打开 Xcode 

  • 在终端运行:

    open -a Xcode --args -SafeMode

  • 这将以安全模式启动 Xcode,避免插件或自定义设置导致的崩溃。

3. 清理 DerivedData 目录 

  • Xcode 的 DerivedData 可能导致崩溃,可以尝试删除:

    rm -rf ~/Library/Developer/Xcode/DerivedData/*

  • 然后重新打开 Xcode,尝试手动打开项目。

 4. 在终端查看 Xcode 崩溃日志

1. 打开 终端 (Terminal),执行:

log show --predicate 'processImagePath contains "Xcode"' --info --last 1h

这个命令会显示过去 1 小时内的 Xcode 相关日志。

2. 查看 Xcode 崩溃的具体错误:

log stream --process Xcode

运行此命令后,尝试启动 Xcode,查看崩溃时的实时日志输出。

5. 举例分析:

2025-03-04 16:44:07.149503+0800 0x32ef2 Default 0x0 10702 0 Xcode: (DVTFoundation) [MT] DVTAssertions: Backtrace: 0 __exceptionPreprocess (in CoreFoundation) 1 DVTFailureHintExceptionPreprocessor (in DVTFoundation) 2 objc_exception_throw (in libobjc.A.dylib) 3 -[NSObject(NSObject) __retain_OA] (in CoreFoundation) 4 ___forwarding___ (in CoreFoundation) 5 _CF_forwarding_prep_0 (in CoreFoundation) 6 -[IBICAbstractCatalogItem(IBICManifestArchivistDelegate) manifestArchivist:applyPropertiesFromChildEntry:toChild:results:] (in AssetCatalogFoundation) 7 -[IBICBundleIconSet manifestArchivist:applyPropertiesFromChildEntry:toChild:results:] (in AssetCatalogFoundation) 8 -[IBICAppIconSet manifestArchivist:applyPropertiesFromChildEntry:toChild:results:] (in AssetCatalogFoundation) 9 -[IBICManifestArchivist childFromChildEntry:results:] (in AssetCatalogFoundation) 10 __73-[IBICManifestArchivist childrenFromContentsJSONChildrenEntries:results:]_block_invoke (in AssetCatalogFoundation) 11 IBWithObjectBufferResultingInArray (in Asset<…>

日志分析:

从崩溃日志来看,Xcode 的崩溃发生在 AssetCatalogFoundation 相关的 IBICManifestArchivist 处理 AppIconSet 时。通常,这与 Xcode 解析 Assets.xcassets 目录中的图标资源(尤其是 AppIcon)时出现问题有关。

解决方案:

删除 Assets.xcassets 目录,重新打开 Xcode 项目。


网站公告

今日签到

点亮在社区的每一天
去签到