Xcode 3.2的代码签名错误

时间:2009-09-11 09:58:57

标签: iphone xcodebuild provisioning

在升级到iPhone OS 3.1和Xcode 3.2之前,我有一个完全正常工作的构建环境。现在,当我尝试构建时,我得到以下内容:

  

代码签名错误:供应配置文件'FooApp test'指定应用程序标识符'no.fooapp.iphoneapp',它与当前设置'TGECMYZ3VK.no.fooapp.iphoneapp'不匹配

问题是Xcode以某种方式设法认为“FooApp Test”配置文件指定了应用程序标识符“no.fooapp.iphoneapp”,但事实并非如此。

在管理器(以及iPhone开发人员门户网站)中,应用程序标识符被正确地视为“TGECMYZ3VK.no.fooapp.iphoneapp”。

此外,在项目级别的构建选项中设置配置文件时,Xcode会正确识别应用程序标识符,但是当我转到目标时,我无法选择任何有效的配置文件。

可能导致此问题的原因是什么?

更新:我试图创建一个新的配置文件,但仍然没有运气。我还尝试将Info.plist中标识的应用程序更改为“no.fooapp.iphoneapp”。构建成功,但现在我收到组织者的错误:

  

可执行文件已使用无效的权利签名。应用程序的代码签名权利文件中指定的权利与您的供应配置文件中指定的权利不匹配。 (0xE8008016)。

这似乎是合理的,因为配置文件仍然具有“TGECMYZ3VK.no.fooapp.iphoneapp”应用程序标识符。

我还仔细检查了所有证书在钥匙串中是否有效。

所以我的问题是如何让Xcode看到正确的应用程序标识符?

更新:如下所述,解决问题的方法是删除所有配置文件,证书等,制作新证书/配置文件并重新安装。如果有人有任何其他解决方案,他们将是受欢迎的。 :)

16 个答案:

答案 0 :(得分:21)

我不得不从手机中手动删除配置文件,然后在构建菜单中执行“清除所有目标”后重建应用程序。

这是在设置下 - >一般 - >配置文件

当我买一台新Mac时,这件事发生在我身上。你会解决它,不要担心

答案 1 :(得分:16)

好吧,就像许多这些代码签名问题的情况一样,删除所有配置文件,证书等,并且再次撤销和生成所有内容,结果证明了这一点。我甚至创建了一个新的包标识符,应用程序标识符等,现在AdHoc发行版再次正常运行。

答案 2 :(得分:5)

我昨天也遇到了同样的错误。我在其他答案中尝试了所有各种重置程序而没有运气。最后我也

  • 重新启动我的mac
  • 重启我的iPhone
  • 使用XCode
  • 从手机中删除了我的所有iphone配置文件
  • 从我的mac中删除了所有配置文件(〜/ Library / MobileDevice / Provisioning Profiles for me)
  • 还有什么?删除了build文件夹,重新启动了XCode,安装了更新到3.1.2 sdk,牺牲了一只鸡。

瞧,它现在有效,错误消失了。这是一个严重的伏都教领域。

答案 3 :(得分:5)

另外,请确保在项目配置CODE_SIGN_ENTITLEMENTS中添加了对权利文件名“dist.plist”的引用。

答案 4 :(得分:5)

检查构建目标和主应用程序的信息中的两个代码签名权利 - 如果代码签名权利在任何一个上都说明,则将其删除

答案 5 :(得分:4)

在XCode的“论坛和文件”窗格中,展开“目标”,然后双击应用的目标。

这将打开目标的“信息”窗格。在“构建”部分中,检查任何旧配置文件的“代码签名”部分。这种情况多次发生在我身上,特别是在升级到新版本的sdk和iphone os之后

答案 6 :(得分:2)

如果您使用的是Xcode 4.3,请快速入侵。

项目设置>下的Xcode中MyTarget>摘要标签一直在底部有一个复选框,上面写着“启用权利”。当我取消选中它时,它会使错误消失。

答案 7 :(得分:1)

在被此困难了一段时间之后,我重新访问了设置并发现我已经颠倒了“代码签名身份”和“任何iPhone OS设备”条目。 - 关于这件事发生的线索显示在。

  1. 删除手机上的每个个人资料
  2. Build and Go
  3. 此时xcode尝试配置电话(设备)

    1. 检查手机以查看添加了哪个配置文件。
    2. 当我为我的所有个人资料'AdHoc'或'开发'或'AppStore'添加前缀时,我立即看到安装过程在设备上放置了开发配置文件而不是AdHoc配置文件。

答案 8 :(得分:1)

在Resources / Entitlements.plist内部有一个布尔“get-task-allow”如果没有选中,请将其检查为ON。这为我解决了这个问题。

答案 9 :(得分:1)

设备可能不在列表中。尝试修改您的配置文件。

答案 10 :(得分:0)

只是在这里添加一个注释:我在更换Macbook的逻辑板后遇到了同样的错误(0xE8008016)(虽然我想你在一台全新的Mac上遇到了同样的问题),并且经过几个小时的循环我意识到iPhone开发人员计划门户网站有开发分发的单独证书。

硬件更改意味着您需要重新发出两个证书 - 我重新发布了Developer,但不是 Distribution。因为我的硬件确实没有改变我的名字(并且证书是由所有者的名字识别的),这使得发现它成为一个棘手的问题;)希望这能让别人感到沮丧。

答案 11 :(得分:0)

另一个原因是您要安装的设备不是分发证书中的已批准设备。

答案 12 :(得分:0)

作为参考,我遇到了同样的问题并删除了我的所有配置文件,现有的证书以及本地驱动器和开发人员门户网站上的所有内容,并删除了我现有的设备并重新添加它们(开发人员门户网站)似乎做了诀窍。

答案 13 :(得分:0)

问题出在[your project] .xcodeproject文件中的“project.pbxproj”文件中。如果您觉得勇敢,请右键单击.xcodeproject并查看内容,然后使用计划文本编辑器打开“project.pbxproj”。在里面搜索进攻路径并纠正它。在我的情况下,我只是删除了整个路径,只是离开了“Entitlements.plist”,它清除了我的问题。我强烈建议您在尝试之前备份.xcodeproject。

答案 14 :(得分:0)

双击目标,然后选择“属性”选项卡。更改了com.yourcompany.${...}

答案 15 :(得分:0)

有时,Xcode不会自动将您的配置文件复制到正确的位置。 在我的情况下,这是真的。

检查您的配置文件是否在〜/ Library / MobileDevice / Provisioning Profiles 目录中,如果不是拖放,清理和构建