Xcode'CodeSign错误:需要代码签名'

时间:2010-09-27 13:24:29

标签: iphone ios xcode code-signing

我一直在研究iOS 4.0的iPhone项目。我刚刚使用iOS SDK 4.1下载了Xcode 3.2.4,以便我可以使用更新的iOS。在udpated Xcode中打开项目后,我发现目标读为“Base SDK Missing”。我按照说明here修正了这个问题。

现在,当我尝试构建针对任何版本的iOS时,我收到此错误(错误文本中引用了相应的版本):

  

CodeSign错误:SDK“设备 - iOS 4.1”中的产品类型“应用”需要代码签名

我安装了Xcode创建的Team Provisioning Profile,Provisioning Profile有我的证书,选择的Code Signing Entity是'iPhone Developer:Aaron Milam'。

关于我在这里可能缺少的任何想法?

15 个答案:

答案 0 :(得分:41)

当Xcode无法识别您的证书时,就会发生这种情况。

解决问题只是一个痛苦,有很多可能来帮助你。

但你应该尝试的第一件事是在“窗口”标签中删除=>管理器,您设备中的配置。然后重新添加它们(在苹果网站上再次下载)。并尝试再次编译。

顺便问一下,您是否在项目信息窗口中检查了“代码签名身份”?

祝你好运。

答案 1 :(得分:20)

请确保您在“任何iOS SDK ”而不是“调试/分发/发布”

行上编码。

这正是我所做的:

代码签名身份 - > 不编码标志
*调试 - > 不编码标志
**任何iOS SDK - > [我的开发者资料]
*分布 - > 不编码标志
**任何iOS SDK - > [我的AppStore个人资料]
*发布 - > 不编码标志
**任何iOS SDK - > [我的AdHoc个人资料]

当我将我的配置文件放在上面一级时(在Debug / Ditribution / Release),由于某种原因它不起作用(bug?)。

希望它对我们中的一些人有帮助!

答案 2 :(得分:7)

  • 我喜欢Stack Overflow:

  • 我意识到有些时间过于具体是不够的,因为我们可能有不同的Xcode版本,我自己在同一台Mac Pro上有2个xcode版本。所以在这里我想提供一个通用指令,我希望它适用于所有Xcode版本:

  • 我的2个版本是xcode 3.2.6和4.0。您需要找到(甚至谷歌的设置)您的xcode BUILD SETTINGS及其CODE SIGNING下的CODE SIGNING您有CODE SIGN IDENTITY这为您提供了一个IDENTIFIERS列表(如果您没有IDENTIFIERS请到这里获取一个并且需要注册https://developer.apple.com/ios/manage/overview/index.action - 按照Apple的说明“使用Development Provisioning Assistant在iOS上获取应用程序”如果您有标识符列表,只需选择一个有效标识符并再次运行Xcode。它会起作用!

  • 3.2.6具体:在你的scode窗口 - 点击Project - >项目设置 - >构建(选项卡) - >有一个向下滚动,因为列表很长你确定你向下滚动找到你的代码签名部分

  • 4.0具体:在你的xcode窗口 - 点击最左边的项目文件 - >然后下一个列点击您的目标应用 - >找到CODE SIGNING并指定一个IDENTIFIER。它应该适合你。

完成!

答案 3 :(得分:6)

考虑到所有证书都已正确安装,最常见的原因并未在“活动目标”设置中指定“代码签名标识”以及“项目”设置。将这些更改为iPhone Developer(Xcode将根据App ID匹配选择正确的配置文件)。

  • 在Xcode中,从Simulator更改为Device(在Xcode窗口顶部的下拉列表中),以便您的应用程序部署目标将是设备。

  • 作为通配符ID的默认ID就像捕获所有iD一样,当在代码签名中关联时(如果您使用示例文件构建,它们最明显没有com.coolapps.appfile导入,在没有'Team Provisioning profile'的情况下,你的构建会失败。所以你想在你的

  • 中设置它
  • Xcode->项目 - >编辑项目设置 - >构建(标签) - >代码签名标识(标题) - >任何iOS(从任何iOS模拟器更改) - >(选择'iPhone Developer'作为价值,默认为通配符开发配置文件(Team Provisioning Profile:*)

并且(非常重要)

  • Xcode->项目 - >编辑有效目标 - >构建(标签) - >代码签名身份(标题) - >任何iOS(从任何iOS模拟器更改) - >(选择'iPhone开发人员'作为值,它将默认为通配符开发配置文件(Team Provisioning Profile:*)

初学者的完整步骤: http://codevelle.wordpress.com/2010/12/21/moving-from-ios-simulator-to-the-ios-device-smoothly-without-code-sign-error/

答案 4 :(得分:3)

确保您已正确创建配置文件。 如果你这样做...你必须拥有...公钥,私钥和钥匙串访问证书。 检查你是否拥有这些......

XCode 3.2.4附带自动设备配置......所以您只需登录开发人员即可 帐户将下载所有有效的个人资料..

如果您拥有钥匙串和下载的个人资料中所需的一切...... 当您选择iPhone开发人员:Aaron Milam'时。在构建设置.. 确保您已选择要构建的配置(在Target-> Build内部的左上方)。 或者您可以执行所有配置以在所有可用配置中进行更改,例如调试,发布等。

答案 5 :(得分:2)

  1. 在“项目”和“目标”部分填写“代码签名
  2. 在“调试”和“发布
  3. 中选择“代码签名身份”中的有效条目
  4. 在“调试”下,选择开发者证书
  5. 在“发布”下选择经销商证书
  6. 遵循这4个步骤总能解决我的问题。

答案 6 :(得分:2)

  

汇总形成Xcode fails with "Code Signing" Error

的答案
可以合并

project.pbxproj个文件,以便插入两个CODE_SIGN_IDENTITY行。删除其中一个通常可以解决问题。

我创建了简单的脚本来帮助诊断此问题,可以在此处找到:https://gist.github.com/4339226

可以找到完整答案here

答案 7 :(得分:2)

在尝试了上述所有答案以及Xcode 4.6中我能想到的所有其他内容后,我通过以下步骤解决了这个问题:

  1. 关闭Xcode
  2. 右键单击.xcodeproj文件 - >显示包装内容
  3. 在文本编辑器中编辑project.xcodeproj
  4. 搜索“CODE_SIGN_IDENTITY” - 会出现如下两行:
  5.  CODE_SIGN_IDENTITY = "iPhone Developer: Joe Smith (555NN555)";
     "CODE_SIGN_IDENTY[sdk=iphoneos*]" = "iPhone Developer: Joe Smith (555NN555)";
    

    我找到了2个具有相应价值的目标,以及2个目标

     CODE_SIGN_IDENTITY = "";
     "CODE_SIGN_IDENTY[sdk=iphoneos*]" = "";
    

    我将前一对线复制到后一对线上,适用于后一对是emtpy的所有情况。

    然后我重新启动了Xcode,它现在运行正常。

答案 8 :(得分:1)

另一种可能性 - 当您构建存档时,请确保您的方案中的存档选择设置为分发,而不是发布。

转到产品 - >编辑方案这会打开一个新对话框。

选择左侧的存档。确保构建配置是分发。

答案 9 :(得分:1)

如前所述,如果您不想为您的应用程序签名,您可以 将CODE_SIGNING_REQUIRED设置为NO。这是没有任何项目/文件的方法 修改:

创建文件NoCodeSign.xcconfig

CODE_SIGNING_REQUIRED = NO

XCODE_XCCONFIG_FILE环境变量设置为此文件的路径:

export XCODE_CXCONFIG_FILE=/path/to/NoCodeSign.xcconfig

现在您无需代码签名即可构建应用程序。

答案 10 :(得分:1)

就我而言,通过“钥匙串访问”锁定和解锁登录钥匙串可以解决问题  enter image description here

答案 11 :(得分:0)

您是否更新了正在测试的iPhone的固件版本?

答案 12 :(得分:0)

我使用的是Xcode 4.3.2,我的问题是那里的文件夹里面有另一个同名的文件夹,例如myFolder / myFolder /.

解决方法是更改​​第二个文件夹的名称,例如myFolder / _myFolder,问题解决了。

我希望这可以帮助一些人。

答案 13 :(得分:0)

也许你的mac的日期和时间不正确。只要纠正它们。

答案 14 :(得分:0)

在文件/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/SDKSettings.plist

更改CODE_SIGNING_REQUIRED YES

CODE_SIGNING_REQUIRED NO

重启Xcode