CODE_SIGN_IDENTITY[sdk=iphoneos*] 是啥意思
Posted
技术标签:
【中文标题】CODE_SIGN_IDENTITY[sdk=iphoneos*] 是啥意思【英文标题】:What does CODE_SIGN_IDENTITY[sdk=iphoneos*] meanCODE_SIGN_IDENTITY[sdk=iphoneos*] 是什么意思 【发布时间】:2011-03-21 18:54:42 【问题描述】:我很困惑,有两个条目要输入代码签名身份。我不确定这在 Xcode 3 中是否相同,但在 Xcode 4 中我看到(在构建设置中)是这样的:
在“分发”的 project.pbxproj 中,它看起来像这样
CODE_SIGN_IDENTITY = "iPhone Distribution";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
我在任何地方都找不到任何文档有什么区别,但也许我忽略了它(在文档中)。我对设置哪个感到困惑,现在我设置了两个。但我不喜欢“我不知道我在做什么,但我很管用”的感觉。在我看来,iPhone 开发不需要第一个(CODE_SIGN_IDENTITY)。因为对于“调试”和“发布”,自从我从 Xcode 3 迁移到 Xcode 4 并且在 project.pbxproj 中我只能看到“CODE_SIGN_IDENTITY[sdk=iphoneos*]”之后,我没有更改值。
回到我的问题,有谁知道“CODE_SIGN_IDENTITY[sdk=iphoneos*]”是什么意思,与 CODE_SIGN_IDENTITY 有什么区别,是否需要 CODE_SIGN_IDENTITY 以及 Apple 是否在任何地方都记录了这方面的内容?
【问题讨论】:
是的,我只在我的Xcode 3 project file 中看到CODE_SIGN_IDENTITY[sdk=iphoneos*]
。
【参考方案1】:
这是一个新的 Xcode4 UI,乍一看相当复杂。您应该阅读 Xcode 4 用户指南和 Xcode 4 过渡指南。我会试着解释一下...
让我们只关注分布行。它确实包含 iPhone 分发。下面的行(任何 ios SDK)确实包含更具体的设置,这些设置会覆盖分发行设置。换句话说,您可以为分发构建设置默认签名身份,但您可以为特定的 SDK 覆盖它。
您可以为 Debug、Release 等执行此操作。这仅取决于您的设置/项目复杂性。
这些东西也可以设置在不同的级别——iOS默认、项目默认、目标默认。要查看这些关卡,只需转到构建设置并将组合切换到关卡视图(就在构建设置选项卡下)。在这里您可以找到所有级别的值。已解析的列确实包含值,将真正使用。
它就像一个矩阵,您可以在其中连续覆盖默认/项目/目标设置,并在一列中为特定 SDK 构建配置设置。
【讨论】:
您可以自己尝试 - 选择分配线(或任何其他)并单击 + 按钮。将添加另一个 SDK 的配置,您可以微调此 SDK 的设置。以上是关于CODE_SIGN_IDENTITY[sdk=iphoneos*] 是啥意思的主要内容,如果未能解决你的问题,请参考以下文章
XCode-Project文件.pbxproj - 如何在Version Control中处理它?
如何使用 Ruby SDK 从 AWS 获取公共 IP 地址