iOS 自动打包如何配置配置打包证书和profile provision文件

Jenkins 打包相关问题记录

打包失败截图:

1、证书找不到 NO certificate matching ‘ ‘ for ‘ ’ code singing is required ….

img

D791BAD1-390A-4587-A35C-A743A3D88D52.png

由于更新过证书配置,导致新证书没有导入到Jenkins中。

配置步骤:
Jenkins-系统管理-keychains and provisioning profiles managerment
以为 更新 login.keychain 就好了,其实并不然

img

25DE5B03-AC83-49FA-9677-4E828EBB570F.png

在升级至Mac 10.12 之后 login.keychain 的存储发生改变。
默认 10.12 的钥匙串存储为👇
路径: ~/Library/Keychains/login.keychain-db

img

A774CF07-6ACC-4A48-A079-0F66B0B8D6C1.png

而10.12之前版本 为

img

FE243165-275E-41C0-8F8C-8109AAE7DC7A.png

老版本 默认存在 login.keychain 中,而升级到10.12后会存在 login.keychain-db中。
这是第一个注意点。

重点:
由于Jenkins不支持上传文件后缀为 keychain-db的文件。
我们需要做的就是
1、copy ~/Library/Keychains/login.keychain-db
2、rename 为login.keychain
3、upload 至Jenkins keychains and provisioning profiles managerment
4 、done

在进行打包,这次应该可以了吧。
结果。。。

img

1.png

第二个错误: Command /usr/bin/codesign failed with exit code 1

Google了一圈,有要clean 工程的,有要获取login.keychain权限的。
最终还是发现在,权限问题上有问题,通过对比,通过xcode 打包,导出的时候发现,有个codesign过程。原来 Jenkins 会获取不到权限。

由于我们自动化打包使用全局配置,我也是醉了。找了半天。
最后在 Jenkins - 系统设置 - 系统配置

xcode 配置

img

6BD03989-FCD2-4B0C-A066-D7406FBAC0B9.png

根据项目情况,我们分为了开发,和生产,所以配置两个,根据证书名进行区分。

经过半天的折腾,终于可以再次打包。

前提:

1、执行以下操作的时候,确保你正确的安装并启动了jenkins,而且安装了插件Keychain and Provisioning Profiles Management
2、下边操作是建立在mac电脑,并安装了xcode环境
3、对苹果的证书要有一定的了解 > 苹果证书

ps: 如果没问题则进行以下操作

进入jenkins: 系统管理 > Keychain and Provisioning Profiles Management

一、上传login.keychain
ps: 这里有一个坑老版本 默认存在 login.keychain 中,而升级到10.12后会存在 login.keychain-db中。

login.keychain的路径: ~/Library/Keychains
由于Jenkins不支持上传文件后缀为 keychain-db的文件。
我们需要做的就是
1、复制 keychain-db的文件 到桌面
2、重命名 为login.keychain
3、upload 至Jenkins
4、done

img

26A31489-EE1C-40D4-A52F-B64F5F2CC089.png

ps:这里比较坑的一点就是,这个证书名字居然是自己填写的(我当初一直以为这是选项卡,纠结了好久)

则如果有多个证书,则点击Add Code Signing Identity添加
证书位置在mac本的钥匙串访问应用里边,如图:

img

D42AB6FF-D6CB-4ADE-8C24-E61EEFE1094E.png

完成之后点击save保存,钥匙串就上传完毕了。

二、上传描述文件

描述文件路径:~/Library/MobileDevice/Provisioning Profiles
描述文件的上传和login.keychain的上传方式一样,点击上传成功之后会出现如下界面:

img

435B9604-FE14-4619-BC67-0EA99CA720F1.png

正确填写路径之后点击保存,描述文件也上传完毕。

希望以上能帮到你,如有问题请留言。

参考:https://www.jianshu.com/p/6ab1a13cbea6

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/438981.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea docker 内网应用实践

文章目录 前言一、服务器端1.1 离线安装docker1.2 开启docker远程访问1.3 制作对应jdk镜像1.3.1 下载jdk171.3.2 Dockerfile 制作jdk17镜像1.3.3 镜像导出1.3.4 服务器引入镜像 二、Idea 配置2.1 Dockerfile2.2 pom 引入docker插件2.3 idea docker插件配置2.4 打包镜像上传2.5 …

前端_关于CSS中外边距塌陷问题

问题描述: 当子级块级元素修改带动父级块级元素整体向下移动 我们希望当自级块级元素修改时,父级元素保持不动,解决方法有三个: 原代码: 方案一:为父级元素添加一个内边距 方案二:为父级元素添加overflo…

【机器学习300问】20、什么是神经网络?和深度学习什么关系?

在学习深度学习的相关知识之前,我们首先得了解什么是神经网络,解开神经网络的神秘面纱后,什么是深度学习的问题也就迎刃而解。我依旧会采用我习惯的方式:先给出例子直观理解,在给出定义深入理解,最后在实际…

MySQL行格式原理深度解析

MySQL中的行格式(Row Format)是指存储在数据库表中的数据的物理格式。它决定了数据是如何在磁盘上存储的,以及如何在查询时被读取和解析的。MySQL支持多种行格式,每种格式都有其特定的优点和适用场景。 一、前言 MySQL被分为Ser…

opencv——将2张图片合并

效果演示: 带有绿幕的图片的狮子提取出来,放到另一种风景图片里! 1. 首先我们要先口出绿色绿幕,比如: 这里将绿色绿色绿幕先转为HSV,通过修改颜色的明暗度,抠出狮子的轮廓。 代码 &#xff1a…

麒麟系统—— openKylin 安装 Maven

麒麟系统—— openKylin 安装 Maven 一、准备工作1. 确保麒麟系统 openKylin 已经安装完毕。2. 确保 java 已经安装完毕 二、下载Maven三、解压 Maven 与环境配置解压配置环境变量验证 最终:介绍配置的其他参数使用 本文将分享如何在麒麟操作系统 openKylin 上安装…

RK3326系统中集成思必驰音频适配文件

前言 最近本人在RK3326 8.1系统上做定制化,需要对接思必驰平台音频相关接口,同时在系统中集成音频适配文件,踩了很多坑,写这篇文章记录一下。 一、为什么要集成音频适配文件? 当APP(集成…

MS7336MA高清 HD/全高清 FHD 可选择视频运放与视频同轴线控解码

产品简述 MS7336MA 是一颗集成单通道视频放大器与视频同轴线控解 码为一体的芯片,它内部集成 6dB 增益轨到轨输出驱动器以及 10 阶滤波器,允许同一个输入信号在 -3dB 带宽 35MHz 和 55MHz 之间进行选择控制。视频同轴线控解码内部集成一颗高…

PyFlink使用教程,Flink,Python,Java

环境准备 环境要求 Java 11 Python 3.7, 3.8, 3.9 or 3.10文档:https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/docs/dev/python/installation/ 打开 Anaconda3 Prompt > java -version java version "11.0.22" 2024-01-16 LTS J…

数据结构(队列Queue)

文章目录 一、队列1、队列的定义2、队列的顺序实现2.1、初始化2.2、入队2.3、出队2.4、查找2.5、判断队列 满/空 3、队列的链式实现3.1、初始化3.2、入队3.3、出队 4、双端队列 一、队列 1、队列的定义 2、队列的顺序实现 2.1、初始化 //初始化 void InitQueue(SqQueue &Q…

mysql之基本查询

基本查询 一、SELECT 查询语句 一、SELECT 查询语句 查询所有列 1 SELECT *FORM emp;查询指定字段 SELECT empno,ename,job FROM emp;给字段取别名 SELECT empno 员工编号 FROM emp; SELECT empno 员工编号,ename 姓名,job 岗位 FROM emp; SELECT empno AS 员工编号,ename …

Python爬虫解析库安装

解析库的安装 抓取网页代码之后,下一步就是从网页中提取信息。提取信息的方式有多种多样,可以使用正则来提取,但是写起来相对比较烦琐。这里还有许多强大的解析库,如 lxml、Beautiful Soup、pyquery 等。此外,还提供了…