简介: qt项目在MacOS平台上面发布成可执行程序.app,或是免安装的绿色版本、亦或者安装形式的安装包。

[TOC]


本文初发于 “偕臧的小站“,同步转载于此。


简述:

qt项目在MacOS平台上面发布成可执行程序.app,或是免安装的绿色版本、亦或者安装形式的安装包。亲测有效。测试项目参见 QT5/C++项目:基于QT的跨平台网络对战象棋

实现了QT5的项目在windows、Linux、MacOS、Android平台的发布


该博文系列:


开发平台环境:

  💻: MacOS 10.14.6 📎 Qt 5.12.8 📎 gcc/g++ 9.2 📎 gdb8.3


项目在MacOS平台发布:

新的方法(2020-05-22):

前提: 进入 /Users/xmuli/Qt5.12.8/5.12.8/clang_64/bin 路径下

  • 打包为 *.app 格式: ./macdeployqt /Users/xmuli/project/github/build-ChineseChess-Desktop_Qt_5_12_8_clang_64bit-Release/ChineseChess.app
  • 打包为 *.dmg 格式: ./macdeployqt /Users/xmuli/project/github/build-ChineseChess-Desktop_Qt_5_12_8_clang_64bit-Release/ChineseChess.app -dmg

旧的方法(2019-02-10):

(1)同样子,在MacOSQt Creator里面编译运行Release版本的ChineseChess项目。

(2)打开build-ChineseChess-Desktop_Qt_5_9_7_clang_64bit-Release文件夹。进到该目录,会看到有一个ChineseChess.app。这个并不是文件,而是一个目录,只是OS X系统看到某个目录的扩展名是app,就会将其认为是Bundle目录,所以双击会直接执行(当必须要是真正的Bundle)。

在这里插入图片描述

(3)使用QT提供了一个非常方便的打包工具macdeployqt,该文件位于如下目录
/Users/yuanyi/Qt5.9.7/5.9.7/clang_64/bin,可以将这个目录加入到PATH环境变量中。这里有点复杂,(需要注意的是,UnixMacOS就是其中一种】及类Unix系统里,每行结尾只有换行“\n”Windows系统里面,每行结尾是换行+回车“\n\r”)。当在终端里面,将上面目录路径添加到PATH之后。输入一下命令在终端。

:set ff=unix #转换为unix格式
:wq #保存、退出
方可保存和退出成功。

(4)现在只需要执行如下的命令,系统就会自动该着Bundle,把相关的文件和目录都放到Bundle中的相关位置。命令语句如下:

macdeployqt ChineseChess.app

(5)处理完后,Bundle的目录结构发生改变,很明显,macdeployqt命令将相关文件和目录都放到了Bundle中。现在将这个处理完的ChineseChess.app复制到任何OS X系统上都可以运行了,无论安装没安装QT,都可以运行

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


下载/系列地址:

QtExamples

打包体验程序,下载地址: chinessChess

欢迎 star 和 fork 这个系列的 Qt / DTK 学习,附学习进阶的路线图。


本次心得总结:

将该部分从从之前的一篇之前的 QT5/C++项目:基于QT的跨平台网络对战象棋 原创文章之中,分离开来,感觉还是比较有用一篇文章。