macos - qmake 可以在链接之前删除以前构建的应用程序包吗?
问题描述
我正在使用qmake
构建 macOS 应用程序,对于我的发布版本,我正在运行它macdeployqt
,然后将应用程序代码签名作为发布链接步骤(使用QMAKE_POST_LINK
)。
但是,如果之前构建的构建目录中已经存在一个应用程序包,那么macdeployqt
再次运行它会产生警告,有时还会产生错误,例如项目的依赖关系发生变化时。此外,qmake
它还不够聪明,无法检测到应用程序包中包含的文件何时已更改或不再需要,例如复制到其Resources
文件夹中的文件。
因此,如果应用程序包存在,我想qmake
在构建开始时删除它,但保留其他构建工件(如目标文件),这样我就不必每次都进行完整构建。
到目前为止,我已经尝试通过QMAKE_PRE_LINK
将其设置为来删除应用程序rm -rf $${TARGET}.app
,但显然它不会等待此变量中的命令在组装应用程序包之前完成执行,因此使用它删除以前构建的应用程序包将导致由于文件被意外删除,链接失败。
我也尝试过这个问题中提到的方法,但由于完全相同的原因失败了——我定义的目标将与所有其他目标同时运行,并且在qmake
尝试组装应用程序包时会删除文件。
有没有办法做到这一点?
解决方案
推荐阅读
- javascript - JavaScript 文件 net::ERR_ABORTED 404(未找到)
- alfresco - 以编程方式发布到 Alfresco 任务
- r - 这个for循环可以向量化吗
- angular - Angular Nebular Chat 仅适用于一个模块和组件
- javascript - reactjs popover 组件 - 推送属性/事件处理
- ios - UIKit 实时预览,如 swiftUI
- python - 如何创建一个为问答游戏重置的计时器?
- itext - Itext 7 SplitByOutlines - 最终文档保持打开状态且无法关闭
- python - 如何打印具有不同函数名称的函数
- c++ - 使用 CMake 和 CLion 链接库失败,退出状态为 1