我编写了一个需要访问大量资源的应用程序。
我有一个与我的 .pro 文件处于同一级别的文件夹,其中包含包含资源的其他文件夹:
Project Directory
app.pro
Resources
ResourceDirA
ResourceA0.png
ResourceA1.png
...
ResourceDirB
ResourceB0.png
ResourceB1.png
...
...
在我的 .pro 文件中,我有代码
macx {
resources.files = "Resources"
resources.path = Contents/Resources
QMAKE_BUNDLE_DATA += resources
}
当我删除构建目录并重建时,这工作正常。但是当我已经构建并将一个文件添加到子目录之一(ResourceA2.png 或其他)并重建时,新文件不会传输到应用程序包。
有没有一种方法可以确保检查和更新新文件,或者至少有一种方法可以在我每次构建项目时强制重建整个包?
最佳答案
您的问题是由于 qmake + make 组合中存在的固有限制,应该可以通过 qbs 解决。如果有的话。
这是它的工作原理:
qmake扫描
Resources
目录并在Makefile中生成复制 Action将 Makefile 中列出的文件复制到应用程序包
您需要按顺序同时运行 qmake 和 make,以找到新文件并将它们复制过来。
没有什么可以放在 Makefile 中,除了一个特殊的脚本,它可以检测 Resources
文件夹中的变化并强制重新运行 quake。显然,Makefile 中的操作不是复制整个文件夹,而是复制单个文件,或者,如果当前已知的任何文件已过期,则可能会复制该文件夹。无论哪种情况,新文件都会被 make 忽略。
关于macos - 如何在 qmake 中强制更新 OSX 应用程序包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20838639/