uniapp——ios证书申请——详细步骤+遇到的坑——技能提升

news2024/12/27 13:14:34

三年前,我曾经写过uniapp的程序,时隔三年,又遇到了uniapp的需求,之前没有自行申请ios证书,现在终于要自己生成证书了。。。

是福不是祸,是祸躲不过。

uniapp生成ios证书的详细步骤

  • uniapp对接unipush的操作步骤链接
  • 1.生成`ios`证书
        • 1.1 准备环境——略过
        • 1.2登录IOS Dev Center——申请开发者账号后,就可以登录了——略过
        • 1.3 申请苹果App ID
        • 1.4 生成证书请求文件——需要使用mac 苹果电脑
        • 1.5 申请开发证书和描述文件——development——需要苹果本和上面生成的请求文件
        • 1.6 申请发布证书和描述文件——distribution——需要苹果本和上面生成的请求文件
  • 2.证书申请完了,就可以进行`uniapp`的云打包了
        • 2.1 更改版本号,便于检查更新
        • 2.2 云打包
        • 2.3 广告取消——如果有默认勾选且不可取消的广告,则需要在uniapp后台进行取消
        • 2.4 打包报错的几个坑
  • 3.使用香蕉云编进行`ipa`文件的构建和屏幕截图生成

uniapp对接unipush的操作步骤链接

uniapp对接unipush的操作步骤:http://t.csdn.cn/j4Cz8

1.生成ios证书

生成ios证书的操作步骤:https://ask.dcloud.net.cn/article/152

上面这个链接的操作步骤已经很详细了,但是对于不熟悉苹果电脑的人来说,还是很难的。

在这里插入图片描述
这个文章中的操作步骤分为这几步:

1.1 准备环境——略过

必需要有苹果开发者账号,并且加入了 “iOS Developer Program”
Mac OS 10.9以上系统(如果已经申请p12证书则不需要)

这个是必须要有的,没有的可以自行申请,此处略过。

1.2登录IOS Dev Center——申请开发者账号后,就可以登录了——略过

在这里插入图片描述

1.3 申请苹果App ID

由于我这边是重新生成证书,因此是不需要重新申请App ID的,就是一个应用程序,自始至终都只需要申请一个App ID即可。如果没有App ID,则可以根据链接上的步骤进行处理。

我们最终要得到的就是 证书+描述文件,无论是开发还是发布环境,都需要分别生成这两种文件,两种环境也就是要生成4个文件。
在这里插入图片描述

1.4 生成证书请求文件——需要使用mac 苹果电脑

点击苹果电脑右上角的搜索图标,输入“钥匙串访问”,即可打开“钥匙串访问”功能。
在这里插入图片描述
打开菜单 “钥匙串访问”->“证书助理”,选择“从证书颁发机构请求证书…”:
在这里插入图片描述
打开创建请求证书页面,在页面中输入用户邮件地址、常用名称,选择存储到磁盘,点击 “继续” :
在这里插入图片描述
文件名称为“CertificateSigningRequest.certSigningRequest”,选择保存位置,点击 “存储” 将证书请求文件保存到指定路径下,后面申请开发(Development)证书和发布(Production)证书时需要用到
在这里插入图片描述

1.5 申请开发证书和描述文件——development——需要苹果本和上面生成的请求文件

在证书管理页面选择 “Certificates" 可查看到已申请的所有证书(TYPE:Development 为开发证书,Distribution为发布证书),点击页面的加号来创建一个新的证书:
在这里插入图片描述
在 “Software” 栏下选中 “iOS App Development” 然后点击 “Continue”:
在这里插入图片描述
接下来需要用到刚刚生成的证书请求文件,点击“Choose File…”选择刚刚保存到本地的 “CertificateSigningRequest.certSigningRequest”文件,点击 “Continue” 生成证书文件:
在这里插入图片描述
生成证书后选择 “Download” 将证书下到本地 (ios_development.cer):
在这里插入图片描述
接下来需要用到苹果电脑了

需要在苹果电脑种:双击保存到本地的 ios_development.cer 文件,会自动打开 “钥匙串访问” 工具说明导入证书成功,可以在证书列表中看到刚刚导入的证书,接下来需要导出 .p12 证书文件,选中导入的证书,右键选择 “导出…”:

注意事项:
1.如果双击ios_development.cer文件没有打开钥匙串访问,则一般情况下需要重启电脑
2.双击ios_development.cer文件,正常情况下会弹出钥匙串访问窗口,需要输入电脑的锁屏密码才可以使用
3.如果正常进入到下面的页面,则需要注意:默认选中的文件并非是你双击的文件,需要自行查找到对应的文件,一般就是开发和发布的区别。
在这里插入图片描述
4.如果此文件提示未被信任,则需要双击,更改信任未始终信任即可
在这里插入图片描述在这里插入图片描述
证书不受信任的解决办法:http://t.csdn.cn/LBxhP

上面的步骤都成功后,才可以进行.p12文件的导出。

接下来需要导出 .p12 证书文件,选中导入的证书,右键选择 “导出…”:
输入文件名、选择路径后点击 “存储”:
在这里插入图片描述
输入密码及确认密码后点击 “好”:
在这里插入图片描述
至此,我们已经完成了开发证书的制作(得到了 xxx.p12 证书文件),接下来,继续生成开发阶段所需的描述文件,在生成描述文件之前,需要先添加调试设备(iPhone 、iPad)

下面的步骤就是:添加调试设备。由于我这边已添加,则不再赘述,略过。
在这里插入图片描述
下面进行申请描述文件:

在证书管理页面选择 “Profiles”,可查看到已申请的所有描述文件,点击页面上的加号来添加一个新的描述文件:
在这里插入图片描述
在 “Development” 栏下选中 “iOS App Development”,点击“Continue”按钮:
在这里插入图片描述
这里要选择之前创建的 “App ID” (这里是“io.dcloud.hellouniapp”),点击“Continue”:
在这里插入图片描述
接下来选择需要绑定的证书,这里建议直接勾选 “Select All”,点击“Continue”:
在这里插入图片描述
选择授权调试设备,这里建议直接勾选 “Select All”,点击 “Continue”:
在这里插入图片描述
输入描述文件的名称(如“HelloUniAppProfile”), 点击 “Generate” 生成描述文件:
在这里插入图片描述
点击“Download”下载保存开发描述文件(文件后缀为 .mobileprovision)

在这里插入图片描述
完成!!!

1.6 申请发布证书和描述文件——distribution——需要苹果本和上面生成的请求文件

申请发布(Production)证书

在证书管理页面选择 “Certificates" 可查看到已申请的所有证书(TYPE:Development 为开发证书,Distribution为发布证书),点击页面的加号来创建一个新的证书:
在这里插入图片描述

在 “Software” 栏下选中 “App Store and Ad Hoc”,点击 “Continue”:
在这里插入图片描述

接下来同样需要用到之前生成的证书请求文件,点击“Choose File…”选择刚刚保存到本地的 “CertificateSigningRequest.certSigningRequest”文件,点击 “Continue” 生成证书文件:
在这里插入图片描述
生成证书成功,选择“Download” 将证书下载到本地 (ios_production.cer):
在这里插入图片描述

同样双击保存到本地的 ios_production.cer 文件将证书导入到 “钥匙串访问”工具中,可以在证书列表中看到刚刚导入的证书,接下来需要导出 .p12 证书文件,选中导入的证书,右键选择 “导出…”:
在这里插入图片描述

输入文件名、选择路径后点击 “存储”:
在这里插入图片描述

输入密码及确认密码后点击 “好”:
在这里插入图片描述

至此,我们已经完成了发布证书的制作(得到了 xxx.p12 证书文件),接下来,继续生成发布描述文件

申请发布 (Distribution) 描述文件
在证书管理页面选择 “Profiles”,可查看到已申请的所有描述文件,点击页面上的加号来添加一个新的描述文件:
在这里插入图片描述
在 “Distribution” 栏下选中 “App Store”,点击“Continue”按钮:
在这里插入图片描述

这里要选择之前创建的 “App ID” (这里是“io.dcloud.hellouniapp”),点击“Continue”:
在这里插入图片描述

接下来选择需要绑定的发布证书(iOS Distribution),这里勾选刚刚生成的发布证书”,点击“Continue”:
在这里插入图片描述

接下来输入描述文件的名称(如“HelloUniAppProfileDistribution”), 点击 “Generate” 生成描述文件:
在这里插入图片描述

然后点击 “Download” 将描述文件下载到本地(文件后缀为 .mobileprovision)
至此,我们已经得到了发布证书(.p12)及对应的发布描述文件(.mobileprovision)

2.证书申请完了,就可以进行uniapp的云打包了

2.1 更改版本号,便于检查更新

在这里插入图片描述

2.2 云打包

在这里插入图片描述

2.3 广告取消——如果有默认勾选且不可取消的广告,则需要在uniapp后台进行取消

uniapp取消开屏广告的操作步骤:https://www.niftyadmin.cn/n/4956429.html?action=onClick

2.4 打包报错的几个坑

Command line invocation:
/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild archive -sdk iphoneos15.2 -project [PackagePath]/HBuilder.xcodeproj -archivePath [PackagePath]/XArchive/HBuilder.xcarchive -scheme HBuilder CONFIGURATION=Release
在这里插入图片描述
解决办法:由于我用到了扫描和相册,则最新版的hbuilderX需要手动勾选上对应的模块才可以。
在这里插入图片描述
打包完成后,生成一个可以下载ipa文件的链接,点击链接下载即可。

3.使用香蕉云编进行ipa文件的构建和屏幕截图生成

由于在app store发布网站上,需要用到构建版本和屏幕截图:如下:

在这里插入图片描述
在这里插入图片描述

香蕉云编的链接:https://www.yunedit.com/update/appstore/list

在这里插入图片描述
在这里插入图片描述
注意上面的专用密码:不是苹果开发者账号的密码,而是需要专门生成的专用密码。
具体操作步骤可以查看截图中的教程来处理,超级简单。

构建版本报错的可能性:
1.版本冲突:如果没有更改版本号就生成,则会提示 已经上传过此版本
2.报错:就是上面设备和模块的问题了

在这里插入图片描述
这个香蕉云编也可以生成ios证书,这个我研究一下后再补充。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Revopoint的3D输出格式及转换工具

在 CES 展会期间,许多参观者向我们询问与我们的 3D 扫描仪相关的问题。 最常见的问题包括我们的扫描仪导出的文件格式,以及该文件是否与 3D 打印机兼容? 因此,我们决定回答这些问题,并在本文中对常见的 3D 文件格式进行…

notepad++配合正则表达式分组模式处理文本转化为sql语句

一、正则分组知识点补充 正则分组和捕获 ():用于分组和捕获子表达式。 大白话就是()匹配到的数据,通过美元符号加下标可以获取该数据,例如$1、$2, 下标从1开始。 下面的案例就采用该模式处理文本数据 二、使用正则的需求背景 有一份报表…

Verilog:$readmemb和$readmemh系统函数的使用与其中的初始化地址相关问题(详细细节)

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 $readmemb和$readmemh两个系统函数用于将文件中的数据加载到存储器或者被称为数组的memory中。首先给出他们的语法的BNF范式,有关BNF范式的内容可以在…

GaussDB技术解读系列:性能调优

近日,在第14届中国数据库技术大会(DTCC2023)的GaussDB“五高两易”核心技术,给世界一个更优选择专场,华为数据库技术专家李士福详细解读了GaussDB性能调优的相关技术和应用实践。 本篇为大家分享GaussDB性能调优的实践…

【MySQL 45讲笔记】

文章目录 第一讲:一条SQL查询语句是如何执行的?第二讲:一条SQL更新语句是如何执行的?第三讲:事务隔离,为什么你改了我还看不见第四讲:深入浅出索引(上)第五讲&#xff1a…

Python函数绘图与高等代数互溶实例(二): 闪点函数

Python函数绘图与高等代数互溶实例(一):正弦函数与余弦函数 Python函数绘图与高等代数互溶实例(二):闪点函数 Python函数绘图与高等代数互溶实例(二):设置X|Y轴|网格线 一: 函数plot(),展示变量的变化趋势 import numpy as np import matplotlib.pyplot as plt from pylab i…

商家收款一万手续费多少

目前微信和支付宝作为主流的支付平台,为商家提供了安全、便捷的支付解决方案。但是在正常情况下,商家需要向平台支付交易额0.6%至1%不等的手续费,这个费率看似很少,但长期积累下来的手续费支出也是一笔不小的开支。 什么是收款手…

复习Day01:数组part01:701. 二分查找、35. 搜索插入位置、367. 有效的完全平方数、69. x的平方根、74. 搜索二维矩阵

之前的blog链接:https://blog.csdn.net/weixin_43303286/article/details/131690654?spm1001.2014.3001.5501 我用的方法是在leetcode再过一遍例题,明显会的就复制粘贴,之前没写出来就重写,然后从拓展题目中找题目来写。辅以Lab…

UI设计和平面设计的区别是什么?看完这篇一次搞懂

很多想要从事视觉领域工作的新手设计师,搞不懂UI设计和平面设计的区别;也有很多平面设计师工作后想转UI,却不知道该如何进行,导致择业和职业发展受阻,其实核心问题还是因为没有弄清楚UI设计和平面设计的区别是什么。 …

电工-三极管主要参数(直流、交流、极限)

三极管主要参数(直流、交流、极限) 三极管的主要参数分为三种,即直流参数、交流参数和极限参数,下面分别介绍: 直流参数 共发射极直流放大倍数βIc/Ib 集电极—基极反向截止电流Icbo,Ic0时,…

浅谈终端安全接入

前言: 随着网络的发展,现代企业大多都会部署企业的有线网络与无线网络,在传统的企业网内,随着越来越多的终端设备接入到公司网络,管理人员控制和审计外部用户接入的企业办公网的难度和工作量也越来越大。而如果允许外…

代码随想录二刷Day 15

102. Binary Tree Level Order Traversal vector<int>() it is basically constructor of std::vector class and will create a new empty vector. You can also mention the size of required vector in brackets. 访问二维vector的元素: 如果指定外层和内层向量的大…

技术贴 | 深度解析 PostgreSQL Protocol v3.0(二)— 扩展查询

引言 PostgreSQL 使用基于消息的协议在前端&#xff08;客户端&#xff09;和后端&#xff08;服务器&#xff09;之间进行通信。该协议通过 TCP/IP 和 Unix 域套接字支持。 《深度解析 PostgreSQL Protocol v3.0》系列技术贴&#xff0c;将带大家深度了解 PostgreSQL Protoc…

Matter 是什么?

Matter&#xff08;物联网Matter&#xff09;旨在成为一个可互操作的标准&#xff0c;促进技术采用和创新&#xff0c;逐渐取代智能家居生态系统的专有协议。 Matter采用一个开源的软件开发工具包&#xff08;SDK&#xff09;&#xff0c;其中包含了协议规范的实现&#xff0c…

如何低成本、低门槛开发全屋智能系统?

近期&#xff0c;某个科技通讯巨头豪掷 15 亿重金&#xff0c;准备成立房地产公司以大力推动全屋智能的发展。从大部分科技公司频频押注全屋智能领域来看&#xff0c;全屋智能已然成为智能家居第一大发展趋势&#xff0c;是资本市场的重头戏。 但全屋智能并不好做&#xff0c;…

【Linux】详解线程第一篇——由单线程到多线程的转变

线程详解 前言正式开始啥是线程理解线程Windows和Linux下的线程Windows下的线程Linux下的线程对比 重新理解进程理解曾经写的代码 Linux的线程pthread库验证多线程在同一个进程中跑ps -aL线程资源线程切换成本低线程缺点线程异常线程等待pthread_create的第三个参数——回调函数…

MyBatis友人帐之ResultMap及分页

一、ResultMap 1.1查询为null问题 要解决的问题&#xff1a;属性名和字段名不一致 解决方案 方案一&#xff1a;为列名指定别名 , 别名和java实体类的属性名一致 . <select id"selectUserById" resultType"User">select id , name , pwd as passwor…

thinkphp8路由

thinkphp8已出来有好一段时间了。这些天闲来无事&#xff0c;研究了下tp8的路由。默认情况下&#xff0c;tp8的路由是在route\app.php的文件里。但在实际工作中&#xff0c;我们并不会这样子去写路由。因为这样不好管理。更多的&#xff0c;是通过应用级别去管理路由。假如项目…

【JDK 8-函数式编程】4.4 Supplier

一、Supplier 接口 二、实战 Stage 1: 创建 Student 类 Stage 2: 创建方法 Stage 3: 调用方法 Stage 4: 执行结果 一、Supplier 接口 供给型 接口: 无入参&#xff0c;有返回值&#xff08;T : 出参类型&#xff09; 调用方法: T get(); 用途: 如 无参的工厂方法&#x…

多频超声波清洗机有什么特点?使用需要注意什么?

多频超声波清洗机是指具备多个频率可调的超声波发生器的清洗机&#xff0c;是在一只清洗槽内&#xff0c;安装有两种或三种以上不同频率的超声波换能器&#xff0c;由多只发生器分别推动各自频率的超声波进行清洗。传统的超声波清洗机通常只能在固定的频率下工作&#xff0c;而…