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

2023-05-10 15:24:15 来源:博客园


(资料图片仅供参考)

序言:

程序使用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          // 根据自己软件类型来选择,我的是 PhotographyBundle Identifier     // com.公司名称.软件名称,我的是 com.eloam.CamScanVersion               // 软件版本号,我的是 1.0Build                 // 上架版本号,上架一次需要加一,我的是 1.0
// 部署信息,Deployment InfoDeployment 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 *.frameworkcodesign --options=runtime -f -s "证书Info" --timestamp=none *.dylibcodesign --options=runtime -f -s "证书Info" --timestamp=none */*.dylib*:注意签名命令中证书名证的空格// 对包签名// 先在XCode工程目录中将,CamScan.entitlements 拷贝到 CamScan.app 文件夹,在签名appcodesign --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.pkgproductsign --sign "证书Info" --timestamp CamScan_Sign.pkg ./CamScan.pkg*:打包的证书名称和签名的证书名称是不一样的

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

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

编辑:

最近更新

每日推荐

上市公司分红散户能分到吗?上

上市公司分红散户能分到吗?散户购买股票,也能得到分红。股票分红...

居民医疗缴费怎么交?城乡居民

居民医疗缴费怎么交?在指定地点缴费:比如可在户籍所在地村委会交...

主力建仓意味着什么?主力建仓

主力建仓意味着什么?主力建仓是指主力开始在某一个价位买进股票等...

社会养老保险有几种险?个人和

社会养老保险有几种险?养老保险的种类有城镇职工养老保险、城乡居...

人民币贬值如何理财?人民币贬

人民币贬值如何理财?众所周知,疫情以来美联储大幅降息,将美联储...

栏目排行