在 Xcode 4 下构建 PhoneGap 时出现未定义符号错误?

Posted

技术标签:

【中文标题】在 Xcode 4 下构建 PhoneGap 时出现未定义符号错误?【英文标题】:Undefined symbols error while building PhoneGap under Xcode 4? 【发布时间】:2011-05-09 17:20:42 【问题描述】:

我正在尝试使用 Xcode 4 构建基于 PhoneGap 的应用程序。由于 Xcode 4 没有 PhoneGap 项目模板,我使用 the handy web page 来创建项目。但是,我在构建时收到以下错误:

Undefined symbols for architecture armv7:
  "_OBJC_METACLASS_$_PhoneGapDelegate", referenced from:
      _OBJC_METACLASS_$_TestAppDelegate in TestAppDelegate.o
  "_OBJC_CLASS_$_PhoneGapDelegate", referenced from:
      _OBJC_CLASS_$_TestAppDelegate in TestAppDelegate.o
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status

PhoneGap 应用程序的大部分 Cocoa Touch 代码构建为一个名为 PhoneGapLib 的库。应用程序项目引用PhoneGapLib 项目并依赖并链接到其产品PhoneGapLib.a。 PhoneGapDelegate 在 PhoneGapLib 中定义; TestAppDelegate 在主项目中定义。我已将主项目和 PhoneGapLib 项目的有效架构设置设置为“armv6 armv7 i386”。

我不知道是什么导致了上述错误。谁能破译它并告诉我应该查看哪些构建设置来解决它?

我找到了a Google Groups thread,其中作者通过使用 lipo 手动组合库的不同构建来解决类似的问题。如果可能的话,我真的很想避免这一步——这似乎是我应该能够通过在两个项目中正确组合构建设置来完成的事情。

感谢您的帮助!

【问题讨论】:

【参考方案1】:

0.9.5.1 版本包含 Xcode 4 模板。

【讨论】:

【参考方案2】:

虽然我仍然不知道如何解决上述链接器错误,但我能够通过使用上面链接的网页创建一个新项目来解决它。我还下载了 PhoneGap 0.95,它是我之前版本的 0.01 升级版。我不知道这两个操作中的哪一个解决了问题,但我现在能够构建一个没有上述问题的 PhoneGap 应用程序。另外,有人指出现在有一些beta PhoneGap templates available for Xcode 4。

【讨论】:

以上是关于在 Xcode 4 下构建 PhoneGap 时出现未定义符号错误?的主要内容,如果未能解决你的问题,请参考以下文章

xcode 4 + phonegap ...在构建时不更新JS?

使用 phonegap v 2.9 为 Xcode 4.6 版本构建存档失败

构建应用程序时出现 PhoneGap 错误

PhoneGap 2.0 在 XCode 中不显示 console.log

XCode PhoneGap 本地化

我的 iOS 应用程序可以使用 PhoneGap(构建与 xCode)的大小?