转载

代码签名的价值是什么?

如果不是你花了大量的时间使代码签名证书在你的电脑,CI还有你同事的Mac电脑上,App Store就不会是一个那样安全的地方。

对开发者来说,代码签名真的是个问题吗?

当然!光光是快速通道回购的事,在GitHub上就有1700以上关于代码签名的讨论。这可是超过30%的潜在需求啊。尽管不是和真正的代码相关,在Stackoverflow上你都能找到3000多条关于iOS代码签名的问题。

我们为什么必须合作设计iOS应用?

在iOS生态系统,代码签名是最关键的组成部分之一:

  • 代码签名使得苹果可以决定什么样的软件能够在iOS设备上进行安装。

  • 代码签名能够保障在你的Mac连接到iPhone终端时,你的手机上的应用不会被第三方篡改。

  • 你在你的APP上签名就宣示了这个APP是由你开发的。

代码签名的价值是什么?

现在的流程有什么问题?

一旦某人有机会获取你的苹果证书,他们就可以轻易地废除原来的合格证书创建新证书,然后上传预备文件使用他们证书。 

当你提交你的iOS应用进行审核时,苹果会在审核通过后重新对你的应用进行签名,所以只有在终端用户下载你的应用时你的代码签名证书才会被使用。

当你创建一个新的证书签名请求时你可以勾选`Saved to disk`。这就意味着,如果其他人有机会获取你的苹果开发者账户的话,他们可以不用通过你的邮件账户就可以创建同样多的,有效的证书。

代码签名的价值是什么?

Screenshot 2017-04-10 06.30.15.png

对很多iOS开发者来说,他们的账户证书从不离开他们的电脑(如果他们用Xcode和快速通道),但是现在同样也有许多第三方的网页服务会需要你的Apple ID证书,之后他们会把证书储存在服务器上。

如何修复iOS代码签名?(看看我是怎么做的?)

不要要求开发者合作设计,或者使其完全自动化

不要要求开发者完全在自己的设备上完成代码签名。像iTunes Transporter这样的工具早就对上传的二进制的校验和以及有效性进行验证了。就做这么一小步,你就永远都不要对代码签名做什么了。

而且就算你的开发者账户并没有激活2-factor授权,在整个进程中你的安全保证也没有任何区别。

你只好选择在Xcode的后台进行自动化的代码签名,这是我们早就已经知道的事实(原先是叫Fix Issue按键),这和原先的很多使用案例都配合得很好,但是一旦你的团队到达了一定的规模,你就会看到这样做的局限了。(详情点击codesigning.guide

Enforce 2-factor

Enforce 2-step对所有苹果开发者账户进行验证,对开发团队添加多个手机号码和电子邮件地址提供了通道。对所有账户来说,接触产品应用的渠道对enforce 2-step验证是很重要的。

在为应用签名前请求2 factor授权

一旦你的APP通过审核,就要向APP的拥有者确认这个版本是否要上线。由于其他有接近这个入口权限的人可能会提前知道你要发布APP的信息,所以你可以通过邮件或者SMS verification,但不能直接通过iTunes Connect Web UI确认上线。

授权

现在在本地的计算机上已经设立了授权按钮。这个按钮要么可以移动到iTunes Connect服务器,要么就在本地计算机上进行自动授权。

本地代码签名对开发构建还是一个需求

你总是需要在你的APP伤签名然后安装到设备上,但是随着越来越多的人可以用他们自己的Apple ID在他们的设备上安装APP,近两年这个过程也就变得简单多了。由于现在本地代码签名被许多APP供应商弃用转而提供很多非苹果审核的APP下载,其实也是颇具争议的。(比如iOS版Flux)

点对点连接创建仍要求代码签名

上述提到的技巧对点对点连接创建并不适用,应该像原来一样仍然要求代码签名

正文到此结束
Loading...