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

iOS17下Delphi11编译App启动崩溃(DYLD库缺失)求助

解决Delphi 11 Alexandria FMX应用在iOS 17/Xcode 15.2下启动崩溃(DYLD库缺失)的方案

核心问题分析

从崩溃日志的DYLD错误来看,应用启动时尝试从/private/preboot/Cryptexes/OS加载框架,但该路径在iOS 17设备端并非有效文件路径,且硬化运行时(Hardened Runtime)禁止相对路径加载,直接导致启动失败。

可行修复步骤

  • 修正框架嵌入策略
    打开Xcode导入Delphi生成的iOS应用项目,进入Build Phases -> Embed Frameworks:

    • 确认JavaScriptCore、SafariServices、WebKit框架已添加
    • 将这三个框架的嵌入方式从Embed & Sign改为Do Not Embed(它们属于iOS系统框架,无需嵌入应用包)
    • 勾选Code Sign On Copy选项,确保签名正确
  • 重置Delphi iOS SDK配置

    1. 打开Delphi 11的Tools -> Options -> SDK Manager -> iOS Device 64-bit
    2. 删除手动添加的Cryptexes/OS/System/Library/Framework路径
    3. 重新关联Xcode 15.2的SDK,路径指向/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS17.2.sdk
    4. 点击Update Local File Cache完成缓存更新
  • 临时放宽硬化运行时限制(验证用)
    在Delphi项目选项的Deployment -> iOS -> Custom Info.plist Entries中添加:

    • 键:com.apple.security.cs.allow-relative-library-loads
    • 类型:Boolean
    • 值:YES
      重新编译部署,若应用能正常启动,再逐步关闭该选项并调整其他硬化策略
  • 检查并修正隐式依赖路径
    使用otool命令排查应用的依赖引用:

    otool -L /path/to/your/EasyConnect.app/EasyConnect
    

    若输出中存在指向Cryptexes的无效路径,在Delphi项目的Project -> Options -> Linking -> Additional linker options添加参数:

    -rpath /System/Library/Frameworks
    

内容的提问来源于stack exchange,提问作者Foxtrot Almeida

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 15:35:08