前景介绍

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

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

具体分析

  • 先去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. java删除目录以及目录下文件,java删除文件、删除目录及目录下的文件
  2. Jboss AS7 的一些配置备忘
  3. UVALive 4394 String painter
  4. 基因表达热图聚类并增加行列注释
  5. linux 变量的继承,solaris移植到linux的大坑:bash和sh中环境变量继承的差异
  6. 软件项目管理(学习笔记)
  7. laravel 框架中的路由
  8. STM32 HAL库 结构
  9. 中兴F450电信光猫改桥接模式
  10. podfile文件用到的Ruby语言的学习和使用
  11. 域名被污染解决方法及DNS污染清洗方法
  12. 【完整源码】如何在BSC部署多代层级分红
  13. java敏感词屏蔽器,“敏感词过滤”功能设置
  14. 0x7c97cdf2指令引用的0x00000014内存。该内存不能为”written
  15. 安卓中动态生成界面布局
  16. linux下搜索文件和文件夹
  17. 前端开发问题及解决方案
  18. python3提高pip模块安装速度的方法
  19. 西数 MyBook 西部数据硬盘盒 WD MyBook 盒子破解使用普通SATA硬盘
  20. win7浏览器主页修改不过来_win7电脑浏览器主页无法修改的处理操作过程

热门文章

  1. 2020最新整理:好用的免费/收费的第三方域名解析服务平台
  2. 计算机应用软件用着总是闪退是什么原因
  3. 移动手机网站H5页面如何一键打开拉起微信小程序快速关注公众号功能?
  4. web前端网页制作课作业:用DIV+CSS技术设计的静态网站【四大名著】中国传统文化主题题材设计
  5. Asp连接数据库时的问题Microsoft OLE DB Provider for ODBC Drivers error ‘80004005‘
  6. 计算机课有实验课吗,高校计算机实验课的改革探索
  7. 闲置交易,二手交易,二手商城,同城交易,社交商城类APP源码
  8. Word排版计算机类科研论文的格式保证
  9. 查看UiPath许可证状态
  10. [C#入门] 函数 | 方法