Xcode 3.2 的代码符号错误
Posted
技术标签:
【中文标题】Xcode 3.2 的代码符号错误【英文标题】:Code sign error with Xcode 3.2 【发布时间】:2010-11-27 11:03:36 【问题描述】:在升级到 iPhone OS 3.1 和 Xcode 3.2 之前,我有一个完整的构建环境。现在,当我尝试构建时,我得到以下信息:
代码签名错误:配置文件“FooApp test”指定的应用程序标识符“no.fooapp.iphoneapp”与当前设置“TGECMYZ3VK.no.fooapp.iphoneapp”不匹配
问题在于 Xcode 以某种方式设法认为“FooApp 测试”配置文件指定了应用程序标识符“no.fooapp.iphoneapp”,但事实并非如此。
在 Organizer(和 iPhone 开发者门户网站)中,应用标识符被正确地视为“TGECMYZ3VK.no.fooapp.iphoneapp”。
此外,在项目级别的构建选项中设置配置文件时,Xcode 正确识别应用标识符,但是当我转到目标时,我无法选择任何有效的配置文件。
什么可能导致这个问题?
更新:我尝试创建一个新的配置文件,但仍然没有成功。我还尝试简单地将 Info.plist 中标识的应用程序更改为“no.fooapp.iphoneapp”。构建成功,但现在我从组织者那里得到一个错误:
可执行文件的签名无效。您的应用程序的代码签名权利文件中指定的权利与您的配置文件中指定的权利不匹配。 (0xE8008016)。
这似乎是合理的,因为配置文件仍然具有“TGECMYZ3VK.no.fooapp.iphoneapp”应用程序标识符。
我还仔细检查了钥匙串中的所有证书是否有效。
所以我的问题是如何让 Xcode 看到正确的应用程序标识符?
更新:如下所述,似乎解决问题的方法是删除所有配置文件、证书等,制作新证书/配置文件并再次安装它们。如果有人有任何其他解决方案,他们将受到欢迎。 :)
【问题讨论】:
【参考方案1】:我必须从手机中手动删除配置文件,然后在构建菜单中执行“清除所有目标”后重新构建应用程序。
在设置 -> 常规 -> 配置文件下
当我得到一台新的 Mac 时,这发生在我身上。你会解决的,别担心
【讨论】:
【参考方案2】:好吧,很多代码签名问题似乎就是这种情况,删除所有配置文件、证书等,然后重新撤销和生成所有内容,结果证明可以解决问题。我什至创建了一个新的包标识符、应用标识符等,现在 AdHoc 分发又开始工作了。
【讨论】:
这个证书很臭。 Apple 从未成功地完成这项工作。 如果这对您不起作用,您可以尝试删除 xcproj 中的 xcuserdata 文件夹。 ***.com/a/9968884/300694【参考方案3】:我昨天也遇到了同样的错误。我在其他答案中尝试了所有各种重置程序,但没有成功。最后我也
重新启动我的 mac 重启了我的 iPhone 使用 XCode 从手机中删除了我所有的 iphone 配置文件 从我的 mac 中删除了所有配置文件(~/Library/MobileDevice/Provisioning Profiles for me) 还有什么?删除 build 文件夹,重新启动 XCode,安装更新到 3.1.2 sdk,牺牲了一只鸡。瞧,它现在可以工作了,错误消失了。这是严重的巫毒教领域。
【讨论】:
你知道吗,又发生了。感谢苹果浪费了我一个小时的生命...... 我也遇到过类似的情况。前往 Organizer -> Provisioning Profiles(左侧)-> 点击“Refresh”!看起来它奏效了。顺便说一句,“牺牲了一只鸡”哈哈【参考方案4】:此外,请确保您在项目配置 CODE_SIGN_ENTITLEMENTS 中添加了对权利文件名“dist.plist”的引用。
【讨论】:
【参考方案5】:检查构建目标和主应用程序的信息中的代码签名权利 - 如果代码签名权利在其中任何一个上显示,则将其删除
【讨论】:
【参考方案6】:在 XCode 中,在“组和文件”窗格中,展开“目标”并双击您应用的目标。
这将为您的目标打开信息窗格。在“构建”部分,检查任何旧配置文件的“代码签名”部分。这在我身上发生过很多次,尤其是在升级到新版本的 sdk 和 iphone 操作系统之后
【讨论】:
问题是,当我尝试选择我的(以前工作的)应用程序配置文件时,我无法选择它。 Xcode 似乎“相信”配置文件中的应用程序标识符是“no.fooapp.iphoneapp”,而不是正确地将其标识为“TGECMYZ3VK.no.fooapp.iphoneapp”。在 Organizer 中查看配置文件时,已识别的应用程序正确显示为“TGECMYZ3VK.no.fooapp.iphoneapp”。【参考方案7】:如果您使用的是 Xcode 4.3,请快速破解。
在 Xcode 的 Project Settings > MyTarget > Summary 选项卡 下,一直到底部都有一个复选框,上面写着“启用权利”。当我取消选中它时,它使错误消失了。
【讨论】:
【参考方案8】:在 Resources/Entitlements.plist 中有一个布尔值“get-task-allow”,如果未选中,请将其选中。这解决了我的问题。
【讨论】:
【参考方案9】:在被这个问题困扰了很长一段时间后,我重新访问了设置,发现我已经颠倒了“代码签名身份”和“任何 iPhone OS 设备”条目。 - 显示了我对这件事的线索。
-
从手机中删除所有个人资料
构建并开始
此时 xcode 尝试配置手机(设备)
-
检查手机以查看已添加的配置文件。
当我为所有配置文件添加前缀“AdHoc”或“Development”或“AppStore”时,我立即看到安装过程是在设备上放置开发配置文件,而不是 AdHoc 配置文件。
【讨论】:
【参考方案10】:该设备可能不在列表中。尝试修改您的配置文件。
【讨论】:
【参考方案11】:只是在这里添加一个注释:我在更换我的 Macbook 的逻辑板后遇到了同样的错误 (0xE8008016)(尽管我想你在全新的 Mac 上也会遇到同样的问题),经过几个小时的转圈我意识到 iPhone 开发者计划门户网站为 Development 和 Distribution 提供了单独的证书。
硬件更改意味着您需要重新颁发两个证书 - 我重新颁发了开发人员但不分发。因为当我的硬件改变时我的名字没有改变(并且证书由所有者的名字来识别),这使得发现它成为一个棘手的问题;)希望这可以避免其他人我的挫败感。
【讨论】:
【参考方案12】:作为参考,我遇到了同样的问题,我从本地驱动器和开发者门户中删除了我的所有配置文件、现有证书和所有内容,并删除了我现有的设备并重新添加它们(开发者门户)似乎可以诀窍。
【讨论】:
【参考方案13】:问题出在 [您的项目].xcodeproject 文件中的“project.pbxproj”文件中。如果您觉得勇敢,请右键单击 .xcodeproject 并查看内容,然后使用计划文本编辑器打开“project.pbxproj”。内部搜索进攻路径并纠正它。就我而言,我刚刚删除了整个路径并离开了“Entitlements.plist”,它清除了我的问题。我强烈建议在尝试此操作之前备份您的 .xcodeproject。
【讨论】:
【参考方案14】:双击目标,然后选择“属性”选项卡。那里改成com.yourcompany.$...
。
【讨论】:
【参考方案15】:另一个原因是如果您要安装的设备不是分发证书中批准的设备。
【讨论】:
【参考方案16】:有时 Xcode 不会自动将您的配置文件复制到正确的位置。 就我而言,这是真的。
检查您的配置文件是否在 ~/Library/MobileDevice/Provisioning Profiles 目录中,如果不只是拖放,清理和构建
【讨论】:
以上是关于Xcode 3.2 的代码符号错误的主要内容,如果未能解决你的问题,请参考以下文章
XCode 4.3.2 SDLMain.o 中的 SDL 未定义符号
C ++ XCODE ld:未找到架构x86_64 clang的符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)