当前位置: 首页 > article >正文

ios打包私钥证书和profile文件最正式最常用的生成流程

很多开发ios的同学们,使用uniapp或hbuilderx打包ios应用的时候会问,打包用的私钥证书和profile文件到底在什么地方获取,能不能用别人的证书或从别的地方下载使用。

安装苹果的应用到用户的手机,正式的安装只有两种方法,第一种是使用app store的证书和profile文件打包,第二种是使用企业开发开发者账号生成的in house类型的证书打包企业内部app,通过上传香蕉云编这种测试和分发平台扫码安装。

对于第二种,苹果企业账号比较难申请,一般需要好几百号人的公司需要内部测试才能申请。

一般来说,都是申请个人或公司类型的苹果开发者账号,在苹果开发者中心去生成苹果证书和profile文件。

因此,生成证书首先要有苹果账号,可以参考下面的教程先开通苹果开发者账号:

https://www.yunedit.com/xueyuan/jx/applereg

因为生成p12私钥证书和生成profile文件是两个独立的流程,下面分开两个流程了讲述。

1 生成p12格式的私钥证书的流程如下:

 

1.1 使用香蕉云编生成csr文件:

在苹果开发者中心生成证书的过程中,需要提供csr文件。这个文件原本需要mac电脑的钥匙串访问功能来生成,生成比较麻烦,这里还是使用在线工具来辅助生成CSR文件,可以使用香蕉云编来生成这个csr文件:

https://www.yunedit.com/createcert

如下图,在香蕉云编后台生成一个csr文件,然后下载下来:

1.2 在苹果开发者中心生成cer证书:

如下图,进入苹果开发者中心后,进入Certificates,点击右边的蓝色小加号开始生成cer证书:

1.3 选择ios distribution类型的证书:

假如是个人/公司类型的苹果开发者账号,无论是打正式包还是测试包,都是选择ios distribution(app store connect and ad hoc)那个类型,但是不要选择development或Apple开头类型的证书。

假如是企业类型的苹果开发者账号,则选择In house类型的证书。

1.4 选择csr文件

点下一步,会见到下面的选择csr文件的界面,上传刚才在香蕉云编下载的csr文件,即可完成cer格式的证书的创建:

1.5 下载这个cer证书文件,到香蕉云编转换为p12格式的证书

苹果开发者中心没有提供将cer证书转换为p12证书的工具,这里上传这个cer文件到香蕉云编,就可以使用生成p12证书功能生成p12私钥证书了。如下图:

通过上面的操作,已经可以生成p12私钥证书了。

2 证书profile文件的创建步骤如下:

2.1 创建应用ID(APPID)

进入苹果开发者中心,然后进入Identifiers菜单,先创建应用,这里创建的应用的关键就是填写跟你在uniapp打包一致的AppId,比如uni.xxxxx.xxxx那个包名。

2.2 开始创建profile文件

如下图:

创建profile的时候,需要先选择profile的类型

假如是个人或公司类型的苹果账号,可以选择ad hoc类型或app store类型。ad hoc类型是真机测试类型,可以不需要上架即可安装在手机进行测试,比如将打包后的ipa文件上传到香蕉云编生成安装二维码安装。而app store类型是正式类型,不能直接安装在手机,需要上架到app store才能安装。

假如是企业类型的开发者账号,可以选择In house类型,In house类型也是不需要上架即可安装,比如将打包后的ipa文件上传到香蕉云编生成安装二维码安装。

2.3 选择应用ID和cer证书

生成profile文件的流程中,还会如下两图,要求我们选择AppId和cer证书,选择在之前的步骤中创建的AppId和cer证书即可。假如有多个APPID或多个cer证书,请不要选错了。

2.4 添加udid

假如你选择的类型是ad hoc类型的profile,它还会多出一步,要求我们选择或添加测试设备的udid,因为ad hoc类型不同于企业证书,需要将测试设备的udid添加到打包的profile文件里,打包的ipa文件才能扫码安装。

假如你不知道如何获取udid,可以使用这个工具来获取udid:

https://www.yunedit.com/udid

好了,通过上面的步骤,包含了生成p12证书和profile文件的完成流程了。


http://www.kler.cn/a/384334.html

相关文章:

  • 【Python爬虫实战】DrissionPage 与 ChromiumPage:高效网页自动化与数据抓取的双利器
  • 人工智能未来前景好不好?
  • 【C#】C# .NET中的Func、Predicate和Expression详解
  • 理解Web登录机制:会话管理与跟踪技术解析(二)-JWT令牌
  • vue3 基于element-plus进行的一个可拖动改变导航与内容区域大小的简单方法
  • 用 Python 写了一个天天酷跑(附源码)
  • linux系统中涉及到用户管理的命令知识
  • AMD显卡低负载看视频掉驱动(chrome edge浏览器) 高负载玩游戏却稳定 解决方法——关闭MPO
  • 代码随想录算法训练营第三十九天|Day39 动态规划
  • 汽车广告常见特效处理有哪些?
  • 备战软考Day05-数据库系统基础知识
  • centos查看硬盘资源使用情况命令大全
  • 深入解析Linux内核中断管理:从IRQ描述符到irq domain的设计与实现
  • 宏集Cogent DataHub: 高效实现风电场数据集中管理与自动化
  • 股指期货交易中,如何应对震荡行情?
  • mmpose框架进行人体姿态识别模型HRNet训练
  • AJAX 全面教程:从基础到高级
  • [react]10、react性能优化
  • 前端三件套-css
  • 二分答案—愤怒的牛-P1676 [USACO05FEB] Aggressive cows G
  • 11/6密码学 Des对称加密设计
  • 软考系统架构设计师论文:云上自动化运维及其应用
  • mysql查表相关练习
  • 6.0、静态路由
  • 夜天之书 #103 开源嘉年华纪实
  • Chromium127编译指南 Mac篇(六)- 编译优化技巧