Mac系统,Qt工程转xcode工程,打包pkg

Posted 十一的杂文录

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac系统,Qt工程转xcode工程,打包pkg相关的知识,希望对你有一定的参考价值。

序言:

  程序使用Qt开发,程序主要功能是调用摄像头。需要打包成pkg给到用户安装,打包用到的是xcode。

 

实际操作:

一、Qt工程转xcode工程

// 打开终端,cd到项目根目录(CamScan.pro目录),使用qmake生成xcode工程文件(CamScan.xcodeproj)

cd /Users/yangHu/Desktop/CamScan/CamScan
/Users/App/Qt5.12.12/5.12.12/clang_64/bin/qmake CamScan.pro -spec macx-xcode

 

 

二、使用xcode对工程进行设置

// 1.双击[CamScan.xcodeproj],打开XCode
// 2.点击[General],点击[Identity],设置软件信息

App Category          // 根据自己软件类型来选择,我的是 Photography
Bundle Identifier     // com.公司名称.软件名称,我的是 com.eloam.CamScan
Version               // 软件版本号,我的是 1.0
Build                 // 上架版本号,上架一次需要加一,我的是 1.0
// 部署信息,Deployment Info
Deployment Target        // 最低版本,我的是 10.12

 

 

// 软件图标,App Icons
// 1.Soure,点击[Use Asset Catalog],弹出的窗口,点击[Migrate]
// 2.此时在选择框的后面会出现向右的箭头,要是没有出现箭头,请重启XCode
// 3.点击向右的箭头,将准备好的图标文件拖放到对应的位置
// 4.点击[Build],就可以看到生成的app是带有图标的了

*:图标文件的格式为png图片
*:图片大小分别是:16*16,32*32,64*64,128*128,256*256,512*512,1024*1024
*:如果没有所有规格的图片也没关系,我的只上传了16~128的图片,正常使用,就是图标会有点模糊

 

 

// 一般信息,[General] [Info]
// 我的项目需要用到摄像头,摄像头是需要权限的,所以要添加摄像头权限
// 在 [Custom macOS Application Target Properties] 中点击 [Add Row],选择一个带 Camera 的选项

*:如果这里没有添加,也没关系,可以直接在 app 的包里面的 Info.plist 文件中添加
*:找到app,点击鼠标右键,显示包内容,就可以看到 Info.plist 文件,双击打开,[Add Row],选择[Privacy - Camera Usage Description]

 

 

// 签名和功能,[General] [Signing & Capabilities]

// 签名 [Signing]
// 1.勾选 Automatically manage signing
// 2.Team,我的是:Shenzhen Eloam Technology Co., Ltd
// 3.Bundle Identifier,我的是:com.eloam.CamScan
// 4.Provisioning Profile,我的是:None Required
// 5.Signing Certificate,我的是:Development

// 功能
// 1. 点击[Capability],双击[App Sandbox]
// 2. [Hardware],勾选[Camera] [USB]
// 3. [File Access] [User Selected File],设置成:Read/Write

 

 

三、编译

// 1.编译,在XCode标题栏,点击[Product],点击[Archive]
*:Archive生成的包,名称叫:CamScan 2023-4-7,10.27 AM xxx
*:生成的文件一般保存在:/User/yH/Library/Developer/Xcode/Archives

// 2.检查动态库和framework是否完全打包,没有的话需要添加
// 2.1 进入 CamScan 2023-4-7,10.27 AM xxx,找到 CamScan.app
// 2.2 /Users/App/Qt5.12.12/5.12.12/clang_64/bin/macdeployqt CamScan.app
// 2.3 检查 CamScan.app 是否可以运行,要是没有权限,就是需要签名

 

四、签名

// 需要先对包里面的文件签名,然后在对包签名
// 点击[CamScan.app],显示包内容,使用终端签名
codesign --options=runtime -f -s "证书Info" --timestamp=none *.framework
codesign --options=runtime -f -s "证书Info" --timestamp=none *.dylib
codesign --options=runtime -f -s "证书Info" --timestamp=none */*.dylib

*:注意签名命令中证书名证的空格

// 对包签名
// 先在XCode工程目录中将,CamScan.entitlements 拷贝到 CamScan.app 文件夹,在签名app
codesign --options=runtime -f -s "证书Info" --timestamp --entitlements CamScan.entitlements CamScan.app

然后双击就可以正常使用app了

主要是对 FrameWorks  和 Plugins 文件夹里面的文件签名

 

 

 

五、打包发布

productbuild --component CamScan.app /Applications -s "证书Info" --timestamp=none CamScan_Sign.pkg
productsign --sign "证书Info" --timestamp CamScan_Sign.pkg ./CamScan.pkg

*:打包的证书名称和签名的证书名称是不一样的

 

CamScan.pkg 就是最终的安装包,可以直接给到用户安装了。

Mac真心不好玩,主要还是技术能力不够。

 

4-QT的程序打包发布(将QT5的工程项目打包成一个exe程序)

https://blog.csdn.net/windsnow1/article/details/78004265 

最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了。
首先,先介绍自己使用的环境。我使用的QT版本是。我的电脑windows系统是win10专业版的。下面的打包教程,都是亲测可用的。但个人认为,即便是不同的windows操作系统,不同的QT版本,也应该是可以的。希望大家能及时反馈,我好及时更新。
第二,介绍一下我所使用的打包工具。一个是QT5自带的windeployqt(这个大家不需要下载安装),另外一个是Engima Virtual Box,这是下载链接Engima Virtual Box,软件图标如下:

做好这些准备工作之后,操作步骤如下:
<1>: 打开一个QT程序,以release方式运行一次。操作如下图:

 


这时你的工程项目文件夹下,会生成一个关于release的文件夹:

<2>:打开关于release相关的文件夹,找到该目录下release目录下的.exe程序。此时你点击是运行不成功的。因为缺少QT必要的库文件。将这个.exe文件拷贝出来,创建一个单独的文件夹,放在这个文件夹下。


<3>:在win10下,搜索QT,如下图:

打开红色标记的命令窗口 :

 



其实在QT目录下是可以找到这个目录的。

接着输入命令行,cd /d 路径(指的是需要打包的exe程序目录,就是刚才拷贝出来的exe程序所在的目录),回车后:

输入如下命令行:windeployqt  程序名 (你刚刚拷过来的那个文件的名字) 敲击回车。这一步操作是将所需的库文件全都拷贝到exe程序的当前文件:

这时我们看程序目录如下:

此时,在当前目录下是可以点击运行exe程序的,说明库文件都已经拷贝到当前目录下了。现在只需要将这一堆文件进行打包。

到这里引进可以连同整个文件夹一起发给别人了

 

<4>打开运行Enigma Virtual Box:

按照上图的示意,添加路径和文件如下图。文件可以托选,选择所有文件后,直接拖入界面框内。注意是要所有文件和文件夹全部拖进。示意图如下:

在【Files Options】中可以选择是否将文件压缩:

然后点击Process开始打包。


打包完成后,我们的工作就完成了,去程序打包后的路径点击运行吧。

以上是关于Mac系统,Qt工程转xcode工程,打包pkg的主要内容,如果未能解决你的问题,请参考以下文章

Qt工程打包发布

unity windows如何打包ios

UE4打包失败求助!!!

Qt Creator创建Python界面工程并打包为可执行exe文件

Qt工程转换成VS工程   VS 工程转QT creator

Xcode 8 打包发布流程