签名的核心就是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. mysql中describe关键字

    今天写代码的时候,有一个类的数据始终不能插入,老是提示在You have an error in your SQL syntax; check the manual that corresponds ...

  2. keil安装

    安装准备: 一个keil安装程序,一个注册机 安装步骤.... 软件安装: 打开C51V901.EXE 安装程序 点击Next, 同意上述证书协议 重复点击Next,知道出现finish停下. 3个多 ...

  3. emmet简单记录

    一.引式符号 html:5 or  ! . class #  id []标签内属性 pycharm不支持  {}标签的内容 pycharm不支持 ()分组标签  pycharm不支持 二.关系符号 1 ...

  4. js补零方法

    方法如下: function getZero(num, index) { if((parseInt(num) != 0) && (typeof num == "undefin ...

  5. alpha冲刺(1/10)

    前言 队名:旅法师 作业链接 队长博客 燃尽图 会议 会议照片 会议内容 陈晓彬(组长) 今日进展: 召开会议 安排任务 博客撰写 构建之法的阅读 问题困扰: Java的学习感觉无从下手,学基础语法好 ...

  6. 解决使用C/C++配置ODBC链接中文显示为问号(?)的问题

    使用VS2015中使用OBDC连接到数据库时,数据库可以正常显示,但是在VS上输出是乱码,如图: 在数据库中course表显示: vs程序结果显示: 查找原因,因为char默认读ascii型,只读到1 ...

  7. robot framework浏览器与驱动的匹配

    一.谷歌浏览器和火狐浏览器与驱动不匹配产生的问题 1.若在运行过程中出现[Unable to find a matching set of capabilities ][ WebDriverExcep ...

  8. 加载XML文件到系统中

    using System;using System.Data;using System.IO;using System.Xml;using System.Collections.Generic; na ...

  9. HDU5542 The Battle of Chibi

    题意 给出长度为n的序列,问这个序列中有多少个长度为m的单调递增子序列. \(1\le M\le N\le 1000\) 分析 用F[i,j]表示前j个数构成以Aj为结尾的数列中,长度为i的严格递增子 ...

  10. 使用maven-tomcat7-plugins时调试出现source not found解决

    直接看下面的步骤: 步骤1: 步骤2: 步骤3: 步骤4: