内容提要:

  安装app时提示 “无法下载应用,此时无法安装“XXX””。我遇到过多次是由于ios的app出现证书问题。本篇文章讲解用ios证书制作过程,以及每个步骤的解释。

正文:

Xcode签名至少需要2样东西:证书和配置文件。证书有效一年,通常只要不过期不会需要更新,只跟开发账户有关。配置文件则跟app的权限、绑定的设备等很多内容相关。虽然有效期同为一年,但是由于经常需要添加测试设备或者增减app的权限设置(如apple pay,app group等),经常需要更换。而工程文件里,证书是通过名字在索引的,而配置文件则是通过UUID来索引。

打包或运行真机app,需三步认证:

(1)需要证书对应的私钥来进行签名,用于标识这个App是否合法、安全、完整;

(2)需AppId,并验证Bundle ID是否与其一致;

(3)若真机测试,需确认这台iphone设备是否授权。

用ios证书打包app步骤:

(1)在mac的钥匙串中,生成.certSigningRequest文件(即CSR文件);

   解释:

    keychain生成一个包含开发者身份信息的CSR(Certificate Siging Request)文件,同时,KeyChain Access|Keys中新增一对Public|Private Key Pair。

    private key始终保存在Mac OS的Keychain Access中,用于签名对外发布的APP;

    public key随证书(随provisioning profile,随APP)散布出去,对APP签名进行校验认证。

(2)在apple的开发者网站上,使用.certSigningRequest文件,生成.cer文件;

   解释:

    Apple证书颁发机构WWDRCA(Apple Worldwide Developer Relations Certificate Authority)将使用private key对CSR中的public key和一些身份信息进行加密生成数字证书(ios_development.cer),并记录在案(Apple Member Center)。 

(3)下载.cer文件到MAC,双击安装证书。然后在keychain access中看到证书,此keychain里的证书,可右键导出成p12;

   解释:

    除了下载.cer文件到MAC上双击安装证书,还可以在Xcode中添加开发者账号自动同步证书和[生成]配置文件。

    证书安装成功后,keychain Access|keys   ——》 公钥

            keychain Access|certificates   ——》 私钥(即ios_development.cer文件)

    certificate在Xcode中的位置:Xcode Target | Build Setting |Code Signing | Code Signing Identity 下有 Identities from profile

(4)使用appid和.cer文件生成.mobileProvision文件;

   解释:

    Xcode将配置文件provisioning profile 放在目录 ~/Library/MobileDevice/Provisioning Profiles下。

(5)用p12和.mobileprovision打包;

上面提到的文件的关系可以用下图表示:

(https://github.com/SheronLv/Images/tree/master/mobileProfile)

ios证书的更多相关文章

  1. iOS证书失效

    iOS证书突然失效 今早上班打包直接报错,错误如图 根据错误信息到“钥匙串”里面看了一下证书,证书都莫名其妙的失效了,昨天还是好好的. 重新去钥匙串从证颁发中心获取证书,然后登陆开发者账号重新申请证书 ...

  2. IOS证书/私钥/代码签名/描述文件

    1.   相关资源 (1)   钥匙串程序(常用工具->钥匙串),用于创建证书请求.安装证书.导出私钥等 (2)   IOS开发中心:https://developer.apple.com/de ...

  3. iOS证书申请详细流程

    一.事前准备 1.1 准备苹果帐号 首先您需要有一个苹果的开发者帐号,一个mac系统.如果没有帐号可以打开申请加入苹果的开发者计划.如何申请网上有详细的介绍,在此不多做介绍. 如果您已经有了一个帐号, ...

  4. iOS 证书申请和使用详解(详细版)

    对于iOS开发者来说,apple开发者账号肯定不会陌生.在开发中我们离不开它.下面我简单的为大家分享一下关于iOS开发中所用的证书相关知识. 第一部分:成员介绍 1.Certification(证书) ...

  5. iOS 证书调试的理解(Personal)

    证书签名 证书:众所周知,我们申请一个Certificate之前,需要先申请一个Certificate Signing Request (CSR) 文件,而这个过程中实际上是生成了一对公钥和私钥,保存 ...

  6. 阐明iOS证书和provision文件

    译:阐明iOS证书和provision文件 许多iOS开发人员都会和你说在iOS开发很困惑的问题之一,将app真正运行在真实的设备(iPhone iPad而不是模拟器),因为所有的这些都会涉及从苹果获 ...

  7. 真机测试---iOS证书(.p12)和描述文件(.mobileprovision)

    iOS证书和描述文件: 证书类型 使用场景 开发(Development)证书和描述文件 用于开发测试,在starain中打包后可在真机环境通过Safari调试 发布(Distribution)证书和 ...

  8. (转)iOS 证书、密钥及信任服务

    iOS 证书.密钥及信任服务 ——翻译自Apple Reference<Certificate,Key,and Trust Services Programming Guide> 本章描述 ...

  9. iOS 证书与签名 解惑详解

    iOS 证书与签名 解惑详解 分类: iPhone2012-06-06 19:57 9426人阅读 评论(1) 收藏 举报 iosxcodecryptographyappleiphone测试   目录 ...

随机推荐

  1. .net如何把导数据入到Excel

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...

  2. CodeForces Round 199 Div2

    完了,这次做扯了,做的时候有点发烧,居然只做出来一道题,差点被绿. My submissions     # When Who Problem Lang Verdict Time Memory 443 ...

  3. ASP.NET后台JS弹框使前台页面样式丢失 解决办法

    Response.Write("<script>alert('您还没有上传相关图片!');</script>");是向前台输出js 应该用下面的方法 Cli ...

  4. [译]- 6-1 排列窗体上的控件(Laying Out Widgets on a Form)

     排列窗体上的控件(Laying Out Widgets on a Form) 中英文对照:form(窗体),layout(布局或者排列,意思是进行窗体上控件的排列的过程,如大小位置等) absolu ...

  5. ajax无刷新获取php后台数据

    $.ajax({ url:"result.php", //data:{"page":i}, dataType:"json", beforeS ...

  6. php 经典分页(推荐和laypage配合)

    学习地址:http://www.imooc.com/video/2463 <?php //(ps:推荐使用laypage整站式跳转来渲染分页按钮样式比较舒服http://laypage.layu ...

  7. ajax利用json进行服务器与客户端的通信

    1.JQuery中$.ajax()方法参数详解 http://blog.sina.com.cn/s/blog_4f925fc30100la36.html 2.服务器端获取String que=requ ...

  8. CSV to XLSX (专用)

    $csvFile = "F:\ACL\HZ ACL\ACL-APAC.CSV" $path = "F:\ACL\HZ ACL\ACL-APAC.XLSX" $r ...

  9. Jenkins学习记录

    参考资料 官方文档 用MSBuild和Jenkins搭建持续集成环境(1) 用MSBuild和Jenkins搭建持续集成环境(2) 构建基于Jenkins + Github的持续集成环境 Jenkin ...

  10. lua学习笔记

    工作需要,上周对lua赶进度似地学习了一遍,主要参考<lua中文教程>一书,中间参考一些<lua游戏开发实践>,首先说说这两本书,后者不适合初学,里面是对一个游戏脚本系统进行粗 ...