zoukankan      html  css  js  c++  java
  • iOS的代码签名和沙盒机制

    代码签名机制

    代码签名的作用

    保证应用里所包含的内容正如它所说的那样不多不少

    代码签名的核心

    证书certificate 和 私钥private key

    代码签名的工具

    命令行工具codesign

    • 签名
    • 修改签名
    • 查看签名信息
    • 认证签名信息是否有效

    备注

    运行在模拟器上的app不需要签名
    运行在越狱设备上的app不需要签名

    一个已签名应用的组成

    • 可执行文件
      任何可执行的二进制文件都可以被设置签名:无论是动态库,命令行工具,还是.app后缀的程序包
      签名会改动可执行文件的文件内容,将签名数据写入二进制文件中
    • 资源文件
      签名的过程中会在程序包(.app)中新建一个叫做 _CodeSignatue/CodeResources 的文件。这个文件中存储了被签名的程序包中所有文件的签名,包括资源文件和代码文件
      一个bundle中的可执行bundle(比如extension)是需要单独签名的个体

    沙盒机制

    沙盒机制的作用

    限制应用能访问系统的哪些资源

    授权entitlements

    在Capabilities中选定了一些选项后,会自动生成.entitlements文件
    授权信息会被包含在应用的签名信息中

    配置文件provisioning

    在整个代码签名和沙盒机制中有一个组成部分将签名,授权和沙盒联系了起来,那就是配置文件 (provisioning profiles)
    配置文件是一组信息的集合,这组信息决定了某个应用能否在某个特定的设备上运行起来
    通常包括:DeveloperCertificates、ProvisionedDevices、Entitlements等有效信息。这里的entitlements是在developer center中创建该配置文件时设置的,有可能与Xcode中根据capacities生成的.entitlements不一致,从而造成问题

    原文链接

    http://www.objc.io/issue-17/inside-code-signing.html

  • 相关阅读:
    Failed to read auto-increment value from storage engine错误的处理方法
    今天测试了一下 sqlalchemy 性能
    PIL The _imaging C module is not installed
    Windows下C语言调用dll动态链接库
    Linux下动态库和静态库的生成和使用
    安卓中WebKit的使用
    php使用curl扩展发送get和post请求示例
    注意笔记
    Linux下Apache2.2和PHP5的安装配置
    PHP文件上传学习
  • 原文地址:https://www.cnblogs.com/mindyme/p/4424468.html
Copyright © 2011-2022 走看看