2025 年技术指引:让真实案例和经验为开发者开路 了解详情
写点什么

Flash 开发 iOS 应用全攻略(三)——如何使用 iOS 开发者授权以及如何申请证书

  • 2011-06-29
  • 本文字数:2862 字

    阅读完需:约 9 分钟

上一篇我介绍了如何申请成为合法的iOS 开发者,这篇文章会详细介绍如何使用授权文件(.mobileprovision)和签名证书文件(.cer)

在缴费成功后会收到一份来自Apple Developer Suport 的确认邮件,如下图.

在邮件里有一个Login 按钮,点击后可以进入Apple Developer 会员中心。点击图中的iOS Provisioning Portal,进入开发者授权设置系统。

在设置界面中,可以选择点击页面下方的助手来运行向导。

或者直接从左边的导航来设置,我在这篇文章会主要介绍如何通过导航设置开发者授权以及证书。不过在此之前,我要先简单介绍一下Apple 开发者授权的一些基本知识。

Apple 对其设备有严格的使用限制,任何应用程序都必须经过 iTunes Store 下载安装,要么直接从设备里下载,要么从电脑中通过 iTunes 下载后同步到设备中。所以没有经过破解的设备是没有办法直接安装 IPA 文件的。但是 Apple 也提供了一套面向开发者的机制,让他们可以在指定的设备上安装 IPA 文件来测试和开发,这个机制的核心就是开发者授权。我前面介绍的申请流程就是申请获得一个可以在设备中安装运行 IPA 文件的开发者授权。

使用开发者授权是一套完整而且相对合理的流程,它可以分为下面几个阶段:

  1. 授权设备,将开发者授权与指定的设备绑定在一起,使得这些设备可以自由安装开发者发布的 IPA。
  2. 生成授权文件.mobileprovision,这个文件会被打包进入 IPA,实现设备与授权开发帐号的绑定。
  3. 生成证书文件.p12,这个文件也会被打包进入 IPA,实现应用发行商的签名以及身份验证。

除此之外,开发者授权系统还提供了开发(Development)和发布(Distribution)两个不同的渠道。开发测试的时候需要设备的绑定而实现在设备上单独安装 IPA,发布的时候则不需要绑定设备。所以开发与发布需要使用不同的.mobileprovision 与.cer 文件。

下面回到刚才的开发者授权系统,我先来介绍一下如何在开发阶段使用授权与证书。

授权设备

点击左侧导航的Device,进入授权设备的页面,点击右上方的Add Device 按钮可以添加一个设备。

添加设备的时候可以指定设备的名字(随便写),以及设备的UID(Unique Identifier)。每一个Apple 的设备都有一个唯一的识别码,获得这个识别码的方法很简单,将你的设备连接到电脑,然后在iTunes 里找到你的设备信息(如下图),点击图中红色方框的位置,设备UID 就会显示出来。可以直接通过Ctrl + C (苹果是Command + C)可以把UID 拷贝到剪切板。

添加App ID

点击左侧导航的App IDs 按钮可以进入应用程序ID 的配置页面,可以点击页面右方的New App ID 按钮添加一个新的应用。这个ID 对应的是即将开发和测试的应用程序。如下图,在description 里添加一个单一应用的名称(不支持特殊字符),然后在最下面的Bundle Seed ID 里面填入一个含有domain 格式的字符串(如com.jamesli.appname)。Bundle Seed ID 是一个集合了开发商与应用程序的信息,格式为(com.[开发商].[应用]),这里可以指定为单一应用,也可以指定为全部应用。如果是单一应用,建议刚才填写的description 与Bundle Seed ID 的最后一项相同(如angrypigs 和com.jamesli.angrypigs),如果是全部应用,可以使用这样的Bundle Seed ID: com.jamesli.

申请开发者证书

申请证书的流程在MAC 和WIN 上是不同的。我分别介绍:

MAC

在 Applications->Utilities 里手动打开 Keychain Access。从顶部菜单栏里 Keychain Access -> Certificate Assistant -> Request a Certificate from Certificate Authority. 在新弹出的窗口中填写你的信息后选择 Save to disk,就会在桌面保存一个 CertificateSigningRequest 文件。(如下图)

WINDOWS

在 Windows 下申请 Apple 证书是一件非常痛苦的事情,下面我就详细介绍以下:

  1. 首先需要在下面的链接下载 OpenSSL。 http://www.slproweb.com/products/win32openssl.html
    如下图,你需要下载 Visual C++ 2008 Redistributables 和 Win32 OpenSSL v1.0.0d Light

  2. 下载安装后,在 C 盘下就有一个 OpenSSL-Win32 的安装目录。

  3. 以管理员身份打开命令行进入 OpenSSL-Win32/bin 文件夹,如果你不是管理员,需要先在命令行中键入下面的命令

复制代码
set RANDFILE=.rnd

键入下面的命令,生成一个 private key:

复制代码
openssl genrsa -out mykey.key 2048

然后键入下面的命令,申请一个 CertSigningRequest 文件,注意 emailAddress 后面是你的邮箱,CN 后面是你的名字,C 后面是国家

复制代码
openssl req -new -key mykey.key -out CertificateSigningRequest.certSigningRequest -subj "/emailAddress=yourAddress@example.com, CN=Common Name, C=CN"

这样在 OpenSSL-Win32/bin 下面就生成了一个 CertificateSigningRequest.certSigningRequest 文件,注意任何错误提示都不要忽略,否则即使生成了文件也可能无法使用。

这个过程请不要使用 Chrome 浏览器

返回开发者授权系统的 Certificate 页面里,点击页面右方的 Request Certificate 申请一个证书,然后点击页面下方的按钮上传生成的 certSigningRequest 文件,这样就完成了证书的申请流程。申请成功后,Certificate 页面里就有了一条证书,刷新几次页面后证书的状态就变成 Issued,点击 download 按钮可以下载一个 cer 文件。

接下来是通过 cer 文件生成 p12 文件的过程。因为 Flash 发布 iOS 应用需要的证书文件格式是 p12。这个流程在 MAC 和 Windows 上也是有区别的。

MAC

点击下载的.cer 文件,文件会自动在 Keychain Access 里打开,可以右键点击 key 导出一个 p12 文件,如下图:

WINDOWS

Windows 下生成 p12 仍然比较麻烦。首先使用管理员身份打开命令行进入 OpenSSL-Win32/bin 文件夹,如果不是管理员身份则同样需要先运行下面的命令:

复制代码
set RANDFILE=.rnd

为了操作方便,将下载的 cer 文件拷贝到 bin 文件夹下,然后运行下面的命令行生成一个 pem 文件

复制代码
openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM

然后运行下面的命令生成一个 p12 文件:

复制代码
openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12

在输入了两次密码之后,便会在 bin 文件夹下有一个 iphone_dev.p12 的文件。

使用开发者授权

正如上面我们提到的,如果要发布一个可以在指定的设备上单独安装的 IPA,则必须使用开发者授权文件.mobileprovision。这个文件可以从开发者授权系统中申请获得。

点击左侧导航的 Provisioning 进入授权页面,如图点击右侧的 New Profile 按钮创建一个新的授权文件。

在创建页面中填入名称,选择创建好的证书,以及指定设备(可以多选),提交后就可以生成一个授权帐号。并且可以下载一个 mobileprovision 文件到本地。

到现在,我们就具备了 Flash 发布 iOS 应用的两个重要文件,.mobileprovision 和.p12,返回 Flash,在发布设置的 Deployment 选项卡中填入这两个文件(如下图)。这样就可以在指定的设备中开发 iOS 项目了!

下周我会继续给大家介绍如何在 iTunes Connection 中创建以及上传你的应用。

原文链接 Flash 开发 iOS 应用全攻略(三)——如何使用 iOS 开发者授权以及如何申请证书

2011-06-29 21:163025

评论

发布
暂无评论
发现更多内容

BOE(京东方)物联网解决方案让会议更“智慧”

爱极客侠

融云聊天室属性 kv

融云 RongCloud

音视频

PBAC相对于传统ABAC的优势

龙归科技

IT 架构师 权限 ABAC PBAC

恭喜自己2021金三银四收到的第五个Offer:字节跳动Java研发岗

比伯

Java 编程 架构 面试 程序人生

【科创人】维格表创始人陈霈霖:喜茶数字化转型的结晶是vika维格表

科创人

《精通比特币》学习笔记(第十一章)

棉花糖

区块链 学习 3月日更

华为18级工程师总结的50W字算法、LeetCode、操作系统、计算机底层刷题必备笔记

Java架构之路

Java 程序员 架构 面试 编程语言

【死磕JVM】一道面试题引发的“栈帧”!!!

牧小农

JVM Java虚拟机 运行时数据区 Java虚拟机栈 栈帧

阿里P7亲自讲解!整理几个重要的Android知识,最全Android知识总结

欢喜学安卓

android 程序员 面试 移动开发

阿里P7亲自教你!一线互联网大厂中高级Android面试真题收录!讲的明明白白!

欢喜学安卓

android 程序员 面试 移动开发

翻译:《实用的Python编程》06_01_Iteration_protocol

codists

Python

面试字节跳动定级2-2,拿32*16offer,P8大佬的算法教程给了我春天!

Java架构之路

Java 程序员 架构 面试 编程语言

HECO火币生态链挖矿系统开发搭建技术

薇電13242772558

数字货币 区块链生态

openpyxl 对Excel的基础操作

IT蜗壳-Tango

办公自动化 3月日更 IT蜗壳教学

TCP拥塞控制四种算法

赖猫

TCP 网络协议

架构师训练营第十周作业 - 命题作业

阿德儿

教你如何在Centos配置Oracle客户端运行时

happlyfox

28天写作 3月日更

Redis 在项目中合理使用经验总结

Java小咖秀

redis

一分钟了解EFT公链新一代超级DeFi公链——EGG超级公链

币圈那点事

区块链 公链 挖矿

Python 初学者必看:Python 异常处理集合

华为云开发者联盟

Python 异常 代码 程序 错误

腾讯高级工程师保姆级“Java成长手册”,层层递进,全是精华

Java架构追梦

Java 腾讯 面试 架构师

架构师训练营第六周作业 - 命题作业

阿德儿

本科毕业,六年Java开发经验,阿里技术三面+HR面,拿下38*16薪资P7offer

Java架构之路

Java 程序员 架构 面试 编程语言

GitHub Action + ACK:云原生 DevOps 落地利器

阿里巴巴云原生

容器 运维 云原生 k8s 应用服务中间件

三步上线自己的在线监考系统

融云 RongCloud

中台还没建就开始拆中台了?医疗中台何去何从?

菜根老谭

中台 医疗中台

如何写好操作类说明文档

lenka

3月日更

使用 Arthas 排查 SpringBoot 诡异耗时的 Bug

阿里巴巴云原生

Java 开发者 云原生 中间件 Arthas

第八章作业

Kalman

产品经理 产品经理训练

邀请领好礼!米家显示器挂灯、雷蛇烈焰神虫送给你!

滴滴云

第八章学习总结

Kalman

产品经理 产品经理训练

Flash开发iOS应用全攻略(三)——如何使用iOS开发者授权以及如何申请证书_Java_James Li_InfoQ精选文章