- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
这个话题一直困扰着我。我想我会写出我目前的理解,并希望找出我对的事情/我错的事情。
创建开发证书时,有一个公钥和私钥的概念。通过供应门户可用的证书持有公钥,而您的私钥存储在您的钥匙串(keychain)中。为了对您的应用程序进行代码签名,您必须同时拥有两者。
为了运行一个应用程序,设备必须有一个供应配置文件,它基本上保存了一个应用程序标识符、一组公认的证书(应用程序必须由这些证书之一签名)和一组设备标识符(指示允许哪些设备运行该应用程序)。
“认可的证书”引用了公钥,而私钥基本上由应用传递。
因此,对于 App Store,我们可以将普通设备视为带有默认 prov 配置文件,该配置文件已经具有苹果的“公钥”,并且苹果在分发之前执行自己的代码签名操作,从而添加他们的私钥.
完美?关?走开?疯了吗?
最佳答案
关于它的值(value),这是我最新的理解:
配置文件是一个文件,它告诉您哪些应用程序(通过 AppID)、由哪个开发人员签名(通过证书)可以在哪些设备(UDID)上运行。
对于证书,有公钥和私钥的概念。公钥和私钥在数学上联系在一起,这样一个人可以加密明文,一个人可以解密密文。证书允许 Apple 确保两件事:1,只有注册的开发者才能分发他们的代码,2,正在分发的代码在发送到您的设备的途中不会被更改。
当您在 Xcode 中构建代码时,您使用钥匙串(keychain)中的私钥对您的应用程序进行“代码签名”,从而“锁定”它。为了解锁/解密代码,目标设备必须能够访问您的公钥。设备从您的证书中获取公钥,该证书包含在配置文件中。
为了验证代码在从开发人员到设备的过程中保持不变,您的证书包含一种算法,可以将您的代码/数据转换为所谓的“摘要”。在开发人员方面,数据/代码通过算法运行,生成一个单独的摘要,然后用私钥锁定。
当设备收到应用程序包时,设备可以通过执行以下操作确保代码未被更改:使用私钥解锁摘要,通过算法运行未加密的数据(请记住,设备可以通过其 prov 配置文件访问证书),并确保结果是与开发人员发送的摘要相同的摘要。
除此之外,prov 配置文件只需要检查手机的 UDID,并确保配置文件中的 AppID 与应用中的标识符匹配。
我认为,我们不需要为来自应用商店的应用单独的 prov 配置文件的原因是因为每部 iPhone 都附带苹果用来编码签名分发应用的公钥。
关于objective-c - 证书、配置文件、公钥/私钥揭秘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13641809/
前言 Vue和Vite之父尤雨溪宣布成立公司 VoidZero,目前已经融资3200万。这篇文章欧阳将带你了解VoidZero是如何改变javascript的世界! 关注公众号:【前端欧阳】,给自
前言 TimerQueue 是.NET中实现定时任务的核心组件,它是一个定时任务的管理器,负责存储和调度定时任务。它被用于实现很多 .NET 中的定时任务,比如 System.Threadin
网站服务器这类问题我相信很多朋友讲过,但为什么他和网站优化还有关系呢?那么请您读读我写的没有文笔的文章,看看是否有所认同。 是的,服务器其实也是一个优化网站的最大杀手也是最大帮手,现今万网与阿里云
这个问题在这里已经有了答案: How does XPath deal with XML namespaces? (2 个回答) 5年前关闭。 我有这个 XML
在我们工作中无数次点击鼠标的时候,你有思考过鼠标是怎么工作的吗?在购买鼠标的时候你是怎么挑选的呢?看着那些标称的数据,你是否茫然过?那么如果小编现在说,其实每个鼠标都是一台优秀的“照相机”,你会相信
在浙江绍兴的山姆超市外,“黄牛”现象引发了广泛关注。这些“黄牛”通过提供带入和结账服务,让未办理会员卡的消费者也能进入超市购物。这一行为不仅扰乱了市场秩序,也对山姆会员商店的会员管理系统提出了挑战。今
在 this question海报询问如何在一行中执行以下操作: sub my_sub { my $ref_array = shift; my @array = @$ref_array
我正在尝试了解 Javascript Lambda 方法,但我仍然对非常灵活的定义方式和变量范围感到非常困惑。 例如我正在研究以下插件的代码,除了代码中还有其他部分我不太清楚,我感兴趣的是代码是如何组
谁能帮我揭开以下表达式的神秘面纱: ++[[]][+[]]+[+[]] 我的理解从左到右: ++[[]]:不确定这将评估什么以及如何评估。 [+[]]:+[] 将首先执行,一元运算符将尝试将 [] 转
在 python 中,可以在多个进程之间共享 ctypes 对象。但是我注意到分配这些对象似乎非常昂贵。 考虑以下代码: from multiprocessing import sharedctype
我目前对 Glassfish 3.1.2.2 处理 EJB 的方式感到困惑。 我有一个 OSGi 项目,它由许多 OSGi 包(jar)组成。此外,还有一些 WAR,包括 Tapestry Web 应
这些天我在玩线程库并尝试实现一些功能。其中一个教程说要运行程序使用: gcc -lpthread -lrt -lc -lm project1.c scheduler.c -o out 首先我需要深入了
如 app.secret_key未设置,Flask 将不允许您设置或访问 session 字典。 这就是flask user guide has to say在这个问题上。 我对 Web 开发很陌生,
Ruby on Rails 新手问题... 考虑以下代码(在 View 中): | | 在 ERB 标签中调用的一些方法对我来说就像魔法一样,我正试图揭开它们的神秘面纱。如果我不了解代码
HTTPS 是建立在 SSL/TLS 传输层安全协议之上的一种 HTTP 协议,相当于 HTTPS = HTTP + SSL/TLS。第一篇文章 “HTTPS - 通俗易懂的阐述 HTTPS 协
本周新 Xcode 3.2.1 中包含的自述文件内容如下: 静态代码分析通过“构建”菜单下的“构建和分析”选项或通过自定义build设置完全集成在 Xcode IDE 中 GCC 4.2 是 10.6
是的,我知道。关于 NSOperation 世界有很多问题和答案,但我仍然有一些疑问。我会尝试用两部分的问题来解释我的疑虑。它们相互关联。 在 SO 帖子中 nsoperationqueue-and-
运行后,我看到我的应用程序在 TaskMgr 中占用了 3.5Gb 我在 Windbg 中看到的内容有点令人困惑: 0:022> !address -summary ProcessParametrs
我是一名优秀的程序员,十分优秀!