前景介绍

之前有自己去做过上架,也去了解了下这方面的知识,最近也继续的去了解了一下,这边也想自己总结下。

我们如果要上架肯定是少不了证书的签名的,我们配置证书也是要在苹果官网来进行的,一般的步骤是这样子的

具体分析

  • 先去keychain中去选择从证书颁发机构去请求证书,这样的话就会在本地生成了一个公钥,一个私钥,在CertificateSigningRequest.certSigningRequest文件中就是存储了公钥和开发者的一些信息,然后私钥是保存在我们自己的电脑中的。
  • 之后我们就会把CertificateSigningRequest.certSigningRequest文件上传到苹果后台去生成证书,这个时候苹果会返回给我们的就是一个CER证书,可供我们去下载。
  • 当我们去下载完成之后,并双击打开后,这个文件会出现在钥匙串里。它与本地钥匙串里的私钥匹配之后,开发者就可以使用它了
  • 当我们在Xcode中去选择了下载回来的证书的时候其实是会去找keychain中的私钥去对app进行编译签名的,如果我们希望自己的证书也要给其他电脑用,并且希望其他电脑也可以对这个APP进行编译签名的话,我们一般会给证书做个备份,这个备份就是个P12文件。这个p12文件,它不仅包含CER的信息,还有私钥信息,即: P12备份文件 = CER文件 + 私钥;所以有了这个p12文件和与CER证书对应的描述文件也就是mobileprovision文件,其他电脑也可以进行编译签名了。
  • 之后我们再去配置AppID、权限、设备等等,然后最后我们会去下载Provisioning Profile文件
  • 最后呢其实Xcode会把之前生成的证书文件,会在本地找到私钥,然后进行对App进行签名,并且会把Provisioning Profile文件命名为embedded.mobileprovision然后一起打包进去

    其实embedded.mobileprovision文件中存放的就是你App的名字、平台、UUID以及支持的设备信息也就是我们在苹果官网自己进行设置的调试设备。
    以及需要注意的是Provisioning Profile文件当中有很多额外信息,实际上这个文件中除了设备ID/AppID信息等信息还有App里iCloud、push、后台运行 等权限苹果都是会进行控制,苹果把这些权限开关统称为Entitlements,它需要通过签名去授权。

    简单的总结

    1、 CertificateSigningRequest:证书请求文件,包含了公钥
    2、 .p12:包含了本地私钥,可以导入到其他电脑进行使用
    3、Provisioning Profile:包含了证书/Entitlements 等数据。
    4、Entitlements:里面有的就是App的权限开关列表

在安装App的时候,系统会通过内置的公钥 B,去验证embedded.mobileprovision的数字签名是否正确,验证证书后确保了公钥A是苹果认证过的,再用公钥A去验证经过私钥A进行过的APP 的签名。

验证步骤验证其实好包括去验证设备 ID 是否在手机ID 列表上,如果不在的话就有可能发送闪退,然后再看AppID 是否对应得上,权限开关是否跟 APP 里的 Entitlements 对应等等。

关于App中的证书的话其实就是,允许安装的设备 ID 列表 和 App对应的 AppID 等数据,都在第三步这里跟公钥A一起组成的证书。这些信息其实都在embedded.mobileprovision这一个文件当中。

其实我们通过个人开发者证书,能够去真机调试App也是有一个embedded.mobileprovision文件的。需要注意的是这里通过个人开发者证书安装的App,只有7天有效期,可以在embedded.mobileprovision有很醒目的过期时间

关于App签名的步骤相关推荐

  1. Android获取电子签名内容,Android Studio 获取app签名

    今天在学习整合高德地图的时候,需要app的sha1码. image.png Android Studio 获取app签名的步骤如下: 1.Build下的Generate Signed APK imag ...

  2. [转]Android学习系列(1)--为App签名(为apk签名)

    本文转自:http://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html 写博客是一种快乐,前提是你有所写,与人分享,是另 ...

  3. iOS App 签名的原理(转)

    iOS 签名机制挺复杂,各种证书,Provisioning Profile,entitlements,CertificateSigningRequest,p12,AppID,概念一堆,也很容易出错,本 ...

  4. iOS App签名的原理

    Linux编程点击右侧关注,免费入门到精通! 作者丨雪山飞狐_91ae https://www.jianshu.com/p/22f4a8f6dd1c iOS的签名机制很复杂,各种证书,Provisio ...

  5. Android App签名

    Andriod应用程序如果要在手机或模拟器上安装,必须要有签名! 1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序, ...

  6. 苹果怎么安装未签名的app_稳定不掉第三方app签名怎么弄

    稳定不掉第三方app签名怎么弄 c6wlmsv 稳定不掉第三方app签名怎么弄 苹果的者账并非能轻易申请下来,如果自己去申请者账是行不通的,这是为什么呢.在正常的情况下,只要内容是不涉及到灰色,也不违 ...

  7. 为App签名(为apk签名)

    1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本 ...

  8. Android为App签名(为apk签名)

    写博客是一种快乐,前提是你有所写,与人分享,是另一种快乐,前提是你有舞台展示,CSDN就是这样的舞台. 这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用. 1 ...

  9. android app签名详解

    本文及文中图片转自:https://mp.weixin.qq.com/s?__biz=MzIwMzYwMTk1NA==&mid=2247493825&idx=1&sn=e926 ...

最新文章

  1. 配置tomcat的环境变量
  2. TensorFlow学习笔记之二(使用TensorFlow实现神经网络)
  3. mysql全量备份、增量备份实现方法
  4. python11-28笔记(1.6-1.7)
  5. 华为三星折叠手机可看不可摸;小米架构再调整;杨幂 AI 换脸视频制作者回应 | 极客头条...
  6. 007 使用SpringMVC开发restful API五--异常处理
  7. 滚轮事件的防冒泡、阻止默认行为
  8. SM951 NVMe 版本安装Win7 的正确方法
  9. 不能注册DLL/OCX:RegSvr32失败 0x5
  10. 【AVR单片机】【Microchip Studio】01项目创建
  11. 各大网站收录、搜索引擎的提交入口
  12. 车站计算机系统的简称,AFC计算机系统.ppt
  13. (HTML+CSS+JS)仿小米官网首页 含源码
  14. 会计记录accton
  15. python的交互式是什么,python交互是什么
  16. VR全景云展厅,实现7*24小时的线上宣传能力!
  17. C#中的DoEvents()
  18. Android中基于心知天气API获取天气信息
  19. 使用QE绘制Band Structure
  20. 【axios源码】- 取消请求cancel模块研读解析

热门文章

  1. 计算机集群搭建教程,Windows搭建Redis集群-详细教程
  2. 哪种锻炼方式最能让程序员远离亚健康? - 强烈推荐
  3. CRM客户关系管理能给企业带来什么样的效果
  4. 安装nginx和zookeeper
  5. excel不显示提示对话框
  6. 【vue3】vue3+ts+vite项目设置路径别名
  7. IDEA try catch快捷键、 快速生成get set 方法快捷键、快速生成有参和无参构造方法快捷键
  8. node-addon-api的设计和实现
  9. Nyoj 954 N!
  10. Net-MVC+EasyUI之 TinyMCE使用