返回

技术指南:解决 dyld: Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib 错误

IOS

解决 Xcode 14 调试 iOS 11.x 和 12.x 真机设备时遇到的 "dyld: Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib" 错误

问题:找不到 libswiftCoreGraphics.dylib 库

在将 Xcode 升级到 14 之后,一些开发者在调试运行 iOS 11.x 和 12.x 固件的真机设备时遇到了 "dyld: Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib" 错误。此错误表示无法在应用程序加载时找到名为 libswiftCoreGraphics.dylib 的库。

原因:库位置变更

升级到 Xcode 14 后,Xcode 将 libswiftCoreGraphics.dylib 库从 /usr/lib/ 目录移动到了 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/ 目录。这导致应用程序在调试旧固件时无法找到该库。

解决方案:手动复制库

为了解决此错误,需要将 libswiftCoreGraphics.dylib 库手动复制回 /usr/lib/ 目录。以下是如何操作:

  1. 打开终端 :在 Mac 上打开终端应用程序。

  2. 切换到超级用户模式 :在终端中键入 sudo su 并按 Enter 键。系统会提示您输入管理员密码。

  3. 复制库 :导航到 Xcode.app 的 Toolchains 目录并复制 libswiftCoreGraphics.dylib 库。键入以下命令并按 Enter 键:

cp -R /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libswiftCoreGraphics.dylib /usr/lib/
  1. 退出超级用户模式 :键入 exit 以退出超级用户模式。

  2. 重新启动 Xcode :重新启动 Xcode 以使更改生效。

验证:再次调试

重新启动 Xcode 后,再次调试 iOS 11.x 或 12.x 真机设备。如果问题已解决,应用程序应能够正常运行,而不会出现 "dyld: Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib" 错误。

常见问题解答

  • 为什么我会遇到此错误?
    原因是 libswiftCoreGraphics.dylib 库的位置在 Xcode 14 中发生了变化,这导致应用程序在调试较旧固件时无法找到该库。

  • 如何确定此错误是否与 libswiftCoreGraphics.dylib 库有关?
    在终端中运行以下命令:otool -L path/to/my_app.app/my_app。如果输出中没有显示 libswiftCoreGraphics.dylib 库,则表示此错误与该库有关。

  • 是否可以永久修复此错误?
    是的,您可以通过编辑 Xcode 的配置文件来永久修复此错误。具体步骤如下:

    1. 打开终端并键入以下命令:open /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/configuration.xcconfig
    2. 在打开的文件中,添加以下行:```
      SUPPORTED_PLATFORMS = iphoneos, iphoneos-simulator
    3. 保存文件并退出 Xcode。
    
    
  • 此错误会影响哪些设备?
    此错误会影响调试运行 iOS 11.x 和 12.x 固件的真机设备。

  • 此错误是否会影响模拟器?
    不会,此错误只影响真机设备,不影响模拟器。