我正在尝试使用macdeployqt部署应用程序。所有Qt框架都已正确复制到应用程序 bundle 中。我遇到的问题是macdeployqt对最初位于/usr/local/lib的复制框架没有写权限。这是因为我已经使用 Homebrew 软件安装了qt,这似乎使安装所有内容均为只读。我的问题是,是否有更好的方法来解决此问题,然后手动更改/usr/local/lib中的qt库的所有权限,以便可以在qt .pro项目中使用macdeployqt。 (我不想与sudo等手动使用macdeployqt)

我问的原因是因为我在项目中使用了许多第三方库(它们可以被复制等),因此我需要经常通过 Homebrew 程序进行更新,因此必须重做对它们进行更改的权限。

提前致谢!

最佳答案

以防万一有人找到此旧帖子以查找有关macdeployqt的信息:

与在.pro文件中编写macdeployqt命令的脚本相比,使用脚本执行macdeployqt的优先级更高。这样一来,您就可以即时更改文件的权限。

这是我为其中一个应用程序使用的脚本的[代码段]:

https://bugreports.qt-project.org/browse/QTBUG-23268

如果您使用的是Windows,并且没有bash,则可以使用perl或python。上面引用的脚本可以动态修改文件以解决错误-您可以在此处放置任何内容,包括更改文件的权限。

使用脚本还意味着您可以灵活地在以后添加命令来进行代码签名,打包或其他所需的操作。

Qt .pro“脚本语言”实际上是在幕后生成Makefile命令,如果要完成与路径和文件集有关的部署任务,可能会很晦涩。

另外,您还需要创建一个额外的目标或将其包含在构建目标中-两种方式都会使构建过程变得更加复杂且更容易出错。

免责声明:我在Qt工作了8年,担任诺基亚/奇趣科技的高级工程师,并且还发布了使用Qt的商业跨平台应用程序。

09-26 21:38