iOS开发之打包上传到App Store——(一)各种证书的理解
OK,有日子没写iOS开发的相关文章啦,主要是最近的精力都没在这上面,不过既然产品已经快要出来了,就有必要了解一下各种证书啥的(众所周知iOS的一堆证书可是很让人头大呀),最近确实被这个搞得头大,然后就决定参考网上的一些资料,进行一下整理,留作一个备份。
内容参考自:苹果所有常用证书,appID,Provisioning Profiles配置说明及制作图文教程
理解Certificate、App Id、Identifiers 和 Provisioning Profile
在我们平常的开发过程中,可以使用模拟器进行调试,也可以直接使用真机测试,真机测试的话,证书的申请也是相对容易的多,但是当我们要实际打包发布程序到App Store时,那个证书真叫一个头疼。
首先,我们打开https://developer.apple.com/account/ios/profile/profileList.action,看下左边:
可以看到有这么几个选项。其中,Devices指的是团队(公司账号是可以以Team的形式添加多个成员的)中的设备,每个开发者账号(不论公司还是个人)可以关联100台设备,可以通过在苹果开发者控制台中添加,也可以通过Xcode直接添加设备。
然后,我们今天的重点目标是各类的证书啊、App ID啊还有Provisioning Profile啥的,所以重点理解一下这几个。
Certificate(证书)
- Development
- App Development (1年):用来开发和真机调试应用程序。
- Push Development (1年):用来调试Apple Push Notification
- Production
In-House and Ad Hoc (3年):用来发布In-House和AdHoc的应用程序。
- App Store :用来发布提交App Store的应用程序。
- MDM CSR
- Push Production (1年):用来在发布版本中使用Apple Push Notification。
- Pass Type ID Certificate
- Website Push ID Certificate
需要注意的是:
App ID
- Explicit App ID:唯一的App ID,这种类型的App ID只能用来标识一个应用,例如,com.aiscot.whatever,用来标识Bundle ID为com.aiscot.whatever的应用程序,其他的不行。
- Wildcard App ID:通配符App ID,这种类型的App ID用来标识一组应用程序,例如,com.aiscot.*可以用来标识Bundle ID为com.aiscot.whatever1和com.aiscot.biteme1等所有Bundle ID以com.aiscot开头的应用程序
每次创建一个新的App ID,我们可以设置该App ID所使用的App Services,比如有的使用Game Center,有的不使用,需要注意的是如果你要使用推送服务,那么你要新建的这个新的App ID必须是Explicit类型的App ID,这样儿,苹果的Apns才能识别到唯一的一个应用从而进行推送提醒,而不会出现所谓“一呼百应”的现象,下面是目前的一些可选服务和相对应的配置要求:
Identifiers
Provisioning Profile
试想一下,如果我们要打包或者在真机上运行一个应用程序,我们首先需要证书来进行签名,用来标识这个应用程序是合法的、安全的、完整的等等;然后需要指明它的App ID,并且验证Bundle ID是否与其一致;再次,如果是真机调试,需要确认这台设备能否用来运行程序。而Provisioning Profile就把这些信息全部打包在一起,方便我们在调试和发布程序打包时使用,这样我们只要在不同的情况下选择不同的profile文件就可以了。而且这个Provisioning Profile文件会在打包时嵌入.ipa的包里。
例如,如下图所示,一个用于Development的Provisioning Profile中包含了该Provisioning Profile对应的App ID,可使用的证书和设备。这意味着使用这个Provisioning Profile打包程序必须拥有相应的证书,并且是将App ID对应的程序运行到Devices中包含的设备上去。
(注:前面提到不同账户类型所能创建的证书种类不同,显然Profile文件的种类是和你所能创建的证书种类相关的)
Development (1年)
Distribution (1年)
In House
Ad Hoc
App Store
In House 与Ad Hoc的不同之处在于:In House没有设备数量限制,而Ad Hoc是用来测试用的,Ad Hoc的包只能运行在该账户内已登记的可用设备上,显然是有最多100个设备的数量限制。所以这两种Provisioning Profile文件的区别就在于其中的设备限制不一样而已,而他们所使用的Certificate是相同的。
iOS开发之打包上传到App Store——(一)各种证书的理解相关推荐
- 【转】 iOS开发之打包上传到App Store——(一)各种证书的理解
OK,有日子没写iOS开发的相关文章啦,主要是最近的精力都没在这上面,不过既然产品已经快要出来了,就有必要了解一下各种证书啥的(众所周知iOS的一堆证书可是很让人头大呀),最近确实被这个搞得头大,然后 ...
- iOS开发之打包上传报错: ERROR ITMS-90087/ERROR ITMS-90125
制作好的framework在打包上传至AppStore如果出现以下错误,则说明这个SDK里面包含了x86_64, i386 架构,当然这个AppStore是不允许的,所以会在上传的时候报错,解决办法就 ...
- iOS架构-自动打包并上传到App Store(python)(21)
这里是摘自一篇用python 语法写的脚本,这里只是为了更好的理解自动化打包上传App Store的原理的. 一. iOS 自动打包并上传到App Store(python) 我们平时大都是用Appl ...
- iOS开发指南:从零基础到App Store上架(第2版 )
第一部分 基础篇 第1章 开篇综述 2 1.1 iOS概述 2 1.1.1 iOS介绍 2 1.1.2 iOS 6新特性 2 1.2 开发环境及开发工具 3 1.3 本书中的约定 4 1.3.1 案例 ...
- 把ipa文件上传到App Store教程步骤
iOS APP上架App Store其中一个步骤就是要把ipa文件上传到App Store! 下面进行步骤介绍! 利用Appuploader这个软件,可以在Windows.Linux或Mac系统中 ...
- iOS开发指南 从Hello World到App Store上架 第5版
iOS开发指南 从Hello World到App Store上架 第5版 关东升 著 ISBN:9787115450630 包装:平装 开本:16开 正文语种:中文 出版社: 人民邮电出版社 出版时间 ...
- iOS 使用 Fastlane 打包上传 App 到蒲公英
前置条件 开发者使用的是 mac 或 linux 系统. 已经安装好 ruby.rubygems.bundler. 已经安装了 Fastlane.如果没有安装,请参考:官方安装指南. 本示例使用环境为 ...
- 公司账号如何ios打包上传以及app证书配置
ios打包app证书配置流程 一.登录账号 首先进入苹果开发者中心,点击account进行登录,进入账户中 点击中间的证书及配置文件按钮,进入到证书的配置 新版本改了布局,不过不影响 二.配置证书 首 ...
- iOS APP上架App Store其中一个步骤就是要把ipa文件上传到App Store
下面进行步骤介绍! 利用Appuploader这个软件,可以在Windows.Linux或Mac系统中申请ios和上传IPA到App Store Connect. 非常的方便,没有Mac也可以用App ...
- Fastlane- app自动编译、打包多个版本、上传到app store
Fastlane是一套使用Ruby写的自动化工具集,用于iOS和Android的自动化打包.发布等工作,可以节省大量的时间. Github:https://github.com/fastlane/fa ...
最新文章
- MySQL中的执行计划
- 【超简洁】1075 链表元素分类 (25分)_34行代码AC
- java linux 当前路径_Java,Linux文件路径
- 静止一秒_生命静止前的那一秒,我们并不是无能为力...
- 物联网可能面临灾难性安全风险
- 天极游戏2005年度回顾:电视游戏篇
- MATLAB基础教程(xlsread和xlswrit函数+数据拟合+数值计算)
- 蔡学镛:让架构接地气,不再云里雾里
- 第二章 让你的kali系统变得更好用
- lpush rpush 区别_lpush(lpush和rpush)
- 天龙八部手游服务器维护公告,天龙八部手游 近期更新维护公告
- 面向需求编程才是常态,聊聊我的经历
- [ERROR] Slave I/O: error connecting to master
- 【思维导图】大数据发展历程2005~2017
- 不重启显示新增硬盘(虚拟机)
- 电脑外置,笔记本电脑外接显卡,教您笔记本如何外接独显
- Linux环境变量getenv setenv unsetenv操作
- 打工人上人 (25 分)
- 【分布式架构的原理】淘宝的演进过程
- VUE3 图片懒加载实现
热门文章
- Windows Server 2008搭建FTP服务
- CKeditor 插件
- 服务器响应为 5.7.0 dt spm,常见邮箱客户端发送失败的错误代码解析
- celeste第二章_『第二章』 蔚蓝的剑
- 用python计算工资工资_薪资计算-Python,薪水,python
- C/C++中各类数值型数据间的混合运算法则
- OS/操作系统_清华大学(陈渝)笔记目录
- 大数据的核心价值是什么? 本质是什么?
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
- win10怎么更新显卡驱动_AMD Radeon 20.5.1 驱动程序更新:新增支持 Win10 版本 2004