签名的核心就是provision profile要与当前的bundle id及本地的私钥相匹配。

teamid:每个开发者账号都会对应一个teamid。企业的开发这账号除了对应一个teamid外,下面的每一个开发者还会有一个personal team,当然会有不同的teamid。

xcode中自动签名选teamid的作用就是找到teamid对应的profile及证书。

以下为推测的过程,仅供参考:

当选择自动签名时,首先需要选择team,当选择team过后,xcode会根据teamid去本地的profile文件夹中去遍历此teamid对应的provision profile文件,从中找到一个跟本地私钥匹配的provision profile文件,查找结束(这个过程不需要联网,跟手动签名一致,因为手动签名也是自己手动去选择provision profile)。

此时可能会发生两种情况:

  1. 目标provision profile 文件不存在。

此时xcode会联网,去开发者网站遍历此teamid对应的证书。此时又会有三种情况:

1)teamid对应的证书不存在,那么xcode会重新创建一个证书(当然本地会创建对应的私钥)并用这个证书去创建一个新的provision profile。

2)teamid对应的证书在本地都没有对应的私钥,那么xcode会重新创建一个证书(当然本地会创建对应的私钥)并用这个证书去创建一个新的provision profile。(这时候还有一种情况是创建的证书达到上限,此时有两种解决方案:一种是换一个子账号,另一种是把别人电脑上的私钥导到自己电脑上)。

3)teamid对应的证书中至少有一个对应的私钥在本机存在,那么就用这个证书重新创建一个provision profile。

  1. 找得到provision profile,但是此provision profile对应的本机的证书不存在。xcode会revoke开发者网站上的certificate,同时重新创建一个certificate(当然本地会创建对应的私钥)并用这个certificate去创建一个新的provision profile。

关于自动签名证书问题的终极解决方案:

  1. 把本机和开发者网站上本机的证书及本机中的profile文件都删除,然后xcode只登陆需要的那个账号,然后重启xcode,所有证书及profile都让xcode重新生成。
  1. 如果一个账号创建的证书达到上限,并且只想用一个账号的时候,可以把别人电脑上的私钥导到自己电脑上。

xcode 自动签名原理的更多相关文章

  1. xcode 自动签名、手动签名

    手动签名:需要手动生成p12文件(私钥),然后将对应的公钥上传到开发者网站,生成证书,进一步生成对应的描述文件,然后在xcode中手动指定描述文件,这个描述文件中包含与本地p12文件对应的证书. 自动 ...

  2. Xcode自动选择证书

    从xcode3时代习惯了手动选择证书,即 Provisioning Profile和 Code Signing Identify. 而随着团队扩大,应用量增多,需要管理的证书也越来越多,每次从长长的l ...

  3. iOS 应用签名原理&重签名

    在苹果的日常开发中,真机测试与打包等很多流程都会牵扯到各种证书,CertificateSigningRequest,p12等.但是很多相应的开发者并不理解iOS App应用签名的原理和流程.今天着重讲 ...

  4. ionic ios 友盟多渠道/自动签名/加固之腾讯云。乐固

    之前写了一篇文章主要是介绍使用gradle进行多渠道分发处理的文章--链接:http://www.cnblogs.com/happen-/p/6029387.html 最近在做app上线的处理,发现某 ...

  5. 友盟ionic多渠道自动签名app

    这几天公司的运营部门要求添加流量统计功能,集成了友盟的插件,中间遇到很多的问题,在这里说明记录一下,为遇到相同问题的朋友们减少麻烦 问题一.插件的使用直接将友盟sdk系在放置到项目根目录下plugin ...

  6. spring boot实战(第十三篇)自动配置原理分析

    前言 spring Boot中引入了自动配置,让开发者利用起来更加的简便.快捷,本篇讲利用RabbitMQ的自动配置为例讲分析下Spring Boot中的自动配置原理. 在上一篇末尾讲述了Spring ...

  7. [BS-08]注意Xcode自动提示好用但极易出错,务必看清方法的名称

    今日在写一个UIBarButtonItem的分类时,在Xcode自动提示时,因未仔细查看,错将需要用到setBackgroundImage的地方,选择成setImage,结果导致button的boun ...

  8. APK签名原理

    网上已有多篇分析签名的类似文章,但是都有一个共同的问题,就是概念混乱,混乱的一塌糊涂. 在了解APK签名原理之前,首先澄清几个概念: 消息摘要 -Message Digest 简称摘要,请看英文翻译, ...

  9. 360加固apk并自动签名

    我们知道Android加混淆之后,代码的安全性得到了提高,即使你hook,反编译得到的也是乱码的,对于阅读性造成了影响,为了增强代码的破解难度,我们通常退对apk进行加固,常见的有腾讯,360,爱加密 ...

随机推荐

  1. CreateThread给线程函数传递的参数

      HANDLE WINAPI CreateThread ( __in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes, // 指向SECURITY_ATTR ...

  2. 【SpringData学习】

    1.注解@Modifying 在springData中,大部分给出的接口都是查询的,那要进行删除和更新的时候,大部分都需要使用@Query 进行手写代码.并且需要使用@Modifying注解. 使用场 ...

  3. Xcode 运行时配置

    有时候,我们的app在测试时需要连接到一个testing服务器,在打包为企业证书的app时又需要连接到另一个ad hoc 服务器,或者我们想企业证书打包的app和debug模式打包的app有不同的AP ...

  4. gridview ItemTemplate下绑定数据

    <asp:TemplateField HeaderStyle-Width=" > <ItemTemplate> </ItemTemplate> </ ...

  5. 《Java编程思想》读书笔记-对象导论

    计算机是头脑延伸的工具,是一种不同类型的表达媒体.本文以背景性的和补充性的材料,介绍包括开发方法概述在内的面向对象程序设计(Object-oriented Programming,OOP)的基本概念. ...

  6. XLua热更新用法全流程总结(所有容易出问题的点)

    Xlua热更新流程总结 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创 ...

  7. day07 深浅拷贝

    今日概要 深浅拷贝(重点) 文件操作 详细内容 直接赋值: 直接将对象的引用赋值给另一个对象 v1=1000 v2=v1 #v1 v2指向同一个内存地址 print(id(v1),id(v2))#相等 ...

  8. Nmap使用指南

    一.目标指定 1.CIDR标志位 192.168.1.0/24 2.指定范围 192.168.1.1-255 192.168.1-255.1(任意位置) 3.IPv6地址只能用规范的IPv6地址或主机 ...

  9. 关于C++指针

    C++继承于C,对C的语法做了一些扩展.C语言中的指针占一个机器长度(32位处理器上一个指针占32位,64位处理器上安装64位操作系统一个指针占64位),指针的作用就是使用这块内存(4字节或者8字节) ...

  10. BCC校验小知识

    BCC校验其实是奇偶校验的一种,但也是经常使用并且效率较高的一种.所谓BCC校验法,就是在发送前和发送后分别把BCC以前包括ETX字符的所有字符按位异或后,按要求变换(增加或去除一个固定的值)后所得到 ...