1

我刚刚按照 UrbanAirship 站点的说明将 UrbanAirship-1.3.3 合并到我的项目中,并#import编辑了适当的标题,它编译得很好。但是在我的应用程序委托的方法中

-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:NSDictionary*)launchOptions

该行:

[UAStoreFront useCustomUI:[UAStoreFrontUI class]];

现在需要使用 Urban Airship,导致以下链接器错误:

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_UAStoreFrontUI", referenced from:
      objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

头文件(UAStoreFrontUI.h)导入没有问题,但只要我从中调用代码(例如 [UAStoreFrontUI 类]),链接器就会开始抱怨。我觉得这特别奇怪,因为 UAirship.h 和 UAStoreFront.h 是链接的并且可以正常使用而没有错误。

我对 xcode 很陌生,所以可能有一个构建设置或我忽略的东西,但除此之外,在这一点上,我遇到了一堵砖墙,不知道如何继续。任何见解将不胜感激

4

2 回答 2

0

链接器错误的结果是未将 .m、.xib 和其他资源文件添加Build PhasesCopy Bundle Resources. 似乎必须在 下单独显式添加适当的文件Copy Bundle Resources,因为添加这些文件所在的文件夹似乎不起作用。这在 Urban Airship 教程中没有记录……出于某种原因。

我偶然发现的解决方案可以在这里找到以供进一步阅读

于 2012-11-07T15:46:59.513 回答
0

哦,我刚刚看了Urban Airship,UAStoreFrontUI实际上只是一个符合协议的类的例子。UAStoreFrontUIProtocol即它不是库中的类。

您应该自己制作,但我想如果您确实想使用他们的示例,那么您需要在您的项目中包含UAStoreFrontUI.hUAStoreFrontUI.m,就像您将自己的文件添加到您的项目中一样。

于 2012-10-24T17:22:29.843 回答