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

Qt Quick iOS应用集成自定义.framework运行崩溃:如何复制框架?

Qt Quick iOS 集成自定义.framework 打包问题解决方案

核心问题

编译通过但运行时崩溃,报错dyld: Library not loaded: @rpath/SharedMobileLib.framework/SharedMobileLib,本质是自定义框架未被复制到应用Bundle中,或rpath路径配置错误。

解决步骤

1. 在.pro文件中添加框架复制规则

将自定义框架复制到应用Bundle的Frameworks目录,在.pro中追加以下配置:

# 指定你的.framework所在路径
FRAMEWORK_SOURCE = path/to/framework/SharedMobileLib.framework
# 定义复制任务
ios_copy_framework.target = $$DESTDIR/$$TARGET.app/Frameworks/SharedMobileLib.framework
ios_copy_framework.depends = $$FRAMEWORK_SOURCE
ios_copy_framework.commands = cp -Rf $$FRAMEWORK_SOURCE $$DESTDIR/$$TARGET.app/Frameworks/
# 注册任务到构建流程
QMAKE_EXTRA_TARGETS += ios_copy_framework
POST_TARGETDEPS += ios_copy_framework

2. 配置rpath与嵌入标识

确保应用能正确找到框架,同时告诉Xcode要嵌入该框架,继续在.pro中添加:

# 设置rpath指向Bundle内的Frameworks目录
QMAKE_LFLAGS += -Wl,-rpath,@executable_path/Frameworks
# 让Qt自动配置Xcode的Embed Frameworks阶段
QMAKE_IOS_EMBED_FRAMEWORKS += $$FRAMEWORK_SOURCE

3. 手动验证Xcode配置(可选)

如果上述qmake配置未生效,打开Qt生成的Xcode项目,检查以下项:

  • 进入Build Phases,确认SharedMobileLib.framework在Embed Frameworks列表中,Destination设为Frameworks,勾选Code Sign On Copy
  • 确认Link Binary With Libraries中也包含该框架

验证方法

重新构建并部署到设备,应用启动后不再出现image not found错误即为配置成功。

内容的提问来源于stack exchange,提问作者cj-

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:55:14