首页 > 其他分享 >MacOS - Qt工程转xcode工程

MacOS - Qt工程转xcode工程

时间:2023-12-15 10:12:13浏览次数:31  
标签:Info MacOS Qt -- xcode 点击 CamScan app 签名

序言:

  程序使用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真心不好玩,主要还是技术能力不够。

 

原文转自:Mac系统,Qt工程转xcode工程,打包pkg - 十一的杂文录 - 博客园 (cnblogs.com)

标签:Info,MacOS,Qt,--,xcode,点击,CamScan,app,签名
From: https://www.cnblogs.com/zhuchunlin/p/17902760.html

相关文章

  • MacOS-“System Information”这个App用做USB设备的检测与设备文件的确定
    “SystemInformation”这个Apple自带的GUI小App是检测USB硬件的;如图所示;而Linux上是lsusb与lspci这类commandline的command;找到USB硬件的设备信息,需要与设备文件映射,怎么找?`bash-3.2#ls/dev/tty*|sort>sys.txt#连接USB硬件前bash-3.2#ls/dev/tt......
  • 浅谈Qt信号槽的实现原理
    背景:1、使用信号槽,需要先“Q_OBJECT”2、通过connect函数进行信号槽绑定3、通过emitsignal()发送信号原理:1、Q_OBJECT是一个预编译命令,可生成很多函数、变量。生成存储Connection对象的列表。2、connect函数需要四个信息:信号发送者、信号、接受者、槽函数connect函数生成......
  • Qt之modbus_slave例程的底层串口数据分析
    一.参考网址1. qCDebug输出到日志文件2. HowtoredirectqDebug,qWarning,qCriticaletcoutput?二.问题1. 如何查看slave底层收到的主机发送的消息和回复的消息?解决办法:在main.cpp代码中取消注释 注:QLoggingCategory::setFilterRules函数不能重复使用,其只能最后......
  • C++ Qt开发:ComboBox下拉组合框组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍ComboBox下拉组合框组件的常用方法及灵活运用。在Qt中,ComboBox(组合框)是一种常用的用户界面控件,它......
  • Qt/C++视频监控安卓版/多通道显示视频画面/录像存储/视频播放安卓版/ffmpeg安卓
    一、前言随着监控行业的发展,越来越多的用户场景是需要在手机上查看监控,而之前主要的监控系统都是在PC端,毕竟PC端屏幕大,能够看到的画面多,解码性能也强劲。早期的手机估计性能弱鸡,而现在的手机性能不是一般的牛,甚至超越了PC机的性能,所以手机上查看多路监控也就有了硬件基础前提。对......
  • 使用QSS美化qt界面
    Qt官方文档详细讲述了QSS文件的编辑格式和编辑方法:样式表语法|Qt4.8版本而询问chatGPT也可以得到如下示例(参照官方文档进行了修改):/*注释:这是QSS文件的注释*/QWidget{background:gray/*设置所有QWidget的背景颜色*/color:#333;/*设置文字颜色*/fo......
  • 使用Python和Qt6(PySide6)创建GUI应用1简介
    1简介在本书从GUI开发的基本原理逐步过渡到使用PySide6创建您自己的、功能齐全的桌面应用程序。1.1GUI简史图形用户界面(GUIGraphicalUserInterface)历史悠久,可追溯到20世纪60年代。斯坦福大学的NLS(ON-Line系统引入了鼠标和窗口概念,并于1968年首次公开展示。随后,施乐公司......
  • C++ Qt开发:Slider滑块条组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍Slider滑块条组件的常用方法及灵活运用。当涉及到C++Qt开发中的Slider滑块条组件时,你可能会用到......
  • 基于PyQt和websocket,制作一个简单的BiliBili弹幕机(大体思路)
    前言从B站上获取直播弹幕的方式大体有两种,一种是通过调用下面这个接口,通过轮询获取importrequestsroom_id=123456#示例url='https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory'headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64......
  • C++ Qt开发:CheckBox多选框组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍CheckBox单行输入框组件的常用方法及灵活运用。QCheckBox是Qt中用于实现复选框的组件,它提供了......