关于苹果开发者账号应用的那些事

news/2024/7/20 20:08:59 标签: ios, xcode, objective-c

前言

好久没打过包,也没上传过App Store应用了,最近因为开发需要,又需要折腾证书这块东西,发现这块知识掌握的不牢,以前所了解的也有些模糊,导致使用时出现各种问题,究其原因还是自己理解的不够深!这篇文章就是根据自己的理解以及查找相关资料对此问题做的一个记录。

一、基本常识

1、App ID(bundle identifier)
App ID 是根据应用的boundID生成的,是APP的唯一标识。如果在开发阶段没有生成App ID,苹果会生成一个通配的Wildcard 来匹配应用。在生成App ID 时要注意格式。
2、设备(Device)
Device就是运行iOS系统用于开发调试App的设备。每台Apple设备使用UDID来唯一标识。
公司账号和个人账号,只能添加100台设备,一年才可以修改一次。所以添加设备时要慎用
企业账号对设备的数量没有限制,不过它不能上架App Store,至于他们的区别,自己谷歌吧。
3、证书(Certificate)
iOS证书分为两类:Development和Production(Distribution)。
Development证书用来开发和调试应用程序,Production主要用来发布应用程序到苹果商店。
普通个人开发账号最多可注册iOS Distribution证书2个,Development证书5个,用户可在网站上删除(Revoke)已注册的Certificate。
注意:
a.证书过期了不会影响已上线版本 b.开发者帐号过期了会影响线上版本
至于证书的申请流程,很简单,在这里就不一一赘述,简单说一下公钥和私钥
公钥(public key):公钥被包含在证书里,证书又被包含在描述文件(Provisioning File)中,描述文件在应用被安装的时候会被拷贝到iOS设备中。iOS安全系统通过证书就能够确定开发者身份,就能够通过从证书中获取到的公钥来验证开发者用该公钥对应的私钥签名后的代码、资源文件等有没有被更改破坏,最终确定应用能否合法的在iOS设备上合法运行。
私钥(private key):每个证书(其实是公钥)都对应有一个私钥,私钥会被用来对代码、资源文件等签名。只有开发证书和描述文件是没办法正常调试的,因为没有私钥根本无法签名。
4、Provisioning Profiles文件
描述文件包含了APP的基本信息:证书、App ID和设备。Provisioning Profile也分为Development和Distribution两类,有效期同Certificate一样。Distribution版本的ProvisioningProfile主要用于提交App Store审核,Development版本主要用于真机测试。
5、 developerprofile(授权文件)
授权文件主要是在多人开发是用到的,其中包含了:账户信息,相关的证书,描述文件等

二、自动管理证书和手动管理证书

1、自动管理证书的原则是根据你创建的APP ID来匹配证书和配置文件,而手动管理证书需要手动去配置,每次作出修改,都需要重新再网站上生成,然后下发给各个团队成员,不利于团队的开发。
2、手动管理证书的证书和App ID 的生成还需要在官网上生成。
3、省事,开发和发布证书安装好了之后,Xcode会自动其匹配,避免因为证书和描述文件过多而选错的问题。
4、在开发阶段,设置自动管理证书,就不需要去网站一步步的去生成相关文件,只需要把开发账号添加到账户中去,账号会根据根据你的MAC电脑自动生成开发证书、通配的App ID以及描述文件。

三、多人开发时共享开发账户/证书

新人加入团队开发时,不可避免要真机测试和打包发布,这时就需要安装证书和授权等,获得此权限有两种方式:
注意: Apple 为了安全的考量,將 private key 存在当初生成 Certificate 的 Mac 上。如此除非 Mac 的主人主动从它的 Mac 输出 private key 给你,你才能搭配Certificate 制作、测试、上架 App。如果生成cer的MAC丢失或者是相关人员离职,也就是丢失了私钥,就只能revoke掉,创建新的证书。


第一种方式:通过developerprofile文件给团队成员,此文件包含了 certificate, private key 和 profile
具体是在Xcode | Prefrences | Account 中导出,不过这样会把该账户下的所有证书和描述文件都导出


第二种方式:导出P12文件,需要注意的是P12文件必须包含公钥和私钥。

四、iOS证书管理

开发团队的人员越多,合理的证书管理愈显重要。流程上,为保证日常开发应用程序的安全与效率,无论是大到公司的发布证书抑或是小到项目组的团队个人开发证书,我们都尽量做到:
1、帐号密码统一由一个人管理,避免多人创建证书,导致混乱。
2、开发人员统一到管理员领取.p12文件与Provision Profile文件或者是developerprofile来进行应用开发或发布;
3、新增设备,提供设备名与UDID到证书管理员添加。

五、苹果开发者账号管理后台权限

苹果提供了Agent、Admin、Member、No Access四种团队身份,它们分别拥有不同的权限。
Agent:代理人。这个账号就是创建团队的账号,它拥有最大权限,且不会允许其他Admin修改Agent权限。但是Agent账号可以将权限转移。
Admin:管理员。它拥有几乎所有内容的管理权限
Member:成员。有权访问、下载一些信息,但是不能进行修改、管理
No Access:无权限。(因为后台有iOS、Mac、Safari三个模块,因此每个模块可以限定是否可以访问)

写的有些粗糙,有些理解的东西,在这里就不用文字详述了,欢迎下面留言!


http://www.niftyadmin.cn/n/229590.html

相关文章

STM32实战项目-温湿度传感器

程序功能: 1、软件模拟I2C协议与SHT30数字温湿度传感器通讯; 2、数码管显示环境温湿度; 3、串口打印环境温湿度。 目录 一、硬件电路 二、技术讲解 2.1IIC简介 2.2 IIC总线协议 2.2设备接入 三、SHT30数字温湿度传感器 3.1性能介绍 …

Kafka消息发送流程

消息发送高阶用法 自定义拦截器 自定义序列化 自定义分区器 核心参数 https://kafka.apache.org/0110/documentation.html 参数名描述默认值bootstrap.servers格式为host1:port1,host2:port2,…key.serializervalue.serializerretries0retry.backoff.ms上次发送失败&…

柔性作业车间生产调度中MK算例文本各行数字表示的含义以及算例的数据

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录MK算例其他MK02~MK10柔性作业车间数据MK算例 Brandimarte给出了10组柔性作业车间的实例分别是MK01~Mk10,下方即为MK01的实例数据 10 6 26 2 1 5…

Netty的高性能体现在哪些方面

文章目录Netty的高性能体现在哪些方面1. 非阻塞I/O2. 零拷贝3. 内存池4. 线程模型Netty的高性能体现在哪些方面 Netty是一个高性能、异步事件驱动的网络应用程序框架,它具有出色的稳定性和灵活性。在现代的分布式系统和互联网应用中,Netty已经成为构建高…

物联网时代的网络安全

近年来,物联网 (IoT) 彻底改变了我们的生活和工作方式。从智能家居到自动驾驶汽车,物联网设备在我们的日常生活中变得越来越普遍。 根据 Statista 的一份报告,到 2025 年将有超过 750 亿个物联网 (IoT) 设备投入使用。 然而,这…

SQL综合查询下

SQL综合查询下 目录SQL综合查询下18、查询所有人都选修了的课程号与课程名题目代码题解19、SQL查询:查询没有参加选课的学生。题目代码20、SQL查询:统计各门课程选修人数,要求输出课程代号,课程名,有成绩人数&#xff…

MongoDB 聚合管道的字段投影($addFields,$set,$unset,$project)

上一篇我们介绍了MongoDB 聚合管道的文档筛选及分组统计: $match:文档过滤 $group:文档分组,并介绍了分组中的常用操作:$addToSet,$avg,$sum,$min,$max等。 如果需要进一…

练习题:shell编程—sed

目录 1、删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符 2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符 3、在/root/install.log每一行行首增加#号 4、在/etc/fstab文件中不以#开头的行的行首增加#号 5、利…