iOS打包——从入门到放弃1——iOS签名那点儿破事儿

背景

首先来点背景——为什么会有「签名」。

1970年代,在Unix上运行program/软件,不需要额外获取权限,就能访问系统的硬件、数据(因为程序是自己写的——你应该不会给自己电脑「下毒」)。

后来,第三方软件出现,出于安全原因,需要对第三方软件的权限做出限制(请求同意后才能获取权限)——你应该不想出现这种情况:别人开发的软件,在不经你同意的情况下,读取了你D盘「Cooking」文件夹里面《第一次做鸭的经历》这个文件——虽然你的鸭做得真的很好。

所以,为了解决上面这个问题,Apple的工程师,想到的解决方案是App Sandbox——就是把第三方软件框在一个盒子里,想要用你的硬件(摄像头、麦克风),或者访问你的数据,都要经过你的同意。

这个看这张图:


App Sandbox

「RW APP」就表示第三方软件,黄色区域就是Sanbox,左边就是你电脑的一些资源——第三方软件在经过你同意后,才能访问。

而今天讨论的「签名」,就隐藏在右边的「Provisioning Profile」,这个术语,这里就不作翻译了,后面会介绍定义。

术语

这里涉及几个术语:App IDEntitlementCertificateProvisioning Profile

先看一张图:


Term

App ID

是你的App在苹果平台上的唯一识别码。并通过这个App ID,和你的开发团队绑定在一起。(App IDBundle IDIdentifier,可以当作是同一样东西)

如图所述,它回答的问题是:Who are you?

Entitlement

Xcode中点击Capability+按钮,会增加一个entitlements后缀的文件。
(这里的EntitlementCapabilityCapabilities,可以简单看做是同一样东西)

也可以看作是「permission」的同义词。

这些文件,描述了你的App要访问哪些系统资源。如图所示,就是「你想干嘛」—— What do you want to do?

注意,在操作层面,Entitlement是App ID的一部分,因为在苹果开发者网站中,你想修改Entitlement,就是去到修改Identifier的地方:


Entitlement

另外,如果修改了这里的Entitlement,就需要重新生成「Provisioning Profile」去打包。

Certificate

我们常说的「证书」,用于确认开发者的身份。回答问题:Can I trust you?

常用的是两种类型:

  • Development:你用Xcode跑App到真机,用的就是这个「开发证书」。因为开发者很多,所以可以有很多的「Development Certificate」
  • Distribution:打包上传到App Store,用的就是这个「打包证书」。有一定权限才能生成、使用这个证书,所以不是每个开发者都能打包App。

证书有1年的有效期,过期了,「Provisioning Profile」也就用不了了。

Provisioning Profile

「 Provisioning Profile」将上述的3样东西,整合在一起,让你可以打包你的App。

注意,如果是用Ad Hoc这种发布方式,Provisioning Profile里面还会包含一个额外的Device List——哪些设备能安装这个App。

Ad Hoc是Apple提供的一种内部分发方式,主要是方便小规模的(内部)测试。

除了发布到App Store,苹果还提供了以下5种非公开的「内部」分发方式:

  • Personal Team distribution:就是你自己用Xcode安装App到真机
  • Ad hoc distribution:只能装100台机器,而且「Provisioning Profile」要包含一个能安装App的设备列表——换言之,你需要在打包前取得所有安装手机的UDID。
  • TestFlight:内部100,外部1万——更强大的分发、测试App的方式
  • In-house distribution:大企业的内部分发
  • Custom App Distribution:后出的非公开分发方式,和TestFlight,App Store Connect整合,推荐大企业使用。

(签名)打包

下面演示两种分发方式:「App Store发布」和「Ad Hoc发布」

App Store发布

一些额外的术语

  • CSR(Certificate Signing Request):
    • 用Mac的Keychain Access这个软件,生成的「.certSigningRequest」文件
    • 里面包含了「公钥」、「私钥」、「证书/Certificate」
    • 上传到苹果开发者网站,让苹果「签名」,就会得到一个.cert文件。这样就能确认你的身份了(下载后双击安装)
App Store Release

黑框部分,是「发布证书」的生成,解决的是上述的「Can I trust you」这个问题。

黄框部分的Entitlement,解决的是上述「What do you want to do」这个问题。

红框部分,就是将「发布证书」、「App ID」(提前创建好的)、「Entitlement」这3个东西整合在一起,生成「App Store」类型的「Provisioning Profile」

蓝框部分:打包、上传了——利用Xcode得Archive & Upload

Ad Hoc发布

Ad Hoc Release

粉色框部分:因为Ad Hoc只能分发到特定手机,所以要到开发者网站,注册要安装App的手机(需要拿到手机的UDID)

黑框部分,是「发布证书」,因为上面「App Store发布」的时候,已经创建过「发布证书」了,这里可以用同样的「发布证书」,无需再重复创建。

红框部分,就是将「发布证书」、「App ID」(提前创建好的)、「Entitlement」、「Device List」这4个东西整合在一起,生成「Ad Hoc」类型的「Provisioning Profile」(和「App Store」类型会有些许差异)

蓝框部分:打包、导出ipa文件——利用Xcode得Archive & Upload。然后ipa文件,可以手动安装到手机,也可以上传到第三方平台(DeployGate, 蒲公英 etc),进行「无线安装」。或者自建服务器也可以。

毕。

下回预告:《Build Settings的那些破事儿》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容