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-
相关产品推荐
相关产品推荐

