# iOS 开发流程笔记
- [x] 证书知识及准备工作
- [x] 几种开发者帐号区别
- [x] 真机调试流程
- [x] 内测发布流程
- [ ] Appstore 上架流程
## 目录导航
- [证书知识及准备工作](#证书知识及准备工作)
- [基础问题答疑](#基础问题答疑)
- [什么是证书](#什么是证书)
- [什么时候需要证书](#什么时候需要证书)
- [证书如何获得](#证书如何获得)
- [如何对代码进行签名](#如何对代码进行签名)
- [我生成的私钥如何共享给团队成员](#我生成的私钥如何共享给团队成员)
- [各流程中证书的需求情况](#各流程中证书的需求情况)
- [模拟器调试](#模拟器调试)
- [真机调试](#真机调试)
- [打包和发布](#打包和发布)
- [消息推送后端服务](#消息推送后端服务)
- [开发中常见的证书及相关文件介绍](#开发中常见的证书及相关文件介绍)
- [CSR(certificate request) 文件](#csrcertificate-request-%E6%96%87%E4%BB%B6)
- [开发者证书](#开发者证书)
- [apns(Apple Push Notification Service) 证书](#apnsapple-push-notification-service-%E8%AF%81%E4%B9%A6)
- [p12(Personal Information Exchange) 证书](#p12personal-information-exchange-%E8%AF%81%E4%B9%A6)
- [描述文件(Provisioning Profiles)](##%E6%8F%8F%E8%BF%B0%E6%96%87%E4%BB%B6provisioning-profiles)
- [附录1: 开发准备相关的网址](#%E9%99%84%E5%BD%951-%E5%BC%80%E5%8F%91%E5%87%86%E5%A4%87%E7%9B%B8%E5%85%B3%E7%9A%84%E7%BD%91%E5%9D%80)
- [几种开发者帐号区别](#几种开发者帐号区别)
- [关键区别](#关键区别)
- [真机调试流程](#真机调试流程)
- [基本概念](##%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5)
- [条件和流程](#条件和流程)
- [内测发布流程](#内测发布流程)
- [基本概念](#%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5-1)
- [实现条件](#实现条件)
- [几种常见的分发途径](#几种常见的分发途径)
- [附录2: 常见分发渠道及工具地址](#%E9%99%84%E5%BD%952-%E5%B8%B8%E8%A7%81%E5%88%86%E5%8F%91%E6%B8%A0%E9%81%93%E5%8F%8A%E5%B7%A5%E5%85%B7%E5%9C%B0%E5%9D%80)
- [Appstore 上架流程](#appstore-%E4%B8%8A%E6%9E%B6%E6%B5%81%E7%A8%8B)
- [附录3: App store最新审核标准(2015.3)](#%E9%99%84%E5%BD%953-app-store%E6%9C%80%E6%96%B0%E5%AE%A1%E6%A0%B8%E6%A0%87%E5%87%8620153)
## 证书知识及准备工作
### 基础问题答疑
#### 什么是证书
由 apple 官方颁发, 用以证明开发者身份的特殊文件, 在 iOS 开发中主要用于代码签名, 保障 iOS 生态的健康安全, 分为开发者证书和发布者证书
#### 什么时候需要证书
只有在本机模拟器调试时无需代码签名, 当 App 需要在真机运行和发布时需要使用相应证书进行签名
#### 证书如何获得
首先需要拥有相应权限的开发者帐号, 通过在本地生成配对的密钥, 向 [provisioning portal](https://developer.apple.com/ios/manage/overview/index.action) 提交公钥后换取, 后续证书在使用时会验证本地私钥
#### 如何对代码进行签名
在 xcode 中, 使用描述文件(provision profile 包含调试者证书, 授权设备清单, 应用ID), 在 `Build Settings` 中选择存于 `Keychain Access` 中的证书文件设置调试和发布任务时的代码签名
#### 我生成的私钥如何共享给团队成员
在 `Keychain Access` 中找到导入的证书, 右击导出为包含私钥的 Personal Information Exchange(.p12)文件(导出时可以创建密码), 团队成员再导入 `p12` 证书后就完整包含了证书和私钥
### 各流程中证书的需求情况
#### 模拟器调试
不需要
#### 真机调试
- 描述文件(Provisioning Profiles)
- 开发者证书(ios_development.cer)
#### 打包和发布
- 描述文件(Provisioning Profiles)
- 可用于发布的开发者证书(ios_distribution.cer)
#### 消息推送后端服务
- apns 证书
### 开发中常见的证书及相关文件介绍
#### CSR(certificate request) 文件
用于换取证书的公钥文件, 实际是在本地基于 `RSA` 加密得到配对的密钥, 私钥存于 `Keychain Access` 用于签名, 公钥作为换取证书的凭证
##### 生成方法
- OSX 系统自带的 **Keychain Access**
+ 选择 "Request a Certificate From a Certificate Authority…"
+ 输入 email 等信息后保存为 `.certSigningRequest` 文件
- 命令行下使用 **openssl** 生成
```bash
$ openssl genrsa -out private.key 2048
$ openssl req -new -sha256 -key private.key -out my.certSigningRequest
```
#### 开发者证书
由 apple 官方颁发, 用来证明开发者资格的证书文件, 分开发(ios_development.cer)和发布(ios_distribution.cer)两种
`cer` 证书跟开发机(私钥)绑定只能在拥有私钥的机器上使用, 如果要迁移机器需要导出为 `p12` 文件
##### 生成方法
在 [开发者中心](https://developer.apple.com/devcenter/ios/index.action) "certificates" 面板中添加 `certificate` 并上传刚刚生成的 `CSR` 文件, 获取 `ios_development.cer`
#### apns(Apple Push Notification Service) 证书
用于服务端消息推送, 类似 ssl 证书使用, 和 App 端的开发打包没有关系
##### 生成方法
在 [开发者中心](https://developer.apple.com/devcenter/ios/index.action) "Identifiers" 面板中添加 `App ID` 并上传刚刚生成的 `CSR` 文件, 获取 `aps_production.cer`
#### p12(Personal Information Exchange) 证书
`p12` 证书实际是包含了 `cer` 证书及私钥信息, 可以分发给团队成员
##### 生成方法
在 **Keychain Access** 中找到已经导入的 `cer` 证书, 点右键导出为 `p12` 格式
#### 描述文件(Provisioning Profiles)
包含 `certificate` `appID` `devices id` 的文件用于在 xcode 调试打包时提供授权的配置信息
##### 生成方法
- 在 [开发者中心](https://developer.apple.com/devcenter/ios/index.action) "Provisioning Profiles" 面板中添加 `iOS Provisioning Profiles` 并上传刚刚生成的 `CSR` 文件, 获取 `.mobileprovision` 文件
- 在 xcode 登录开发者帐号后可以连接开发者中心获取
### 附录1: 开发准备相关的网址
> 开发者中心
> https://developer.apple.com/devcenter/ios/index.action
>
> iOS 描述管理(配置证书、描述文件、推送服务)
> https://developer.apple.com/ios/manage/overview/index.action
>
> 切换团队(在 web 界面上死活没有找到)
> https://developer.apple.com/account/selectTeam.action
>
> iOS 上架 Appstore
> http://itunesconnect.apple.com/
## 几种开发者帐号区别
> 详见: https://developer.apple.com/programs/start/ios/
- [个人(individual)](https://developer.apple.com/programs/ios/) **$99**/year
- [公司(company)](https://developer.apple.com/programs/ios/) **$99**/year
- [企业(enterprise)](https://developer.apple.com/programs/ios/enterprise/) **$299**/year
- [大学(University)](https://developer.apple.com/programs/start/university/) **free**
### 关键区别
- 个人帐号可以真机调试, 发布 appstore, 每年 最多为 100台设备分发
- 公司帐号和个人帐号类似, 只有这两种帐号可以发布 appstore, 主要特权是可以添加多个开发者子账号, 但只允许主账号提交, 发布等操作, 在协同开发时比较灵活, 可以各自管理授权设备等
- 企业帐号**无法用于 appstore 发布**, 但可以不通过 appstore 发布任意 iphone 都可以安装的应用
- 大学帐号不能发布 appstore, 主要拥有真机调试的权限
## 真机调试流程
### 基本概念
真机调试指 mac 连上 iphone, xcode 可以直接以这台 iphone 设备为 build target, 能在 iphone 里执行编译结果
### 条件和流程
分为拥有独立开发者帐号(也包括公司帐号或企业帐号成员)和共享开发者帐号两种情况
#### 拥有独立开发者帐号
- 1. 在 [provisioning portal](https://developer.apple.com/ios/manage/overview/index.action) 新建应用, 配置
没有合适的资源?快使用搜索试试~ 我知道了~
iOS 开发流程笔记-帮你快速上手iOS开发,iOS上架市场
共28个文件
sample:13个
head:4个
md:2个
需积分: 1 1 下载量 154 浏览量
2024-03-02
17:27:39
上传
评论
收藏 70KB ZIP 举报
温馨提示
主要包含如下内容: 1.证书知识及准备工作 2.几种开发者帐号区别 3.真机调试流程 4.内测发布流程 5.Appstore 上架流程 一.证书知识及准备工作 1.基础问题答疑 1.1 什么是证书 1.2 什么时候需要证书 1.3 证书如何获得 1.4.如何对代码进行签名 1.5 我生成的私钥如何共享给团队成员 2.各流程中证书的需求情况 2.1 模拟器调试 2.2 真机调试 2.3打包和发布 消息推送后端服务 开发中常见的证书及相关文件介绍 CSR(certificate request) 文件 开发者证书 apns(Apple Push Notification Service) 证书 p12(Personal Information Exchange) 证书 描述文件(Provisioning Profiles) 附录1: 开发准备相关的网址 几种开发者帐号区别 关键区别 真机调试流程 基本概念 条件和流程 内测发布流程 基本概念 实现条件 几种常见的分发途径 附录2: 常见分发渠道及工具地址 Appstore 上架流程 附录3: App store最新审核标准(2015.3)
资源推荐
资源详情
资源评论
收起资源包目录
ios-dev-flow.zip (28个子文件)
ios-dev-flow
Appstore最新审核标准_2015-3.md 25KB
.git
index 241B
HEAD 23B
refs
heads
master 41B
tags
remotes
origin
HEAD 32B
objects
pack
pack-16c9e6faa15bc698dcca799d9b540db1c69f184f.idx 2KB
pack-16c9e6faa15bc698dcca799d9b540db1c69f184f.pack 19KB
info
description 73B
packed-refs 114B
info
exclude 240B
logs
HEAD 180B
refs
heads
master 180B
remotes
origin
HEAD 180B
hooks
post-update.sample 189B
prepare-commit-msg.sample 1KB
commit-msg.sample 896B
pre-receive.sample 544B
update.sample 4KB
pre-commit.sample 2KB
pre-rebase.sample 5KB
applypatch-msg.sample 478B
fsmonitor-watchman.sample 5KB
push-to-checkout.sample 3KB
pre-applypatch.sample 424B
pre-push.sample 1KB
pre-merge-commit.sample 416B
config 333B
README.md 11KB
共 28 条
- 1
资源评论
进击的代码家
- 粉丝: 2203
- 资源: 204
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 筷手引流工具.apk
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功