再谈IOS开发环境配置(2023-09-01 新)

news2024/11/15 16:36:12

        关于IOS的开发,需要配置证书、密钥、管理标识符、功能配置等等,很是繁杂,以前也配置过,这次因为重新购买了新的M1笔记本,准备重新配置下,顺便记录,以便查询。

        如果要开发IOS,首先需要在苹果开发者官网申请注册账户,付费后才可以,每年大概688元,关于注册账户等,不在本文讨论范围。

        官方帮助文档

一、证书类型

类型

用途

Apple 开发

用于 Xcode 11 及更高版本。

在设备上运行 iOS、macOS、Apple tvOS 或 watchOS App,并在开发过程中使用特定的 App 服务。

Apple 分发

用于 Xcode 11 及更高版本。

向指定设备分发你的 iOS、macOS、Apple tvOS 或 watchOS App 以进行测试或将其提交到 App Store。

APNs 授权密钥

生成服务器端令牌来代替通知请求的证书。

Apple 推送服务

在你的通知服务与 APNs 之间建立连接,以向你的 App 发送远程通知。

iOS 开发

在设备上运行 iOS、Apple tvOS 或 watchOS App,并在开发过程中使用特定的 App 服务。

iOS 分发

向指定设备分发你的 iOS、Apple tvOS 或 watchOS App 以进行测试或将其提交到 App Store。

Mac 开发

在开发和测试期间为 Mac App 启用特定的 App 服务。

Mac App 分发

在将 Mac App 提交到 Mac App Store 之前对其进行签名。

Mac 安装器分发

对包含你已签名 App 的 Mac 安装器软件包进行签名,并提交到 Mac App Store。

Developer ID App

在 Mac App Store 以外分发 Mac App 前,对其进行签名。

Developer ID 安装器

对包含你已签名 App 的 Mac 安装器软件包进行签名并在 Mac App Store 之外分发。

Apple Pay

解密 Apple 向商家/开发者发送的 App 交易数据。

商家身份

向 Apple Pay 服务器验证你的身份。

Pass Type ID

对“钱包”内的凭证进行签名和发送凭证更新。

Swift 签名

用于 Swift Package Manager 版本 5.9 或更高版本。

对 Swift 软件包和软件包集合进行签名,以便分发。

VoIP 服务

在你的通知服务器与 APNs 之间建立连接,以向后台 VoIP App 通知有传入活动。

WatchKit 服务

在你的通知服务器与 APNs 之间建立连接,以更新 ClockKit 的复杂功能数据。

网站推送 ID

对网站更新进行签名和发送网站更新。

登录到账户后看到的创建新证书界面:

二、创建证书

        在 App 开发期间,对应不同的环境,你将创建不同的证书类型。iOS、Apple tvOS 和 watchOS App 使用同一套证书,而 macOS App 使用另一套证书。如果你使用的是 Xcode 11 或更高版本,则可以为所有平台创建统一的开发和分发证书。有了开发证书,你就可以在设备上运行你的 App 以及使用 App 功能;而有了分发证书,就可以分发你的 App 进行测试,并将 App 上传到 App Store Connect。

        开发证书属于个人。你总共可以创建两个 iOS 开发证书和两个 Mac 开发证书。在你的开发者账户中,电脑名称会追加到开发证书名称后面 (例如,Gita Kumar (Work Mac),其中 Work Mac 是电脑名称),便于你识别证书。

        分发证书属于团队,每个团队只能有一种类型的分发证书 (Developer ID 证书除外)。只有账户持有人或管理角色可以创建分发证书 (如果你以个人身份注册,你即为账户持有人)。

        可以使用 Xcode 或开发者账户创建和撤销证书。

在正式创建证书前,首先需要创建证书签名请求()certSigningRequest创建证书签名请求()。

1. 创建证书签名请求(本地电脑上): .certSigningRequest 文件

打开应用程序中的钥匙串

  1. 选取“钥匙串访问”>“证书助理”>“从证书颁发机构请求证书”。

  2. 在“证书助理”对话框中,在“用户电子邮件地址”栏位中输入电子邮件地址。

  3. 在“常用名称”栏位中,输入密钥的名称 (例如,Gita Kumar Dev Key)。

  4. 将“CA 电子邮件地址”栏位留空。

  5. 选取“存储到磁盘”,然后点按“继续”。

注意:

        用户电子邮件地址:就是注册苹果账户时的邮件地址。

Key文件存储在桌面,文件名称为:CertificateSigningRequest.certSigningRequest

2. 创建证书(在苹果开发者网站上操作)

选择Apple Development:

继续后,选择上一步生成的CertificateSigningRequest.certSigningRequest 文件(桌面上)。

依次可以创建开发和生产的证书,结果如下:

三、创建标识符(Identifiers)

App ID

App ID 是由两部分构成的字符串,在预置描述文件中用于标识来自某一开发团队的一个或多个 App。App ID 有两种类型:一种是精确 App ID (用于单个 App);另一种是通配符 App ID (用于一组 App)。

精确 App ID 包含套装 ID 的完整路径。通配符 App ID 包含一个星号,以作为相应套装 ID 搜索字符串的最后一个部分。注:需要指定精确 App ID,才能将你的 App 提交至 App Store 并使用特定服务。

        App ID 可识别预置描述文件中的 App。它是一个由两部分组成的字符串,用于标识来自某一开发团队的一个或多个 App。App ID 共有两类:适用于单个 App 的精确 App ID,以及适用于一组 App 的通配符 App ID。在一个 App ID 中启用的 App 功能将作为一个允许列表,为一个或多个 App 提供可用功能。你可以在创建 App ID 时启用 App 功能,也可以稍后修改这些设置。精确 App ID 将默认启用“App 内购买项目”功能。自 Xcode 11.4 起,可以使用同一 App ID 来构建 iOS、macOS、Apple tvOS 和 watchOS App。

1. 创建新的Identifiers

选择 APP IDs

选择App

完成后:

四、描述文件(Profiles)

        Profiles用于将 Certificates、Identifiers、Devices结合起来,形成一个描述证书、标识符的描述统一文件。

1. 创建一个开发描述文件

继续后:

选择上一步创建的标识符继续

选择前面创建好的证书继续

选择好需要连接的手机,继续

输入描述文件名称,然后生成

2. 创建一个生产(上架)描述文件

继续,操作方法和生成开发描述文件一致!

五、本地安装证书文件

将第一步创建证书中创建的证书文件下载到本地。将证书下载到 Mac,然后双击 .cer 文件安装到钥匙串访问中。确保将私钥和公钥的备份副本保存在安全的地方。

下载下来的文件按为:development.cer,双击 .cer 文件安装到钥匙串访问中。

安装时出现这样的错误 -25294:

经过查询资料发现需要安装Apple全球开发者关系认证中间证书WWDRCA*.cer。

Apple证书列表:Apple PKI - Apple

红色部分为我们需要的证书:

我们可以下载G3,有效期到2030-02-20。下载下来后点击安装。安装完成后在继续安装distribution.cer 和 development.cer 证书,最后安装成功

注意:

经过测试,下载G6时不可以的,G3是可以的,不知道为什么,这里注意下。

六、Xcode配置

1.  创建账号:

打开XCode(我的版本: 14.3.1),选择settings

然后选择增加账号:

2. 管理证书(Manage Certificates)

        选择admin 然后按下 Manage Certificates,可以管理(查看)证书,证书如果已经在苹果后台账号设置好,这里就会自动显示出来。

        

特别注意:

        如果后台已经设置好证书,而且上面已经显示有了,就不要在按做下脚的 + ,否则就会重复安装同一个证书,这样就会导致app签名失败。

        万一出现了上述情况,解决办法是:

1. 在苹果账号后台删除重复的证书;

2. 在本地钥匙串中删除重复的证书;

3. 重新打开xcode查看就正常了。

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

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

相关文章

2023高教社杯数学建模思路 - 案例:ID3-决策树分类算法

文章目录 0 赛题思路1 算法介绍2 FP树表示法3 构建FP树4 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就是频繁模…

JVM学习(一)--程序计数器

作用:记住下一个jvm指令的执行地址 每一行java源代码,会被编译为多行jvm指令,上文所说的执行地址就是这里的0,3,4等 ,由于执行访问特别频繁,程序计数器的底层是有寄存器来实现的 特点: 线程私有&#xff…

爬虫进阶-反爬破解5(selenium的优势和点击操作+chrome的远程调试能力+通过Chrome隔离实现一台电脑登陆多个账号)

目录 一、selenium的优势和点击操作 二、chrome的远程调试能力 三、通过Chrome隔离实现一台电脑登陆多个账号 一、selenium的优势和点击操作 1.环境搭建 工具:Chrome浏览器chromedriverselenium win用户:chromedriver.exe放在python.exe旁边 MacO…

这段代码这么写有什么问题

这段代码这么写有什么问题? List<String> baseRelList1 new ArrayList<>();epmPersonList.forEach(Obj ->{interviewBacklogMessageList.forEach(t ->{if (!Obj.equals(t.getPsnNum())){baseRelList1.add(Obj);}});});这段代码存在一个问题&#xff0c;即…

transformer源码

1.传统RNN网络 每一层都需要上一层执行完才能执行 1.1 自注意力 在一句话中找到it_指代的是什么&#xff0c;它的上下文语境是什么&#xff1f; self-attetion计算 1.2 multi-header机制 1.3 堆叠多层self-attention&#xff0c;相当于再一次卷积 1.4 位置信息编码 1.5 残…

unity 场景烘焙问题之模型UV有重叠

问题现象&#xff1a;模型烘焙出来后&#xff0c;呈现黑色或布满脏斑&#xff0c;有可能是没有展UV&#xff0c;也有可能是UV重叠了 并且也会出现警告提示&#xff0c;如下图&#xff1a; 如果我们勾选了如下图,还在提示我们勾选&#xff0c;那可能就是 UV重叠了 解决方案 UV…

C++:输出系统时间(及报错处理)

#include <iostream> #include <ctime>using namespace std;int main() {// 基于当前系统的当前日期/时间time_t now time(0);cout << "1970 到目前经过秒数:" << now << endl;tm* ltm localtime(&now);// 输出 tm 结构的各个组…

【微服务】一张图搞懂微服务架构设计

一张图搞懂微服务架构设计 1.前言2.流量入口 Nginx3.网关4.业务组件5.服务注册中心6.缓存和分布式锁7.数据持久层8.结构型数据存储9.消息中间件10.日志收集11.任务调度中心12.分布式对象存储 1.前言 当前&#xff0c;微服务架构在很多公司都已经落地实施了&#xff0c;下面用一…

气象科普丨气象站的分类与应用

气象站是一种用于收集、分析和处理气象数据的设备。根据不同的应用场景和监测需求&#xff0c;气象站可以分为以下几类&#xff1a; 一、农业气象站 农业气象站是专门为农业生产服务的气象站&#xff0c;主要监测土壤温度、土壤湿度等参数&#xff0c;为农业生产提供科学依据…

高效率、高质量的DMG映像制作:DMG Canvas for mac,助你轻松实现

如果你是一位开发者或企业用户&#xff0c;你一定知道DMG磁盘映像文件在分发应用程序或文件时的重要性。DMG磁盘映像文件可以让用户轻松地创建磁盘映像&#xff0c;并将其挂载到Mac电脑上&#xff0c;从而方便地安装或使用应用程序或文件。 然而&#xff0c;传统的DMG磁盘映像…

数学之美 — 1

为什么你会想和他人共享那些美丽的事物呢&#xff1f;因为这会让他&#xff08;她&#xff09;感到愉悦&#xff0c;也能让你在分享的过程中重新欣赏一次事物的美。 ——David Blackwell 1、感官之美&#xff0c;对于那些有规律的事物&#xff0c;你可以利用自己的视觉、触觉、…

CodeBlocks20.03配置wxWidgets

背景 - 现在是2023年 1. 很多年前&#xff0c;下载使用CodeBlocks就发现里面有自带的wxWidgets Project的项目&#xff0c;然而一路Next下去出来的程序根本就不能运行&#xff0c;心有不甘&#xff1b; 2. 前几年&#xff0c;用python做小工具的时候&#xff0c;界面用的wxPy…

AutoSAR CP 飞阅TIME

目录 什么是autosar autosar 做了什么 Foundation、CP、AP CLASSIC PLATFORM &#xff08;CP&#xff09; ADAPTIVE PLATFORM 基于autosar 开发 SWC Port Runnables RTE BSW MCAL CDD I/O Hardware Abstraction Communication Hardware Abstraction Memory Har…

Navicat介绍及下载安装教程

Navicat是一个广泛使用的数据库管理工具&#xff0c;可用于管理多种数据库系统&#xff0c;如MySQL、MariaDB、Oracle等。它提供了丰富的功能&#xff0c;使得管理数据库变得更加容易和高效。安装Navicat十分简单&#xff0c;只需下载安装包并按照向导进行操作即可。在安装完成…

SQL 语句学习总结:

1. 四范式&&范式好处&#xff1a; 数据库范式是数据表设计的规范&#xff0c;在范式规范下&#xff0c;数据库里每个表存储的重复数据降到最少&#xff08;这有助于数据的一致性维护&#xff09;&#xff0c;同时在数据库范式下&#xff0c;表和表之间不再有很强的数据…

C语言——多文件编程

多文件编程 把函数声明放在头文件xxx.h中&#xff0c;在主函数中包含相应头文件在头文件对应的xxx.c中实现xxx.h声明的函数 防止头文件重复包含 当一个项目比较大时&#xff0c;往往都是分文件&#xff0c;这时候有可能不小心把同一个头文件 include 多次&#xff0c;或者头…

Python 潮流周刊#18:Flask、Streamlit、Polars 的学习教程

你好&#xff0c;我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容&#xff0c;大部分为英文。标题取自其中三则分享&#xff0c;不代表全部内容都是该主题&#xff0c;特此声明。 本周刊由 Python猫 出品&#xff0c;精心筛选国内外的 250 信息源&#xff0c;为你挑选…

API接口接入电商平台案例,数据采集获取商品历史价格信息示例

商品历史价格接口是开放平台提供的一种API接口&#xff0c;通过调用API接口&#xff0c;开发者可以获取天猫商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片、最低价、当前价格、价格信息等详细信息 。 获取商品历史价格接口API是一种用于获取电商平台上商品历…

2023腾讯全球数字生态大会预约报名入口

报名入口 2023腾讯全球数字生态大会即将开启&#xff0c;点击打开预约报名入口。 主题与介绍 主题 2023腾讯全球数字生态大会将聚焦产业未来发展新趋势&#xff0c;针对云计算、大数据、人工智能、安全、SaaS等核心数字化工具做关键进展发布&#xff0c;并联合生态伙伴推出最…

大数据助你预测精准营销客户转化率

在移动互联网时代&#xff0c;越来越多的传统产业已经开始乘坐完成华丽转身&#xff0c;营销数据分析方法:大数据预测精准营销客户转化率。汽车企业是典型的代表。虽然大多数汽车公司都建立了完整的用户数据库&#xff0c;但数据只是在服务器上。在当今人工智能和机器学习的世界…