zoukankan      html  css  js  c++  java
  • 关于xcode导出设置中的一些概念

    Development Certificates:在电脑通过秘钥串生成一个私人秘钥,这就是:CertificateSigningRequest.certSigningRequest 简称CSR,团队中,不同的开发者应该都要有独自的development证书。

    App ID:创建的工程的唯一标
      新建:Developer Member Center
      使用:XcodeTarget | Info | Bundle Identifier

    Certificate:证书,证明app的合法性、完整性、未经纂改。
      普通个人开发账号最多可注册iOS Development/Distribution证书各2个。
      根证书:CA(证书授权中心)颁发给自己的,信任链的起点。iOS、Mac OS X自动安装AppleWWDRCA.cer。

    CSR:Certificate Signing Request,申请证书
      新建:
      (1)KeyChain中请求证书,填写开发账号邮件和常用名称,保存到本地;
      (2)KeyChain将生成一个CSR文件,同时Keys会新增一堆Public/Private Key Pair;
        private key:始终保存在Mac OS的Keychain Access中,用于签名(CodeSign)对外发布的App;
        public key:一般随证书(随Provisioning Profile,随App)散布出去,对App签名进行校验认证。用户必须保护好本地Keychain中的private key,以防伪冒。
      (3)Developer Center上传该CSR文件,来添加证书,
      Apple证书颁发机构WWDRCA(Apple Worldwide Developer Relations Certification Authority)将使用private key对CSR中的public key和一些身份信息进行加密签名生成数字证书(ios_development.cer)并记录在案(Apple Member Center)。
      (4)下载生成好的证书文件,并双击
      在KeychainAccess|Keys中展开创建CSR时生成的Key Pair中的私钥前面的箭头,可以查看到包含其对应公钥的证书;
      在Keychain Access|Certificates中展开安装的证书(ios_development.cer)前面的箭头,可以看到其对应的私钥。
      当然也可在Xcode中添加开发账号自动同步证书和[生成]配置文件。
      使用:
      Certificate被配置到【Xcode Target|Build Settings|Code Signing|Code Signing Identity】。

    Provisioning Profiles:类别 + AppID(单选) + Certificates(多选) + Devies(多选),每个app都应该有独自的provisioning peofile。
      一个App可以允许不同的开发者,在不同的多个设备上调试。
      创建Provisioning Profile时,可以选择多个certificates,就意味着团队中不同的开发者子不同电脑上可以使用同一个provisioning pforile。
      目录:~/Library/MobileDevice/Provisioning Profiles。
      使用:
      Provisioning Profile被配置到【XcodeTarget|Build Settings|Code Signing|Provisioning Profile】下,
      然后在Code Signing Identity下拉可选择Identities from Profile "..."(即Provisioning Profile中包含的Certificates)。

    Xcode中配置的Code Signing Identity(entitlements、certificate)必须与Provisioning Profile匹配,
    并且配置的Certificate必须在本机Keychain Access中存在对应Public/Private Key Pair,否则编译会报错。

    Code Singing:签名
      每个证书(其实是公钥)对应Key Pair中的私钥会被用来对内容进行数字签名(CodeSign)——使用哈希算法生成内容摘要(digest)。

    验证过程:
      原理:Provisioning Profiles打包时会进ipa,app安装时,会被拷贝到ios设备中。
      验证:左边为app中的信息,右边为对应的provisioning profile中的信息
      bundle ID ------ App ID
      entitements ------ entitements
      certificte ------ certificte
      devicee ID ------ Device ID

    如果要打包或者在真机上运行一个APP,一般要经历以下三步:
      首先,需要指明它的App ID,并且验证Bundle ID是否与其一致;
      其次,需要证书对应的私钥来进行签名,用于标识这个APP是合法、安全、完整的;
      然后,如果是真机调试,需要确认这台设备是否授权运行该APP。

    不同电脑可以通过p12共享同一个私钥。

    提交CSR的时候需要你MAC的KeyChain Assistant,相当于跟Apple说,“我这里有台MAC myMAC”。
    App Id 相当于跟Apple说,“我这里有个App myApp”。
    Device Id(UUID), "我这里有个 device myDevice"

    问题:我们游戏的App ID是哪一个?是否和Bundle Identifier名字完全一样?
    Mac的KeyChain Access(证书助理)在哪儿?

  • 相关阅读:
    ListNode Java创建链表
    Remove Nth Node From End of List LeetCode Java
    Rotate List LeetCode Java
    LeetCode刷题感想
    Swap Nodes in Pairs LeetCode Java
    Reverse Nodes in k-Group LeetCode Java
    334. Increasing Triplet Subsequence
    300. Longest Increasing Subsequence
    130. Surrounded Regions
    200. Number of Islands
  • 原文地址:https://www.cnblogs.com/sifenkesi/p/5136278.html
Copyright © 2011-2022 走看看