苹果企业签名

您当前的位置:主页 > 新加版块左 > 苹果企业签名 >

一文讲清苹果开发者的ios证书申请/企业签名/IPA签名/CSR描述文件支付购

来源:未知 编辑:admin 发布时间:2024-02-01 共人阅读
 
iOS各类证书一直很复杂,即使拥有多年开发经验的开发者纸飞机@cheng716051,还是会搞混淆。博主今天从全方面来剖析iOS证书机制。
 
一. 前言
 
我们都知道开发一款应用需要配置苹果常用证书、AppId,Provisioning Profiles,如果有推送还需要配置推送证书等,所以索性将所有的证书的配置流程都记录下来,方便以后查阅。
 
App ID(bundle identifier)
 
App ID即Product ID,用于标识一个或者一组App。
 
App ID应该和Xcode中的Bundle Identifier是一致(Explicit)的或匹配(Wildcard)的。
 
App ID字符串通常以反域名(reverse-domain-name)格式的Company Identifier(Company ID)作为前缀(Prefix/Seed),一般不超过255个ASCII字符。
 
App ID全名会被追加Application Identifier Prefix(一般为TeamID.),分为两类:
 
Explicit App ID:唯一的App ID,用于唯一标识一个应用程序。例如“com.apple.garageband”这个App ID,用于标识Bundle Identifier为“com.apple.garageband”的App。
Wildcard App ID:含有通配符的App ID,用于标识一组应用程序。例如“*”(实际上是Application Identifier Prefix)表示所有应用程序;而“com.apple.*”可以表示Bundle Identifier以“com.apple.”开头(苹果公司)的所有应用程序。
用户可在Developer MemberCenter网站上注册(Register)或删除(Delete)已注册的App IDs。
 
App ID被配置到【XcodeTarget|Info|Bundle Identifier】下;对于Wildcard App ID,只要bundle identifier包含其作为Prefix/Seed即可。
 
二.iOS 签名机制
 
我们先来了解一下 ipa 包的签名机制
 
 
 
点击输入图片描述(最多30字)
 
开发者 Mac 系统中生成一对非对称加密算法的公私钥 M,将公钥和开发者信息生成 CSR 文件给到苹果服务器 苹果有自己的公私钥 K,其中公钥 K 存在每一台的 iPhone 设备上,私钥 K 则保存在苹果服务器。根据 CSR 内容利用私钥 K 进行签名并生成证书,同时也根据在开发者后台填写的信息(Bundle ID,权限等)和证书生成描述文件(mobileprovision) 在开发者设备上打包时,会把描述文件一并打包到 ipa 中,并利用私钥 M 对包的内容进行签名 在安装到设备上时,会进行两次验证:利用设备上的公钥 K 校验 ipa 包内的证书文件(证书是通过苹果私钥 K 签名),校验证书是否有效 上一步证书校验通过后,会拿出证书内的公钥 M 来校验 ipa 包(ipa 包是通过开发者私钥 M签名),校验 ipa 包是否可安装
 
苹果通过以上的双重验证机制,来确保在开发阶段 App 的安装行为的合法性。当将 App 提交到 App Store 后,苹果会对 App 重新加密签名,安装时就只需验证苹果的签名。
 
推荐一个重签名工具:iOS-App-Signer
 
三.各种证书详解
 
1.开发者账号
 
个人:99 美元/年,不需要邓白氏码,可上线AppStore
 
公司:99 美元/年,需要邓白氏码,可上线AppStore,允许团队协作
 
企业:299 美元/年,需要邓白氏码,不可上线AppStore,允许团队协作
 
2.iOS证书
 
iOS证书是用来证明iOS App内容(executable code)的合法性和完整性的数字证书。对于想安装到真机或发布到AppStore的应用程序(App),只有经过签名验证(Signature Validated)才能确保来源可信,并且保证App内容是完整、未经篡改的
 
开发证书:Development证书用来开发和调试应用程序
发布证书:Production主要用来分发应用程序
普通个人开发账号最多可注册iOS Development/Distribution证书各2个,用户可在网站上删除(Revoke)已注册的Certificate
3.App ID和设备
 
较为简单,此处略过
4.CSR描述文件
 
通过Keychain证书助理从证书颁发机构请求证书
Keychain将生成一个包含开发者身份信息的CSR(Certificate Signing Request)文件
Private Key始终保存在Mac OS的Keychain Access中,用于签名(CodeSign)对外发布的App
Public Key一般随证书(随Provisioning Profile,随App)散布出去,对App签名进行校验认证。用户必须保护好本地Keychain中的private key,以防伪冒
Apple证书颁发机构WWDRCA(Apple Worldwide Developer Relations Certification Authority)将使用Private Key对CSR中的public key和一些身份信息进行加密签名生成数字证书(ios_development.cer)并记录在案(Apple Member Center)
从Apple Member Center网站下载证书到Mac上双击即可安装(当然也可在Xcode中添加开发账号自动同步证书和[生成]配置文件)。证书安装成功后,在KeychainAccess|登录|密钥 中展开创建CSR时生成的Key Pair中的私钥前面的箭头,可以查看到包含其对应公钥的证书(Your requested certificate will be the public half of the key pair.);在Keychain Access|登录|证书 中展开安装的证书(ios_development.cer)前面的箭头,可以看到其对应的私钥。
 
 
苹果证书申请2023年
 
 
 
苹果证书申请2023年
 
4.配置文件Provisioning Profile
 
 
 
点击输入图片描述(最多30字)
 
Provisioning Profile文件包含了上述的所有内容: 证书、App ID和设备。
一个Provisioning Profile对应一个Explicit App ID或Wildcard App ID(一组相同Prefix/Seed的App IDs)。在网站上手动创建一个Provisioning Profile时,需要依次指定App ID(单选)、证书(Certificates,可多选)和设备(Devices,可多选)。用户可在网站上删除(Delete)已注册的Provisioning Profiles。
Provisioning Profile决定Xcode用哪个证书(公钥)/私钥组合(Key Pair/Signing Identity)来签署应用程序(Signing Product),将在应用程序打包时嵌入到.ipa包里。安装应用程序时,Provisioning Profile文件被拷贝到iOS设备中,运行该iOS App的设备也通过它来认证安装的程序。
如果要打包或者在真机上运行一个APP,一般要经历以下三步:
首先,需要指明它的App ID,并且验证Bundle ID是否与其一致;
其次,需要证书对应的私钥来进行签名,用于标识这个APP是合法、安全、完整的;
然后,如果是真机调试,需要确认这台设备是否授权运行该APP。
5.团队配置文件Team Provisioning Profile
 
概念:每个Apple开发者账号都对应一个唯一的 Team ID,Xcode早期发布版本中加入了Team Provisioning Profile这项新功能。
 
 
点击输入图片描述(最多30字)
 
 
 
点击输入图片描述(最多30字)
 
在Xcode中添加Apple Developer Account时,它将与Apple Member Center后台勾兑 自动生成iOS Team Provisioning Profile(Managed by Xcode)。
 
Team Provisioning Profile包含一个为Xcode iOS Wildcard App ID()生成的iOS Team Provisioning Profile:(匹配所有应用程序),账户里所有的Development Certificates和Devices都可以使用它在这个team注册的所有设备上调试所有的应用程序(不管bundle identifier是什么)。同时,它还会为开发者自己创建的Wildcard/Explicit App IDs创建对应的iOS Team Provisioning Profile。
 
Team Provisioning Profile生成/更新时机
Add an Apple ID account to Xcode
Fix issue "No Provisioning Profiles with a valid signing identity" in Xcode
Assign Your App to a Team in Xcode project settings of General|Identity
Register new device on the apple development website or Xcode detected new device connected
利用Xcode生成和管理的iOS Team Provisioning Profile来进行开发非常方便,可以不需要上网站手动生成下载Provisioning Profile。
Team Provisioning Profile同Provisioning Profile,只不过是由Xcode自动生成的,也被配置到【XcodeTarget|Build Settings|Code Signing|Provisioning Profile】下。
6.证书与签名
 
Code Signing Identity
 
 
点击输入图片描述(最多30字)
 
Xcode中配置的Code Signing Identity(entitlements、certificate)必须与Provisioning Profile匹配,并且配置的Certificate必须在本机Keychain Access中存在对应Public/Private Key Pair,否则编译会报错。
 
Xcode所在的Mac设备(系统)使用CA证书(WWDRCA.cer)来判断Code Signing Identity中Certificate的合法性:
 
若用WWDRCA公钥能成功解密出证书并得到公钥(Public Key)和内容摘要(Signature),证明此证书确乃AppleWWDRCA发布,即证书来源可信;
再对证书本身使用哈希算法计算摘要,若与上一步得到的摘要一致,则证明此证书未被篡改过,即证书完整。
Code Signing
每个证书(其实是公钥)对应Key Pair中的私钥会被用来对内容进行数字签名(CodeSign)——使用哈希算法生成内容摘要(digest)。
Xcode使用指定证书配套的私钥进行签名时需要授权,选择【始终允许】后,以后使用该私钥进行签名便不会再弹出授权确认窗口。
 
 
点击输入图片描述(最多30字)
 
Verify Code Signature with Certificate
 
上面已经提到,公钥被包含在数字证书里,数字证书又被包含在描述文件(Provisioning File)中,描述文件在应用被安装的时候会被拷贝到iOS设备中。
 
第一步,App在Mac/iOS真机上启动时,需要对配置的bundle ID、entitlements和certificate与Provisioning Profile进行匹配校验.
 
 
 
点击输入图片描述(最多30字)
 
第二步,iOS/Mac真机上的ios_development.cer被AppleWWDRCA.cer中的 public key解密校验合法后,获取每个开发证书中可信任的公钥对App的可靠性和完整性进行校验。
 
iOS/Mac设备(系统)使用App Provisioning Profile(Code Signing Identity)中的开发证书来判断App的合法性:
 
若用证书公钥能成功解密出App(executable code)的内容摘要(Signature),证明此App确乃认证开发者发布,即来源可信;
再对App(executable code)本身使用哈希算法计算摘要,若与上一步得到的摘要一致,则证明此App(executable code)未被篡改过,即内容完整。
小结:
基于Provisioning Profile校验了CodeSign的一致性;
基于Certificate校验App的可靠性和完整性;
启动时,真机的device ID(UUID)必须在Provisioning Profile的ProvisionedDevices授权之列。
7.在多台机器上共享开发账户/证书
 
 
 
点击输入图片描述(最多30字)
 
1.Xcode导出开发者账号(*.developerprofile)和 PKCS12文件(*.p12)
 
进入Xcode Preferences|Accounts:
选中Apple IDs列表中对应Account的的Email,点击+-之后的☸|Export Apple ID And Code Signing Assets...,可导出包含account/code signing identity/provisioning profiles信息的*.developerprofile(Exporting a Developer Profile)文件供其他机器上的Xcode开发使用(Import该developerprofile)。
2.Keychain Access导出PKCS12文件(*.p12)
在Keychain Access|Certificates中选中欲导出的certificate或其下private key,右键Export或者通过菜单File|Export Items导出Certificates.p12——PKCS12 file holds the private key and certificate。
其他Mac机器上双击Certificates.p12(如有密码需输入密码)即可安装该共享证书。有了共享证书之后,在开发者网站上将欲调试的iOS设备注册到该开发者账号名下,并下载对应证书授权了iOS调试设备的Provisioning Profile文件,方可在iOS真机设备上开发调试。
8.其他
 
云管理式证书
一种新的管理证书方式,比较牛逼
简述:在更新xcode13后,苹果上线了一种新的证书——云管理式证书,包括Distribution Managed和Development Managed。在打包或真机运行的时候可以使用云管理式证书对其应用进行签名,而且这种证书可以自动发起轮换,即不需要关心他的过期时间。同时,既然叫云管理证书,那也就不需要下载到本地钥匙串了。整个签名过程在苹果服务器线上完成。
苹果的这个功能大大简化了开发的步骤,过去在开发之前,需要配置和导入一系列证书。而现在在一台新电脑上进行开发和打包,只需要登录对应的Apple ID就可以直接编译运行和打包了,其他事情不需要开发者关心。


风赚网专注购买苹果开发者账号购买苹果个人开发者账号购买苹果公司开发者账号购买苹果企业开发者账号超级签名TF签名企业签名苹果ios超级签名苹果马甲包上架开发苹果IOS应用商店代上架苹果APP代上架苹果马甲包现包苹果马甲包购买出售购买苹果马甲包安卓谷歌马甲包上架开发安卓谷歌APP代上架安卓谷歌马甲包现包安卓谷歌马甲包购买出售购买安卓谷歌马甲包安卓IOS应用商店代上架小米代上架华为代上架vivo代上架oppo代上架软件著作申请
 
  • 本文地址:http://www.fengtoup2p.com/xinjiabankuaizuo/pingguoqiyeqianming/2024/0201/2403.html
  • 本文题目:一文讲清苹果开发者的ios证书申请/企业签名/IPA签名/CSR描述文件支付购



友情链接
风赚网 小米应用商店代上架 华为应用商店代上架 安卓应用市场代上架 IOS应用商店代上架 APP马甲包开发上架 购买苹果开发者企业 购买开发者个人账号 出售苹果开发者账号 出售开发者个人账号 imtoken马甲包 出售开发者企业账号 回收开发者账号 回收开发者企业账号 赚钱网站 数字钱包马甲包 苹果testflight签名 数字钱包 购买谷歌开发者账号 购买小米开发者账号 苹果APP代上架 苹果马甲包制作 赚钱网站 赚钱游戏 苹果马甲包定制开发 苹果马甲包 APP软件著作申请 数字货币 比特派马甲包 购买苹果马甲包 购买安卓马甲包 出售苹果马甲包 出售安卓马甲包 购买苹果开发者账号 购买华为开发者账号 安卓APP代上架 imtoken官方下载 应用宝APP代上架 苹果超级签名 苹果企业签名 APP软著代办 马甲包上架 苹果TF签名 苹果马甲包 马甲包上架 谷歌马甲包 安卓马甲包 OPendime马甲包 库神钱包马甲包 MetaMask马甲包 KeepKey马甲包 Polkawallet马甲包 Coinbase Wallet马甲包 hyperpay马甲包 AToken马甲包 极客钱包马甲包 Trezor钱包马甲包 Kcash钱包马甲包 Cobo钱包马甲包 Mist钱包马甲包 RHY钱包马甲包 imtoken官方下载APP bitpie官方下载 metamask官方下载 metamask马甲包 欧易官网 火币官网 币安官网 赚钱平台 苹果开发者账号购买 苹果开发者个人账号 苹果开发者公司账号 苹果企业开发者账号 苹果开发者账号 苹果开发者个人账号 赚钱方法 苹果公司开发者账号