• 欢迎访问1024小神,一个只会Python的程序猿不是一个好司机
  • 有什么想对我说的可以在留言板里给我留言哦~
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏1024小神吧

Mac环境下QT打包成pkg

C other 1024小神 1年前 (2020-08-30) 229次浏览 1个评论

1,使用QC编辑器生成.app文件:

 

 

点击构建项目,会生成这个qt_test文件(尾缀为.app,一般是不显示尾缀,是看不到的)

2,使用macdeployqt这个程序把依赖包打入.app中:

 

命令行命令:

前边是macdeployqt程序,后边是QC生成的几百K的.app文件。

zdeMacBook-Pro:~ z$ /Users/z/Qt5.14.1/5.14.1/clang_64/bin/macdeployqt /Users/z/qt/build-qt_test-Desktop_Qt_5_14_1_clang_64bit-Release/qt_test.app

 

然后你会发现之前的.app文件变成了好几十M大小的文件,如下图:

 

这个截图说明,这个.app文件就是直接可以在本机双击打开了。接下来要更改这个应用的名字,鼠标右击这个好几十M的.app名字,选择显示包内容,打开Contents文件夹下面的info.plist文件(如果本机安装了Xcode,那可以直接打开,如果没安装则使用文本编辑器打开就行):

 

 

 

 

最后这个文件是这个样子的:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleExecutable</key>
    <string>硬件连接器</string>
    <key>CFBundleIconFile</key>
    <string>ironman.icns</string>
    <key>CFBundleIdentifier</key>
    <string>123123com.mk.qt-test</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>LSMinimumSystemVersion</key>
    <string>10.13</string>
    <key>NOTE</key>
    <string>This file was generated by Qt/QMake.</string>
    <key>NSPrincipalClass</key>
    <string>NSApplication</string>
    <key>NSSupportsAutomaticGraphicsSwitching</key>
    <true/>
    <key>CFBundleDisplayName</key>
    <string>硬件连接器</string>
    <key>CFBundleName</key>
    <string>硬件连接器</string>
</dict>
</plist>

3,应用中增加图标:

 

 

在生成完毕的几十M的.app文件中–>显示包内容–>把图标拷贝到Resources文件夹中,并在info.plist文件中修改条目参数:

<string>ironman.icns</string>

 

刷新文件夹,或者稍等一辆分钟,会发现应用的图标从默认变为设置的图标:

4,签名.app文件:

登录开发者平台   https://developer.apple.com/

 

 

 

 

 

 

 

 

按照操作步骤得到两个密钥:

上面两个密钥用钥匙串工具打开,能够看见名称:

 

双引号中放入密钥的名称,运行签名命令。

codesign --deep --force --verbose --sign "<identity>" Application.app

检查密钥命令:

 codesign -dvvv qt_test.app

打包.pkg文件:

productbuild --component qt_test.app /Applications/ --sign "Developer ID Installer: 公司英文名. (H94V*****)" --product qt_test.app/Contents/Info.plist qt_test.pkg

上面的命令行解释:

productbuild 生成pkg文件的命令
--component 后面根着要打包的.app(已经签名)的路径
/Applications/  表示安装目录
--sign 表示使用 Developer ID Installer这个签名文件进行签名
--product  后面根哪个.plist文件
qt_test.pkg 这个是生成的pkg文件的输出路径

生成完的pkg文件使用命令行安装一下,这样能看到安装过程中发生了什么,尤其是安装位置
sudo installer -store -pkg qt_test.pkg -target /


如有失效,请留言告知丨转载请注明原文链接:Mac环境下QT打包成pkg
点赞 (0)

您必须 登录 才能发表评论!

(1)个小伙伴在吐槽
  1. l107868382
    1024!加油
    2020-11-30 10:06