我刚刚按照the UrbanAirship site的说明将UrbanAirship-1.3.3纳入我的项目,并#import
编辑了相应的标题,它编译得很好。但是在我的app delegate的方法
-(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很新,所以可能会有一个构建设置或我忽略的东西,但除此之外,此时我已经碰到了一堵砖墙并且不确定如何处理。任何见解都将不胜感激
答案 0 :(得分:0)
哦,我刚刚看过Urban Airship,UAStoreFrontUI
实际上只是符合UAStoreFrontUIProtocol
协议的类的示例。即它不是图书馆里的一个类。
你应该自己做,但我想如果你确实想要使用他们的示例,那么你需要在项目中加入UAStoreFrontUI.h
和UAStoreFrontUI.m
,就像你将自己的文件添加到你的项目中一样项目
答案 1 :(得分:0)
链接器错误导致未将.m,.xib和其他资源文件添加到Build Phases
下的Copy Bundle Resources
。似乎必须在Copy Bundle Resources
下单独显式添加相应的文件,因为添加存在这些文件的文件夹似乎不起作用。由于某些原因,这在Urban Airship教程中没有记录。
我偶然发现了我偶然发现的解决方案here以便进一步阅读