文章目录

  • 1 .iOS开发证书,描述文件,bundle ID的关系
  • 2. Apple开发账号添加团队成员
  • 3 .开发证书,生产证书,描述文件,AppID关系及生成。
  • 4.证书导出p12文件
  • 5.描述文件路径
  • 6.过期后如何更换证书和描述文件
  • 7. app开发会员资格过期
  • 8.双重认证

1 .iOS开发证书,描述文件,bundle ID的关系

苹果为了控制应用的开发与发布流程,制定了一套非常复杂的机制。这里面的关键词有:个人开发者账号,企业开发者账号,bundle ID,开发证书,发布证书(又叫“生产证书”),开发描述文件,发布描述文件,推送证书等…。初级开发者很难理解这中间的关系和作用。下文就对上述列出的关键内容和它们的关系做个详细介绍。

  • 开发者账号
    开发者账号其实就是apple id,只不过要成为开发者,需要去苹果开发者中心激活开发权限。激活开发者账号分为三种,个人,公司和企业。这三种账号各自有些区别,下表是他们主要区别的对比:
账号类型 支持applestroe上架 测试设备数量 申请费用 申请需要
个人 100 99$
公司 100 99$ 邓氏码
企业 不限 299$ 邓氏码

所以如果应用需要上appstroe,就要创建个人或者公司类型的账号;
如果只想内部发布,就可以申请企业账号;
个人账号和公司账号的区别就是公司账号能邀请多个账号,他们可以和你共享资源协同开发此应用,而不需要总是问你要你的账号使用。

  • bundle ID
    bundle ID可以翻译成包ID,也可以叫APP ID 或应用ID,它是每一个ios应用的全球唯一标识。无论代码怎么改,图标和应用名称怎么换,只要bundle id没变,ios系统就认为这是同一个应用。每开发一个新应用,首先都需要到member center->identifier->APP IDS去创建一个bundle id。但是bundle id分为两种:
    Explicit App ID(明确的APP ID),一般格式是:com.domainname.appname。这种id只能用在一个app上。每一个新应用都要创建一个。
    Wildcard App ID(通配符APP ID), 一般格式是:com.domainname.*。这种id可以用在多个应用上,虽然方便,但是使用这种id的应用不能使用通知功能,所以并不常用。

  • iOS Certificates(证书)
    ios certificates就是证书。它的作用就是证明你的mac具有开发或发布某个开发者账号下应用的权限。而且证书还分成两种,一种是开发证书(Development certificate); 另一种是发布证书或叫生产证书(Production certificate)
    1 .development certificate
    开发证书是证明你的mac具有开发和真机调试你的程序的东西。但是每个证书关联着一个开发者账号,也就是说,你只能使用这个证书开发这个账号底下的应用,它是通过bundle id来知道该应用是不是属于自己的账号。所以每次为一个开发者帐号开发应用,就得需要这个账号创建的开发证书。
    2 .Production certificate
    生产证书是证明你的mac是否具有发布应用的权限。在archive到appstore的时候,必须有生产证书,否则时上传不成功的。
    3.根证书
    无论是开发证书还是生产证书,都必须从根证书上派生。根证书就是根mac产生的证书,menber center上保存的那个证书就是根证书,它只能安装在创建它的那台mac上,其他的开发mac必须从那台根mac上导出证书使用。也就是所有的子证书都只能从根证书派生而来。

  • iOS Provisioning Profiles(描述文件)
    描述文件它用来标识某个设备是否具有安装某个应用的权限(简单来说就是应用和证书的关系,尤其注意证书和描述文件的过期日期,一旦过期应用就没法使用了)。描述文件分为开发描述文件发布描述文件。其中发布描述文件又分为临时发布描述文件和正式发布描述文件。
    1 . 开发描述文件(develop provisioning profile)
    开发描述文件,创建它需要bundle ID + 开发证书 + 测试设备(在devices中添加); 编译的时候必须三者对应,否则编译器会报错。
    2 . 临时发布描述文件(distribution ad hoc)
    临时发布描述文件是用来在有限设备上发布的。创建它需要bundle ID +发布证书+发布设备,编译时也必须三者对应。
    3 . 正式发布描述文件(distribution appstore/distribution ad house)
    个人账号和企业账号创建的正式发布描述文件是不同的。因为个人账号是在appstrore上发布,所以创建的是distribution appstore描述文件,而企业账号只能内部发布,所以创建的叫distribution ad house描述文件。但是它们创建所需要的东西都是一样的:bundle ID + 发布证书因为他们是在不确定的设备上安装的,所以不需要选择设备。

2. Apple开发账号添加团队成员

申请了一个公司或企业级的苹果开发者账号,可以添加团队成员协同开发。
团队成员有三种角色,分别是 Agent (代理), Admin (管理员),Member (成员)。
代理: 就是注册开发者账号的那一个,权限最高,续费和创建开发商证书只能使用该账号;
管理员: 管理分发证书、管理测试设备、管理应用配置等等,可以有多个;
成员: 没有管理权限,只能下载和请求数据,可以有多个。
关于团队成员的详细介绍,可见:官方文档
去开发者中心登录开发者账号,可以看到开发者信息如下:

添加团队成员:
1 . 使用代理或管理员账号登录开发者中心
2 . 选中People

3 . 选择邀请人Invite People

4 .可以邀请成为管理员或者成为开发人员,填写对应开发者AppleID的邮箱地即可(可以填写一个或多个),需要在30天内接受。

5 . 点击Invite按钮后,被添加人的邮箱会受到一封邮件,点击View invitation,然后选择Accept接受成为开发者。


这样就添加了一个新的开发者。

6.可以更改其他管理员成员权限或者移除其他管理员和成员

参看官方文档

3 .开发证书,生产证书,描述文件,AppID关系及生成。

  • 首先要申请证书,申请苹果开发者账号教程,还没有的话申请一个或者借用、这里不再详叙。
    登录开发者中心,如果还没申请证书,界面如下:

    如果有证书登录界面如下:
  • 有账号后就可以正式开发上架了,具体流程如下:
    1 .生成开发和发布证书
    (1).通过钥匙串获取证书请求文件Certificate Signing Request (CSR)文件
    选择“钥匙串访问”-“证书助理”-“从证书颁发机构请求证书…”,如下图:

    填写邮件地址和常用名称,选择“存储到磁盘”,会生成一个CSR文件到本地磁盘。


    (2) . 登录开发者中心,选择Certificates, Indentifiers & Profiles可以获取开发和发布证书。
    Certificates -> All -> +

    如果是企业证书,不能讲app发布到App Store上,In-House and Ad Hoc是发布证书,选择iOS App Development是开发证书。下面选择发布证书

    如果是个人或公司证书,App Store and Ad Hoc是发布证书,选择iOS App Development是开发证书。如下

Choose File选择生成的的CSR文件,点击generate生成cer证书。

可以看见生成的开发和生产证书如下:


选择Download下载到本地,然后双击或拖拽到钥匙串中安装


2 . 生成App ID。
选择Identfiers -> App IDs -> +

Name 可以随便填,但不能是中文和特殊符号,主要起描述作用。
Bundle ID就是App的Bundle ID完全一样,全球唯一,一般格式是:com.domainname.appname

还可以选择NFC,推送等功能,选中Continue -> Register -> Done ;就完成了App ID 的注册。

3 . 生成描述文件Provisioning Profile(企业版不需要device即iPhone的UDID,因此跳过)。
选择Provisioning Profile->All -> +:

如果是企业证书, iOS App Development是开发证书的描述文件,in House是企业发布证书的描述文件。

如果是个人或公司证书,各描述文件配置选择如下:

选择刚刚生产的App ID,点击Continue。

选择刚刚生产的开发或发布证书:

填写描述文件名称,可以随便填,便于自己理解就好。

可以下载描述文件双击安装,也可以去项目中Xcode的偏好设置去下载安装:


现在应用程序就可以打包上线啦!

4.证书导出p12文件

  • 为什么要导出.p12文件?
    当我们用大于三个mac设备开发应用时,想要申请新的证书,如果在我们的证书里,包含了2个发布证书,7个开发证书,可以发现再也申请不了开发证书和发布证书了。(一般在我们的证书界面中应该只有一个开发证书,一个发布证书,没必要生成那么多的证书,证书一般在过期之后才会重新添加。)会提示超过了最大数量,并且不能选择生产证书了。如下图:
  • 不能添加证书的解决办法。
    1 .撤销(Revoke)已经生成的证书(不建议使用),然后重新生成一个新的证书。如下图:

    注意:这种方法是可以的,但是会造成相应的Provisioning Profiles失效,这是小问题。但是又要重新申请证书甚至描述文件很浪费时间,所以不提倡这种做法。
    2 . 导出.p12文件
    每一个证书都可以生成一个.p12文件,这个文件是一个加密的文件,只要知道其密码,就可以供给所有的mac设备使用,使设备不需要在苹果开发者网站重新申请开发和发布证书,就能使用。
    注意:一般.p12文件是给与别人使用的,本机必须已经有一个带秘钥的证书才可以生成.p12文件
    打开钥匙串->我的证书,选择要导出的证书,右键选择导出“....”证书。如下图:

    填写要导出证书名称,保存的地址路径,文件类型选择为个人信息交换(.p12)

    设置密码:

    生成的p12文件,将p12文件,密码,和描述文件发给别人就可正常开发啦。

5.描述文件路径

有时候我们会遇见证书,描述文件冲突,没法调试和打包,这时候就需要清空证书和描述文件然后重新安装,描述文件路径~/Library/MobileDevice/Provisioning Profiles

6.过期后如何更换证书和描述文件

  • 企业证书的过期日期是3年,但对应的描述文件只有1年,只要有一个过期,应用就不能再使用了,所以在过期前必须要提前更换。
  • 企业的开发证书最多可以创建6个,但发布证书最多只能创建2个,所以一般用一个管理员账号统一管理证书最好。当企业发布证书过期时,我们需要重新创建一个发布证书,然后编辑或重新生成对应App的发布描述文件;然后上线更新即可。更新完后把之前的证书Revoke,之前的描述文件Delete即可,尤其是证书,一定要在更新证书上线后Revoke, 因为一旦证书上被Revoke,应用就不能打开了(会有一定时间点延迟)。
  • 企业证书的描述文件自创建起有效期为一年,当我们发现快要过期了只需要重新Edit,然后下载安装重新打包上线更新即可,当然也可以重新创建一个新的,一个App可以创建多个描述文件,创建安装好后把其他不用的都删除,避免打包时选择错了。

7. app开发会员资格过期

  • 当公司的app开发会员资格即将到期时,进入appstoreconnect时,会在过期前一个月有警告提示要续费,如下:
  • 进入Apple Developer网站的账户,也会有红色的提示
  • 点击Renew Membership登录团队代理Apple Id和密码,就可以进行续费操作了.
  • 具体的开发者计划续订以及已过期的会员资格出现的状况可参考官方文档开发者计划续订

8.双重认证

  • 苹果规定2018年3月份以后,打包上架App Store必须要双重认证,否则无法上传,有了双重认证,只能通过您信任的设备(如 iPhone、iPad 或 Mac)才能访问您的帐户。首次登录一台新设备时,您需要提供两种信息:您的密码和自动显示在您的受信任设备上的六位验证码。输入验证码后,您即确认您信任这台新设备。例如,如果您有一台 iPhone 并且要在新购买的 Mac 上首次登录您的帐户,您将收到提示信息,要求您输入密码和自动显示在您 iPhone 上的验证码。
  • 任何 iCloud 和 iTunes 用户只要至少拥有一台装有最新版 iOS 或 macOS 的设备,都可以使用双重认证。具体操作见官方文档:Apple ID 的双重认证.
  • 上架AppStore参考文档
    开发者帐户帮助
    App Store上架iOS App的详细流程

iOS开发证书、bundle ID、App ID、描述文件、p12文件,企业证书打包发布,及过期处理相关推荐

  1. IOS开发设置应用程序App启动图片

    IOS开发设置应用程序App启动图片 在资源Assets 的图片区域 右键建立一个Launch Image ,如第二张图,然后把相应的启动图片拖进去. 最后选中项目,找到 Assets ,设置 启动图 ...

  2. android app开发混合开发,混合开发入门 Vue结合Android/iOS开发仿京东项目App

    download:混合开发入门 Vue结合Android/iOS开发仿京东项目App 无需原生开发基础,也能完美呈现京东商城.本课程融合vue.Android.IOS等目前流行的前端和移动端技术,混合 ...

  3. Apple ID,APP ID,Bundle ID,iOS Certificates,iOS Provisioning Profiles各自含义以及之间的关系

    1.Apple ID   Apple ID其实就是开发者账号.只不过要成为开发者,需要去苹果开发者中心激活开发权限.激活开发者账号分为三种,个人,公司和企业.这三种账号各自有些区别,下表是他们主要区别 ...

  4. iOS开发技巧:设置App icon图标及修改应用程序名

    前言 这是iOS开发技巧系列博客的第二篇,本篇主要简单介绍一下如何设置应用程序的icon图标以及修改应用程序名. 设置 icon 首先我们来看看如何设置App icon图标,设置应用程序的icon图标 ...

  5. android字体开发pd,混合开发入门 Vue结合Android/iOS开发仿京东项目App

    无需原生开发基础,也能完美呈现京东商城.本课程融合vue.Android.IOS等目前流行的前端和移动端技术,混合开发经典电商APP--京东.课程将各种复杂功能与知识点完美融合,从技术原理到开发上线, ...

  6. 从零开始的iOS开发: 20 | 计算器APP

    目录 一.开发环境 二.基础知识 1.往期知识点 2.简易自动布局--Stack View 三.实验步骤 1.先在Xcode建立一个APP项目 2.界面搭建 3.连接控件与代码 4.补充代码,完善功能 ...

  7. 【Uniapp框架】快速开发自己一款APP应用,如何将Uniapp项目快速打包成APP应用

    当我们使用uniapp框架开发应用,前端与后端的代码都准备OK! 最关键的一步就是开始打包我们的应用产品,最常见的形式:小程序.安卓App.苹果App. 今天我们来详细了解一下安卓App应用的快速打包 ...

  8. IOS APP 使用别人的P12文件上传APP store

    当使用客户的帐号打包上传时,只需要客户提供打包好的P12文件(钥匙串文件以及证书文件)和描述文件(mobileprovision).安装即可,打包过程如下: 选择Archive: 开始编译文件后出现: ...

  9. 苹果手机做文件服务器,iOS企业账号打包发布App到自己服务器上

    企业开发者账号打包发布 App 到服务器上的流程 1. App 打包 Xcode 选择 Product - Archive 进行 App 打包. 选择 Export 导出 ipa 安装包. 选择 Sa ...

  10. iOS开发笔记 -- 动态切换APP的logo

    1.618大促,看到天猫与京东的logo 也相应改变,所以查找资料 探究其实现方式. 2.实现的过程并不复杂,在此做个笔记,在今后的项目中可能会用到. 3.本篇笔记 demo 1.先看一下实现的效果. ...

最新文章

  1. P2014 选课 (树形动规)
  2. 21 Python模块、import语句、搜索路径、变量、命名空间和作用域、dir函数、globals()和locals()函数、reload()函数、Python中的包
  3. 判断两个树是否互相镜像
  4. excel文件导入hive乱码_将excel中的数据导入hive
  5. Shell脚本参数值包含空格的处理
  6. MySQL 5.5 日志管理
  7. python入门教程 非常详细-Python编程入门教程:从入门到高级,非常详细
  8. 泛微OA “低代码“开发-流程表单
  9. 2020年这些正则应该被收藏(更新, 63条)
  10. MQTT Java 客户端
  11. markdown中编写数学公式的常用 latex 语法
  12. matlab随机欠采样,欠采样技术
  13. 情感极性:关于中文情感分类的知识
  14. ASCII码中10和13的含义
  15. Java url中文转码
  16. 京东智能客服言犀启发式问答技术探秘
  17. css3动画属性菜鸟,CSS3 animation-timing-function 属性 | 菜鸟教程
  18. agc013e Placing Squares(模型转化+dp+矩阵优化)
  19. 读取文件并输出,输出时将小写字母转为大写
  20. 如何获取大量廉价可靠代理IP地址?

热门文章

  1. C调java_ffmpeg系统学习视频9-5 C调Java的方法.mp4
  2. PSO | 基础概念+两个简单的案例
  3. ubuntu通过netplan设置ip
  4. js 跳出多层循环(终止循环)
  5. python画图坐标轴添加箭头
  6. 无人驾驶巴士事故频发,地理围栏下车辆安全仍难以保障
  7. 查找重复文件工具Easy Duplicate Finder
  8. java list移除符合条件的元素_java List删除指定元素的三种方法
  9. List集合中删除指定的元素
  10. 柯理化和sum(较难的那个)