2010-09-27 52 views
37

我一直在使用iOS 4.0开发iPhone项目。我刚刚用iOS SDK 4.1下载了Xcode 3.2.4,以便我可以使用更新的iOS。在udpated Xcode中打开项目后,我发现目标读取'Base SDK Missing'。我按照说明here修复了这个问题。Xcode'CodeSign错误:需要代码签名'

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

CodeSign Error: code signing is required for product type 'Application' in SDK 'Device - iOS 4.1'

我有团队置备安装了Xcode中创建个人资料,即Provisioning Profile具有我的证书,并且所选的代码签名实体是'iPhone Developer:Aaron Milam'。

任何想法,我可能会在这里失踪?

+0

互补问题:Xcode中失败, “代码签名” 错误](http://stackoverflow.com/q/13962341/89035) – rjstelling 2012-12-20 15:43:47

+0

检查表,然后再继续:开放的Xcode - >首选项 - >检查苹果ID是否存在项目,选择代理并查看详细信息 - >检查签名标识是否存在,配置配置文件是否存在。如果签名身份不存在,则需要添加Apple开发人员证书。那么它应该没问题。 – Desmond 2015-05-20 03:25:11

回答

39

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

这只是一个痛苦的屁股解决它,有很多的可能性来帮助你。

但您应该尝试的第一件事是在“窗口”选项卡中=>组织者,您的设备中的设置。然后重新添加它们(在苹果网站上再次下载它们)。并尝试再次编译。

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

祝你好运。

+0

我会试试看。谢谢! – Aaron 2010-09-27 13:46:15

+2

如果不起作用,则:1°)重新启动计算机。 2°)删除所有的电脑证书(与iPhone有关,并非全部都是^^)。 3°)重新下载它们。没有你的电脑在我身边解决这个问题有点困难:/祝你好运! – Vinzius 2010-09-27 13:48:42

+2

所以我按照你的指示。我发现在Xcode中,选择了<多个实体>进行代码签名。我重新选择了我自己的,并最终开始工作!谢谢你的帮助! – Aaron 2010-09-27 14:30:27

3

请确保您已正确创建配置文件。如果您确实设置了配置配置文件 ..您必须拥有...公钥,私钥和钥匙串访问中的证书。 检查,如果你有所有这些..

的XCode 3.2.4自带的自动设备配置...所以你只需要登录到你的开发 帐户它会下载所有有效的配置文件..

如果您拥有钥匙链和下载的配置文件所需的全部... 当您选择iPhone开发者:Aaron Milam'。在构建设置中。 确保您已选择要为其构建的配置(在目标 - >构建内的左上方)。 或者你可以做所有的配置来改变所有可用的配置,即调试,发布等。

0

你是否更新过你正在测试的iPhone的固件版本?

+0

是的。事实上,它只是在最新版本的邮件中抵达。我确实检查了更新。 – Aaron 2010-09-27 15:18:22

6

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

  • 在Xcode中,从模拟更改为设备(在Xcode的窗口顶部的下拉菜单),让您的应用程序部署的目标将是设备。

  • 这是一个通配符ID的默认ID就像是在代码签名中关联的所有iD一样(如果您使用示例文件进行构建,它们最显然不会导入com.coolapps.appfile,没有“团队配置文件”的情况下,您的构建将失败。所以你想在你的设置

  • Xcode->项目 - >编辑项目设置 - >构建(选项卡) - >代码签名身份(头) - >任何iOS(从任何iOS模拟器更改) - > (选择“iPhone开发者的价值,它会默认为通配符开发配置文件(团队调配简介:*)

而且(非常重要)

  • Xcode->项目 - >编辑活动目标 - >构建(标签) - >代码签名标识(标题) - >任何iOS(从任何iOS模拟器更改) - >(选择'iPh一个开发者的价值,它会默认为通配符开发配置文件(团队调配简介:*)

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

8
  • 我爱堆栈溢出:

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

  • 我的2个版本是xcode 3.2.6和4.0。你需要找到(甚至谷歌的设置)你的xcode建立设置和它的代码签名在代码签名你有代码签名身份这为您提供了一个身份证列表(如果你没有身份证到这里得到一个和注册是必需的https://developer.apple.com/ios/manage/overview/index.action - 遵循苹果公司的“使用开发配置助手在iOS上获得您的应用程序”的说明)如果您有一个标识符列表,只需选择一个有效的标识符并再次运行您的Xcode。它会工作!

  • 3.2.6特定:在您的scode窗口中 - 单击项目 - >项目设置 - >生成(选项卡) - >向下滚动,因为列表很长请确保向下滚动以找到您的代码签名部分

  • 4.0具体:在您的xcode窗口 - 点击您的项目文件左边最柱 - >然后下一个colum点击您的目标应用程序 - >找到代码签名并分配一个标识符。它应该适合你。

完成!

1

另一种可能性 - 当您为归档生成时,请确保您的归档中的归档选项设置为分配,而不是释放。

转到产品 - >编辑方案这将弹出一个新的对话框。

选择存档在左边。确保构建配置是分发。

2
  1. 填充“代码签名”两个“项目”和“目标”部分
  2. 选择“代码签名身份”有效条目中既有“调试”和“ 版本
  3. 在”调试“选择你开发人员证书
  4. 在 “发布” 选择经销商证书

按照下列4个步骤总是解决了我的问题。

20

上线“任何iOS版SDK”,而不是“调试/分配/释放”确保你的代码标志

这正是我所做的:

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

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

希望它对我们有些帮助!

+0

你是冠军!这解决了我的签名问题。 – Pedro 2011-11-25 04:48:46

+0

这对我有用! +1 – Damien 2011-12-17 17:16:43

+0

这不应该,但它确实! – 2012-08-12 16:28:49

0

我使用的Xcode 4.3.2,我的问题是,在那里的另一个文件夹中具有相同的名称,例如myFolder/myFolder /。

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

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

+0

这是有点愚蠢的Xcode不允许你有多个相同名称的文件夹,不是吗? – Aaron 2012-06-19 14:13:52

+0

@Aaron是的,我希望他们修复这个“bug”。 – marcos1490 2012-06-19 21:11:35

0

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

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

2

尝试以上的答案,以及其他一切我能日以后从在Xcode 4.6,我解决了这个问题通过以下步骤墨:

  1. 关闭的Xcode
  2. 上.xcodeproj右击文件 - 在文本编辑器>显示包内容
  3. 编辑project.xcodeproj
  4. 搜索“CODE_SIGN_IDENTITY” - 会有对线这样的:
CODE_SIGN_IDENTITY = "iPhone Developer: Joe Smith (555NN555)"; 
"CODE_SIGN_IDENTY[sdk=iphoneos*]" = "iPhone Developer: Joe Smith (555NN555)"; 

我发现了2个目标有这样的价值,和2目标s与

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

我复制了前一对线在后一对线上的所有情况下,后一对是emtpy。

然后我重新启动Xcode,它现在工作正常。

+0

哇,这真正解决了我的项目(SendBird的Testapplication)这个愚蠢的错误。这花了我整整一小时才知道。谢谢。我做了所有的''''和Xcode停止抱怨。 – DevAndArtist 2016-02-23 13:41:56

1

如前所述,如果您不想代码签署您的应用程序,您可以 设置CODE_SIGNING_REQUIREDNO。这里是方法没有任何项目做/文件 修改:

创建文件NoCodeSign.xcconfig

CODE_SIGNING_REQUIRED = NO 

XCODE_XCCONFIG_FILE环境变量,此文件路径:

export XCODE_CXCONFIG_FILE=/path/to/NoCodeSign.xcconfig 

现在可以生成没有代码签名的应用程序。

+0

“NoCodeSign.xcconfig”的内容显然应该是“CODE_SIGNING_REQUIRED = NO” – 2016-11-01 14:59:40