iOS 开发流程笔记

iOS 开发流程笔记

目录导航

证书知识及准备工作

基础问题答疑

什么是证书

由 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 生成

$ 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)

包含 certificate appID devices id 的文件用于在 xcode 调试打包时提供授权的配置信息

生成方法

附录1: 开发准备相关的网址

开发者中心

iOS 描述管理(配置证书、描述文件、推送服务)

切换团队(在 web 界面上死活没有找到)

iOS 上架 Appstore

几种开发者帐号区别

详见:

关键区别

真机调试流程

基本概念

真机调试指 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 方式重新签名的应用无法安装

仅支持 iOS8.0 以上, 不需要对设备 udid 进行授权, 适合个人 / 公司开发者, 在应用发布前可以开启 TestFlight Beta 测试并添加测试者的 iTunes Connect 帐号, 需要待测用户拥有 iTunes Connect 帐号并在设备安装 TestFlight 客户端

这种方式非常便于推送应用更新和收集测试信息

如果测试设备都越狱了, 这种方式非常灵活简单, 只有能导出 ipa 包就能通过 itools 等第三方工具安装

附录2: 常见分发渠道及工具地址

fir-第三方应用托管平台

TestFlight

Agile-百度内部 ios 分发测试平台

fir-分发相关工具

itools

Appstore 上架流程

@TODO

附录3: App store最新审核标准(2015.3)

App store最新审核标准(2015.3) 中文翻译

App store最新审核标准(2015.3) 英文原版

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
来说点什么吧!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容