我刚刚在我的项目中包含了AWSIOSSDK.framework和Facebook SDK,然后出现了构建错误:
ld:/Users/tom8/Desktop/site1/site1/facebook-ios-sdk/libfacebook_ios_sdk.a(SBJsonParser.o)和/Users/tom8/Desktop/AWSiOSSDK.framework/AWSiOSSDK中的重复符号_OBJC_METACLASS _ $ _ SBJsonParser( SBJsonParser.o)用于架构i386
我使用iOS Facebook SDK静态库,所以我不能简单地删除facebooksdk文件夹中的sbjson文件。我也尝试删除AWSIOSSDK文件夹中的sbjson文件,但它也没有用。有人可以给我一些建议吗?
答案 0 :(得分:1)
几乎无一例外,当我遇到重复的符号构建错误时,这是因为我从其他.h文件中过多地加载了#include-ing .h文件。解决方案几乎总是这两个简单的步骤:
仅 如果您只需要在签名中使用类名或协议名称,请使用前向声明并将#include移动到.m文件。
示例:强>
foo.h中
#include "Bar.h"
#include "BazProtocol.h"
#include "BarDelegateProtocol.h"
@interface Foo:NSObject <BarDelegate>
@property (strong, nonatomic) id<Baz> myBaz;
@property (strong, nonatomic) Bar *myBar;
@end
变为
#include "BarDelegateProtocol.h"
@class Bar;
@protocol Baz;
@interface Foo:NSObject
@property (strong, nonatomic) id<Baz> myBaz;
@property (strong, nonatomic) Bar *myBar;
@end
答案 1 :(得分:0)
我也有同样的问题。您可以从Facebook项目本身删除文件,但不能从框架中删除。
所以点击:
facebook-ios-sdk.xcodeproj(打开文件内容) - &gt; FBConnect(查看文件夹内容) - &gt; JSON(查看文件夹内容) - &gt;删除SBJsonWriter和SBJsonParser。
尝试编译。你应该好好去!
伊娃