用开发者证书签名怎么认证,免费个人苹果签名证书,靠谱国外免费挂机网赚项目

最近需要给iOS开发团队做一次关于iOS开发证书以及代码署名的分享,于是花了点时间把这一块的知识重新学习和整理了一遍,从而有了这篇学习条记。其中许多一些文字都是从网站或者博客上摘抄过来,为了阅读利便也做了一些调整,说白了我只是做了一些知识的梳理和整合。

该条记涉及到内容有:开发者账号、署名证书、标识符(Identifiers)、装备(Devices)、APP授权机制、设置文件、ipa文件的署名和平安验证。

开发者账号类型

苹果为iOS开发者提供三种账号类型,如下:

  • Apple Developer Program 年费 $99(或¥688) 可以在iOS App Store和Mac App Store上架应用可以以小我私家(Individual)或者组织(Organization)的名义加入,以组织身份加入需要提供邓白氏编码(DUNS Number),会多出Team Management功效,允许多人协作开发。在公布署名上以组织(Organization)的名义加入可以填写公司或组织信息(好比某某公司、某某工作室),而以小我私家(Individual)加入只能默认显示注册时填写的小我私家信息,而且不能修改。
  • Apple Developer Enterprise Program年费 $299,用于以InHouse方式公布企业内部应用,不能上架App Store企业证书过时则已经安装的应用无法继续运行。
  • iOS Developer University Program
    高校设计需要提供高校基本信息,免费提供。苹果为激励高校更多的介入到苹果开发者设计中来,特意推出这一项设计,高校设计具有在真机上测试等权限,但不能将App公布到App Store。

证书(Certificates)

什么是证书?证书就是:证实证书拥有者有证书上所说的能力,一个证书要涉及到发表者、拥有者、证实拥有者有了什么能力。例如,CET-4证书;发表者:学校,拥有者:自己,证实的能力:英语到达四级水平。苹果开发者证书也是一样,发表者:自己,拥有者:安装证书的电脑;证实的能力:可以打包某应用程序。

开发者证书能力泉源

向Member Center申请证书的历程,实在就是将在内陆天生的certSigningRequest文件提交给苹果,让它举行署名授权的历程。certSigningRequest这个文件包罗以下内容:

  1. 申请者信息,此信息是用申请者的私钥加密的。
  2. 申请者公钥,此信息是申请者使用的私钥对应的公钥。
  3. 摘要算法和公钥加密算法。

当苹果用私钥对其署名(授权)之后,我们便可以获得一个证书文件。拥有该证书后,我们便可以用对应的私钥对APP署名了。当iOS装备拿到APP时便可以通过证书中的公钥来验证APP的准确性,同时iOS装备自己可以验证证书的是否被授权,由于该证书是苹果自己署名的证书。

被苹果署名的证书会随APP一起打包到ipa文件中,并提交到App store中。

当我们获得署名证书之后,还需要一个证书来验证证书是否被准确授权,该证书就是Worldwide Developer Relations Certificate Authority证书。该证书一样平常都市随Xcode一起安装到我们的电脑中,也可以从Member Center去下载。以是若是没有该证书,开发者将不能使用对应的私钥对APP的署名,由于不能确保证书是否被授权。该证书也就是网上有提到前言证书(Intermediate Certificate)。

证书的类型

苹果为开发者提供三种证书类型,用来在差异环境下使用,利便开发者的调试和测试。

  • 开发证书:平时用来举行真机调试的证书,用该证书署名的APP,只能安装在指定的装备上。
  • 测试证书:不可以用来真机调试的证书,然则可以编译到指定的真机上(不可以举行调试)。主要用来提交给测试举行功效的验证,和开发证书的区别在于,它和公布证书类似处于非沙盒坏境。然则用该证书署名的APP无法提交到App store,只能安装在指定装备上。
  • 公布证书:不可以用来调试和测试,也不能安装在指定装备上,只能提交到App store。

使用企业(Enterprise)账号下的公布证书署名的APP可以安装到以是装备上,然则不能提交到App store。

标识符(Identifiers)

在Member Center中,Identifiers可以治理App IDs、Pass Type IDs、Website Push IDs、iCloud Containers、App Groups、Merchant IDs、这里主要先容App IDs。

App ID实在就是一个字符串,用来做APP唯一标识的字符串,App ID是大小写敏感的。一个APP有且只能有一个ID,而且唯一。在Project中称为Bundle ID(然则会有些小差异,Bundle ID不能包罗[ * ]号)。在Member Center、Project、iTunes Connect都是需要此ID去标示此App的唯一性。App ID添加之后不能举行修改和删除。

App ID字符的组成和类型


iOS开发者证书以及代码署名学习条记

如上图所示,App ID由Apple发生的一个Team ID作为前缀,后面跟的是开发者自定义的标识符,App ID字符串中只能包罗字符(A-Z,a-z,0-9),连接符(-),点(.)而且此字符串最好是reverse-DNS花样的。例如你公司的域名是cctv.com,你App的名字是Hello,那么你可以用com.cctv.Hello作为你的Bundle ID。

App ID中也可以以[ .* ]来末端,用来示意一个通配类型,如图:


iOS开发者证书以及代码署名学习条记
  • 精准类型的App ID:在标识符中不带[ .* ]来末端的App ID可以称作为精准类型,该类型的App ID可以用来做APP的Bundle ID。
  • 通配符类型App ID:在标识符中以[ .* ]末端的App ID为通配符类型的App ID,该类型的App ID不能用来做APP的Bundle ID,其作用后续会讲到。

每个APP还会对应一串数字的字符串(在itunesconnect建立之后可以获得),通过该字符串可以向Apple提供的http接口(http://itunes.apple.com/lookup?id=**),获取对应的APP在Appstore上的信息,可以用来检测版本更新,更新的log一些其他资料。

电脑桌面连接打印机的方法,5个步骤教你搞定

App ID的作用

  • 在Xcode工程中,Bundle ID储存在Info.plist中,当你编译工程的时刻,他会把此文件拷贝到你的app包中。
  • 在iTunes Connect,用Bundle ID去标识App,在你第一次构建上传之后,你就不能在改变或者删除你的Bundle ID了。
  • 在Member Center,你建立一个和Bundle ID相匹配的App ID。若是App ID是精准类型的,你就必须正确的去匹配你的Bundle ID。

授权机制 (Entitlements)

授权机制决议了哪些系统资源在什么情况下允许被一个应用使用。简朴的说它就是一个沙盒的设置列表,上面列出了哪些行为被允许,哪些会被拒绝。Xcode 会将这个文件作为--entitlements参数的内容传给 codesign。

在 Xcode 的 Capabilities 选项卡下选择一些选项之后,Xcode 就会天生这样一段 XML。 Xcode 会自动天生一个 .entitlements 文件,然后在需要的时刻往内里添加条目。当构建整个应用时,这个文件也会提交给 codesign 作为应用所需要拥有哪些授权的参考。这些授权信息必须都在开发者中央的 App ID 中启用,而且包罗在设置文件中。

授权列表在Member Center中的App ID中设置,这样便可以对应到详细的APP。

装备(Devices)

这里的Device指的就是用来测试或者调试用的装备。可以是iPhone、iPad、iPod、Apple watch以及Apple TV,在Member Center中添加测试Device的步骤实在很简朴,只要拿到对应Deveice的UDID就可以添加了。我们可以行使iTunes、iTools、Xcode这些工具都可以拿到装备的UDID。

需要注重的就是,每个开发者账号,每年最多可以添加100台调试装备,而且添加之后不能更改和删除,想要修改就要等到下一年重新续费的时刻才气举行修改或者删除调试装备了。

设置文件(Provisioning Profiles)

上述提到了证书可以证实APP的所属以及APP的完整性,保证APP的自己的平安。然则却不能细化到APP所使用的服务被苹果认可,好比APN推送服务,而且证书无法限制调试版APP的装机规模。于是苹果想出了mobileprovision。一个mobileprovision文件包罗一下内容:

  1. AppID 这里的AppId可以是精准类型的也可以是通配符类型。
  2. 证书列表 在多人协议开发时,一个mobileprovision文件中可以包罗多个证书文件。
  3. 功效授权列表
  4. 可安装的装备列表 测试和调试mobileprovision文件中包罗装备列表,mobileprovision公布类型的文件中则不包罗装备列表。
  5. 苹果的署名

上述提到的苹果的署名是用的苹果自己的私钥对应的公钥是Worldwide Developer Relations Certificate Authority证书(前言证书)中的公钥,以是该文件天生后,我们是不能举行修改的,必须从Member Center中设置并天生。

设置文件的区分

  • mobileprovision文件中是否包罗装备列表,可以分为带device信息的形貌文件和不带device信息的形貌文件如图:

iOS开发者证书以及代码署名学习条记

iOS开发者证书以及代码署名学习条记
  • 也可以凭据设置文件中包罗的证书文件的类型来区分:开发类型、测试类型、公布类型。
  • 也可以凭据设置文件中包罗的App ID来做区分,若是文件中App ID是精准类型的,那么该设置只能用来对指定的APP举行使用。若是是通配类型的,那么该证书可以用来对匹配的Bundle ID的APP举行使用。若是是Company类型的开发者账号,可以天生一个供团队使用的Team Provisioning Profile,通过这个设置文件,团队内成员可以共用一个设置文件来举行开发调试,固然,App ID得指定成通配类型的。mobileprovision文件结构如下:

iOS开发者证书以及代码署名学习条记

总的来说形貌文件就是整合了证书、AppID、装备以及功效授权列表,从而确定了可由哪台电脑,把哪个App,安装到哪台手机上面。

APP的署名和平安验证历程

ipa文件的署名历程

这张图论述了,开发iOS应用程序时,从申请证书,到打包的大致历程。


iOS开发者证书以及代码署名学习条记

ipa文件的组成

iOS程序最终都市以.ipa文件导出,ipa文件只是一个zip包,可以直接解压,先来领会一下ipa文件的结构:


iOS开发者证书以及代码署名学习条记

解压后,获得上图的Payload目录,下面是个子目录,其中的内容如下:

  • 资源文件,例如图片、html、等等。
  • _CodeSignature/CodeResources。这是一个plist文件,可用文本查看,其中的内容就是是程序包中(不包罗Frameworks)所有文件的署名。注重这里是所有文件。意味着你的程序一旦署名,就不能更改其中任何的器械,包罗资源文件和可执行文件自己。iOS系统会检查这些署名。
  • 可执行文件。此文件跟资源文件一样需要署名。
  • 一个mobileprovision文件.打包的时刻使用的,从MC上天生的。
  • Frameworks。程序引用的非系统自带的Frameworks,每个Frameworks实在就是一个app,其中的结构应该和app差不多,也包罗署名信息CodeResources文件。

ipa文件的平安验证历程

  1. 解压ipa文件
  2. 取出embedded.mobileprovision,通过署名校验是否被篡悔改 a. 其中有几个证书的公钥,其中开发证书和公布证书用于校验署名 b. BundleId c. 授权列表
  3. 校验所有文件的署名,包罗Frameworks
  4. 比对Info.plist内里的BundleId是否相符embedded.mobileprovision文件中的

其他涉及到的问题

总结

当加入到苹果开发者设计之后,苹果通过证书来授权给开发者开发iOS应用,并提供了多种证书类型来知足差异的需求。为了保证APP的平安性和完整性,APP中所有的文件都将被署名。除非重新署名,否则不能对其做任何修改。

mobileprovision文件是一个设置文件,由苹果署名后公布给开发者的。其中包罗了证书、App ID、装备列表、授权列表。通过这些信息从而确定了可由哪台电脑,把哪个App,安装到哪台手机上面。以是证书和mobileprovision文件是署名和打包的两个需要文件。

客服微信:( 181628402)本文链接: https://www.n5w.com/289828.html

版权声明:本文内容由互联网用户自觉孝敬,该文看法仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不负担相关法律责任。如发现本站有涉嫌剽窃侵权/违法违规的内容, 请发送邮件至 394062665@qq.com 举报,一经查实,本站将马上删除。

本文来源于自互联网,不代表n5网立场,侵删。发布者:虚拟资源中心,转载请注明出处:https://www.n5w.com/309617.html

(0)
打赏 微信扫一扫 微信扫一扫
虚拟资源中心虚拟资源中心网络小白
上一篇 2020年8月1日
下一篇 2020年8月1日

相关推荐

联系我们

电话:

在线咨询:点击这里给我发消息

邮件:@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

公众号