iOS 开发流程笔记
- 证书知识及准备工作
- 几种开发者帐号区别
- 真机调试流程
- 内测发布流程
- Appstore 上架流程
目录导航
- 证书知识及准备工作
- 基础问题答疑 </li>
- 各流程中证书的需求情况
- 模拟器调试
- 真机调试
- 打包和发布
- 消息推送后端服务 </ul> </li>
- 开发中常见的证书及相关文件介绍
- CSR(certificate request) 文件
- 开发者证书
- apns(Apple Push Notification Service) 证书
- p12(Personal Information Exchange) 证书
- 描述文件(Provisioning Profiles) </ul> </li>
- 附录1: 开发准备相关的网址 </ul> </li>
- 几种开发者帐号区别
- 关键区别 </ul> </li>
- 真机调试流程
- 基本概念
- 条件和流程 </ul> </li>
- 内测发布流程
- 基本概念
- 实现条件
- 几种常见的分发途径
- 附录2: 常见分发渠道及工具地址 </ul> </li>
- Appstore 上架流程
- 附录3: App store最新审核标准(2015.3) </ul> </li> </ul>
-
描述文件(Provisioning Profiles)
-
开发者证书(ios_development.cer)
-
描述文件(Provisioning Profiles)
-
可用于发布的开发者证书(ios_distribution.cer)
- apns 证书
-
OSX 系统自带的 Keychain Access
-
选择 "Request a Certificate From a Certificate Authority…"
-
输入 email 等信息后保存为.certSigningRequest文件
-
-
命令行下使用 openssl 生成
</ul> -
在 开发者中心 "Provisioning Profiles" 面板中添加iOS Provisioning Profiles并上传刚刚生成的CSR文件, 获取.mobileprovision文件
-
在 xcode 登录开发者帐号后可以连接开发者中心获取
- 个人(individual) $99/year
- 公司(company) $99/year
- 企业(enterprise) $299/year
- 大学(University) free
- 个人帐号可以真机调试, 发布 appstore, 每年 最多为 100台设备分发
- 公司帐号和个人帐号类似, 只有这两种帐号可以发布 appstore, 主要特权是可以添加多个开发者子账号, 但只允许主账号提交, 发布等操作, 在协同开发时比较灵活, 可以各自管理授权设备等
- 企业帐号无法用于 appstore 发布, 但可以不通过 appstore 发布任意 iphone 都可以安装的应用
- 大学帐号不能发布 appstore, 主要拥有真机调试的权限
- 1. 在 provisioning portal 新建应用, 配置授权设备等
- 2. 开发机上导入证书
- 3. 在 xcode 上登录开发者帐号, 不需要准备描述文件, xcode 会自动生成(如果是公司帐号可以自动生成iOS Team Provisioning Profile)
- 1. 获得手机的udid(可以连上 mac, 在 itunes 中查看)
- 2. 告知对方udid(用以设备授权) 和 应用 id
- 3. 得到对方生成的证书和描述文件后, 先导入p12证书, 再双击mobileprovision文件
- 4. 连接手机, 在 xcode 中选择 build target 为已连接的手机
- 1. 是如何将应用打包为.ipa
- 2. 设备需不需要授权
- ad-hoc
- in-house
- TestFlight
- 导出 ipa 包, 越狱安装
证书知识及准备工作
基础问题答疑
什么是证书
由 apple 官方颁发, 用以证明开发者身份的特殊文件, 在 iOS 开发中主要用于代码签名, 保障 iOS 生态的健康安全, 分为开发者证书和发布者证书
什么时候需要证书
只有在本机模拟器调试时无需代码签名, 当 App 需要在真机运行和发布时需要使用相应证书进行签名
证书如何获得
首先需要拥有相应权限的开发者帐号, 通过在本地生成配对的密钥, 向 provisioning portal 提交公钥后换取, 后续证书在使用时会验证本地私钥
如何对代码进行签名
在 xcode 中, 使用描述文件(provision profile 包含调试者证书, 授权设备清单, 应用ID), 在Build Settings中选择存于Keychain Access中的证书文件设置调试和发布任务时的代码签名
我生成的私钥如何共享给团队成员
在Keychain Access中找到导入的证书, 右击导出为包含私钥的 Personal Information Exchange(.p12)文件(导出时可以创建密码), 团队成员再导入p12证书后就完整包含了证书和私钥
各流程中证书的需求情况
模拟器调试
不需要
真机调试
打包和发布
消息推送后端服务
开发中常见的证书及相关文件介绍
CSR(certificate request) 文件
用于换取证书的公钥文件, 实际是在本地基于RSA加密得到配对的密钥, 私钥存于Keychain Access用于签名, 公钥作为换取证书的凭证
生成方法
$ 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文件
生成方法
在 开发者中心 "certificates" 面板中添加certificate并上传刚刚生成的CSR文件, 获取ios_development.cer
apns(Apple Push Notification Service) 证书
用于服务端消息推送, 类似 ssl 证书使用, 和 App 端的开发打包没有关系
生成方法
在 开发者中心 "Identifiers" 面板中添加App ID并上传刚刚生成的CSR文件, 获取aps_production.cer
p12(Personal Information Exchange) 证书
p12证书实际是包含了cer证书及私钥信息, 可以分发给团队成员
生成方法
在 Keychain Access 中找到已经导入的cer证书, 点右键导出为p12格式
描述文件(Provisioning Profiles)
包含certificateappIDdevices id的文件用于在 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/
几种开发者帐号区别
关键区别
真机调试流程
基本概念
真机调试指 mac 连上 iphone, xcode 可以直接以这台 iphone 设备为 build target, 能在 iphone 里执行编译结果
条件和流程
分为拥有独立开发者帐号(也包括公司帐号或企业帐号成员)和共享开发者帐号两种情况
拥有独立开发者帐号
共享开发者帐号
如果无法在 xcode 登录一个开发者帐号, 也可以通过他人对你手机和应用 id 的授权, 得到.mobileprovision描述文件再导入其含私钥的证书(p12) 即可, 具体步骤如下:
对刚入门的个人开发者而言, 可以在淘宝搜iOS真机调试花几元购买一份授权, 包含(p12证书 和.mobileprovision描述文件)
内测发布流程
基本概念
当 App 开发进行到一定程度, 需要更多的人参与测试, 需要谋求一种方式方便应用能安装进更多的设备中
实现条件
进行内测发布主要的关键点是:
xcode6 以后, 个人/公司帐号无法对应用打包为.ipa, 要么用 xcode5 打包要么拥有企业帐号级别的授权
个人/公司帐号权限只有在TestFlight/ 越狱渠道下完成不授权安装; 企业帐号授权可以在ad-hoc/in-house渠道下分发, 完成不授权设备安装
几种常见的分发途径
打包时必须在登录企业帐号(或其成员)并已导入证书和描述文件的情况下, 任何用户(未授权)都可以在手机上用浏览器访问一个 url(例: itms-services://?action=download-manifest&url=https://example.com/manifest.plist) 完成安装
最大的问题是安装量有 100 的上限, 无法作为一个量很大的分发渠道
针对企业内部用户进行分发, 相比ad-hoc无安装量上限
iOS 8.1.3 开始不能企业证书 Iresign 方式重新签名的应用无法安装 https://support.apple.com/en-us/HT204245
仅支持 iOS8.0 以上, 不需要对设备udid进行授权, 适合个人 / 公司开发者, 在应用发布前可以开启 TestFlight Beta 测试并添加测试者的 iTunes Connect 帐号, 需要待测用户拥有 iTunes Connect 帐号并在设备安装TestFlight客户端
这种方式非常便于推送应用更新和收集测试信息
如果测试设备都越狱了, 这种方式非常灵活简单, 只有能导出 ipa 包就能通过 itools 等第三方工具安装
附录2: 常见分发渠道及工具地址
fir-第三方应用托管平台 http://fir.im/
TestFlight https://developer.apple.com/testflight/
Agile-百度内部 ios 分发测试平台 http://agile.baidu.com
fir-分发相关工具 http://fir.im/dev/tools
itools http://www.itools.cn/
Appstore 上架流程
<p>@TODO </p>附录3: App store最新审核标准(2015.3)