如何在qmake中强制更新OSX应用程序包?

时间:2013-12-30 11:30:38

标签: macos qt

我编写了一个需要访问大量资源的应用程序。

我的.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或其他)并重建时,新文件不会传输到应用程序包。

有没有办法确保检查和更新新文件,或者至少有一种方法可以在每次构建项目时强制重建整个包?

1 个答案:

答案 0 :(得分:1)

您的问题是由于qmake + make组合中存在固有限制,如果有的话,它应该可以与qbs解决。

以下是它的工作原理:

  1. qmake扫描Resources目录并在Makefile中生成复制操作

  2. 将Makefile中列出的副本文件复制到应用程序包

  3. 您需要按顺序运行qmake和make,以查找新文件并将其复制到

    没有任何东西可以放在Makefile中,缺少特殊脚本,可以检测Resources文件夹中的更改并强制重新运行地震。显然,Makefile中的操作不是复制整个文件夹,而是仅复制单个文件,或者,如果任何当前已知的文件已过期,则可能复制该文件夹。在任何一种情况下,make都会忽略新文件。