You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi 12.1+iOS SDK17编译报错:libcache.dylib找不到求助

iOS 17 SDK编译Delphi应用链接错误解决指南

环境配置

  • Delphi 12.1
  • iOS SDK 17(App Store新应用必填)
  • Xcode 15.0.1
  • Arm架构Mac OS 14.5

问题描述

编译iOS真机目标时触发链接错误:

[DCC Error] E2597 ld: warning: directory not found for option '-FC:\Users\franz\Documents\Embarcadero\Studio\SDKs\iPhoneOS17.0.sdk\System\Library\PrivateFrameworks'
  ld: file not found: /System/Library/PrivateFrameworks/AVFCapture.framework/AVFCapture for architecture arm64

模拟器模式可正常运行,手动将Mac端/System/Library/PrivateFrameworks复制到Windows端SDK目录后,出现新错误:

[DCC Error] E2597 ld: file not found: /usr/lib/system/libcache.dylib for architecture arm64

此前使用iOS 16 SDK可正常编译,但App Store拒绝该版本框架的新应用,已清理缓存、删除Windows端SDK目录重新导入,问题未解决。

解决步骤

1. 恢复SDK原始状态

立即删除手动复制到Windows端SDK目录下的PrivateFrameworks文件夹——iOS 17私有框架的权限和依赖结构与iOS 16差异较大,手动复制会打乱链接器的路径解析逻辑,引发更多问题。

2. 重新同步iOS 17 SDK

  • 打开Mac端Xcode 15.0.1,进入Xcode > 设置 > 平台,确认iOS 17 SDK已完整安装。
  • 在Windows端Delphi中,打开工具 > 选项 > 部署 > SDK管理器,删除已存在的iPhoneOS17.0.sdk。
  • 重新连接Mac编译服务器,点击刷新按钮,让Delphi自动从Mac端同步iOS 17 SDK,全程确保无同步报错。

3. 调整项目框架依赖

  • 打开项目选项,进入部署 > iOS设备,查看框架与库列表,移除对AVFCapture.framework的直接引用(该框架为私有框架,Delphi应通过公共Capture框架间接调用)。
  • 检查项目中使用的第三方组件,确保其版本适配iOS 17 SDK——部分旧组件可能硬编码了iOS 16的私有框架路径,需更新至最新兼容版本。

4. 修复libcache.dylib缺失问题

iOS 17中libcache.dylib已合并至libsystem_cache.dylib,但Delphi链接器仍在引用旧路径,可通过以下方式解决:

  • 在Delphi项目选项的链接器 > 附加选项中,添加-lobjc参数,引导链接器正确解析系统库依赖。
  • 若上述方法无效,在Mac端执行命令创建软链接:
    sudo ln -s /usr/lib/system/libsystem_cache.dylib /usr/lib/system/libcache.dylib
    
    完成后重新同步SDK到Windows端。

5. 深度清理编译缓存

除常规清理外,删除以下缓存目录:

  • Windows端:C:\Users\franz\AppData\Local\Embarcadero\Studio\23.0\Cache
  • Mac端编译服务器:/Users/<你的Mac用户名>/Library/Caches/Embarcadero/BuildServer
    清理完成后重启Delphi和Mac编译服务器,重新编译项目。

内容的提问来源于stack exchange,提问作者Franz Andreani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 22:35:16