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

时间:2011-05-09 17:20:42

标签: iphone objective-c ios xcode4 cordova

我正在尝试使用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项目的Valid Architectures设置为“armv6 armv7 i386”。

我不知道是什么导致了上述错误。任何人都可以破译它并告诉我应该考虑哪些构建设置来解决它吗?

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

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

0.9.5.1版本包括Xcode 4模板。

答案 1 :(得分:0)

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