IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> [原创]macOS App“证书““签名“配置教程-2022年版本. -> 正文阅读

[开发工具][原创]macOS App“证书““签名“配置教程-2022年版本.

[简介]
常用网名: 猪头三
出生日期: 1981.XX.XX
个人网站: https://www.x86asm.org
QQ交流: 643439947
编程生涯: 2001年~至今[共20年]
职业生涯: 18年
开发语言: C/C++、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python
开发工具: Visual Studio、Delphi、XCode、Eclipse
技能种类: 逆向 驱动 磁盘 文件
研发领域: Windows应用软件安全/Windows系统内核安全/Windows系统磁盘数据安全
项目经历: 磁盘性能优化/文件系统数据恢复/文件信息采集/敏感文件监测跟踪/网络安全检测

[序言]
今日开始要更新macOS平台的旧App, 距离上次更新有2年时间了, 也就意味着我有2年没有碰macOS开发. 但今年必须要完成macOS平台上的旧App更新. 首先要解决最棘手的问题就是"沙盒" "公证" "证书" "签名"这4个概念的内在联系. 通过前几天摸索, 旧App依然可以在最新版本的macOS系统非沙盒模式运行稳定. 那么剩下就是解决"签名"的问题. 另外"公证"很简单, 这里不详细描述, 这里主要记录最新版xcode下的"证书"和"签名"的配置流程, 以防以后忘记.

[生成证书]
1> 进入xcode->Preferences->accounts, 点击左下角的"+"号, 登入你的developer账号, 然后界面会自动列出跟开发账号相关Team信息.
2> 选中Team, 然后单击右下角的"Manage Certificates..."按钮, 弹出证书管理界面
3> 在证书管理界面里面, 点击左下角的"+", 选中"Developer ID Application", 然后就会自动生成证书了.
通过这3个步骤, 本机macOS会有相应的证书生成, 可以通过macOS系统自带的"钥匙串访问"工具查看. 此时也可通过apple开发者网站登陆进去, 在证书面板也会出现对应的证书文件, 该证书是可以下载的.
注意: 后台会显示很多个证书, 一定要区分和牢记, 哪个证书实在哪个macOS电脑生成的. 这里吐槽一下, 证书没有任何信息可以显示是哪个电脑生成, 只能通过查看证书的生成时间, 通过生成时间, 在配合你本人的记忆, 才能区分证书是哪台机器.?

[生成签名文件]
假设你要签名一个App并分发出去, 例如你的App id是: com.areyouok.ok, 那么你需要在apple开发者网站里面配置相应的Identifiers和Profiles
1> 用developer账号登陆到https://developer.apple.com后台
2> 进入Identifiers面板, 创建一个名为com.areyouok.ok的id配置内容, 并选中相应你在[生成证书]步骤生成的那个证书.
3> 进入Profiles面板,会自动显示com.areyouok.ok的Profiles配置, 你可以下载, 也可以进入进行edit并为com.areyouok.ok的Profiles配置属于你自己本机的证书. 即你在[生成证书]步骤生产的那个证书.

[给代码进行签名]
配置好Profiles之后, 即可下载, 然后启动xcode打开com.areyouok.ok项目或者新建一个id为com.areyouok.ok的项目, 进入项目的TARGETS->Signing&Capabilities, 去掉Automatically manage signing, 然后通过手工配置Team, id, 并导入下载好的Profiles文件, 这时Signing Certificate就能自动识别了. 此时该项目可以自动进行代码"签名", "公证", 并进行"分发". ??

[故障解决]
1> 如果你的项目出现类似No signing certificate "Developer ID Application" found的问题.
原因: 是你的Profiles文件, 没有正确选对属于当前macOS电脑生成的证书文件.
解决: 登陆https://developer.apple.com后台, 重新配置Profiles并选对正确的certificate文件. 如果确定你的电脑和https://developer.apple.com后台都没有当前电脑的证书, 那么可以通过上面步骤重新生成证书并重新配置Profiles, 保证100%可以重新签名.

2> 如果你的证书出现missing private key的问题.
原因: 是你的证书里面的private key丢失了, 一般是自己误删除(比如我自己, 通过macOS系统自带的"钥匙串访问"工具把所有项目证书都全部删除了.), 还有一种情况是当前你使用的证书不是你电脑上生成的, 是别人电脑上生成的.
解决: 如果是你自己把private key弄丢了, 那么只能通过上面步骤重新生成证书并重新配置Profiles, 保证100%可以重新签名. 如果确认证书是别人的, 然后又想正常使用, 那么需要弄清楚该证书是在哪台电脑上生成的, 然后就去那台电脑上通过"钥匙串访问"工具, 导出私钥(p12文件), 然后在导入到你自己的电脑上.

[一些细节问题]
一个证书可以绑定不同的App id并进行"签名" "公证" "分发".

[总结]
macOS平台下的所谓"沙盒" "公证" "证书" "签名", 非常不人性化, 总之不好用.

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 16:35:43  更:2022-03-03 16:38:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:46:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码