我正在尝试使用Google AdMob SDK,并且包含所有信息以及它看起来有多简单,我实际上遇到了一些麻烦。
我正在关注this教程,但是关注我自己的项目(不是示例项目)。我使用的是最新的iOS SDK(6.2.1)。一切似乎都很好,但是当我向我的Other Code Signing Flags
添加“-ObjC”标志时,它会抛出一个错误:
(null):codesign:无效选项 - O
现在,只有在我的越狱设备(iOS 6.0.1,第4代iPod)上尝试调试应用程序时才会发生这种情况。我接受了这个错误,因为我没有购买开发者许可证,但即使使用模拟器,我仍然遇到麻烦。
我现在将-ObjC标志添加回Other Code Signing Flags
,然后使用iOS 6.0 iPhone simuilator进行编译和构建。一切都很好,它运行(没有代码)。然后我将#import "GADBannerView.h"
添加到我的标题中,还添加了一个属性(@property (nonatomic) GADBannerView *bannerView;
)以及@synthesize
。然后我将此代码添加到我的.m
文件中:
- (void) viewDidLoad
{
[super viewDidLoad];
// ad setup
self.bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];
self.bannerView.adUnitID = @"********"; // <- I have my correct one here.
self.bannerView.rootViewController = self;
[self.view addSubview:self.bannerView];
[self.bannerView loadRequest:[GADRequest request]];
}
添加它设法抛出异常并在那里的最后一行([self.bannerView loadRequest:[GADRequest request]];
)崩溃。完整的信息:
2012-12-25 23:33:00.392 NFL Scores[39359:c07] -[GADObjectPrivate changeState:]: unrecognized selector sent to instance 0xa1a2540
2012-12-25 23:33:00.394 NFL Scores[39359:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[GADObjectPrivate changeState:]: unrecognized selector sent to instance 0xa1a2540'
*** First throw call stack:
(0x1b32012 0x16e5e7e 0x1bbd4bd 0x1b21bbc 0x1b2194e 0x1f792 0x2103e 0x1ed47 0x37ec 0x937817 0x937882 0x937b2a 0x94eef5 0x94efdb 0x94f286 0x94f381 0x94feab 0x94ffc9 0x950055 0xa553ab 0x8a692d 0x16f96b0 0x7001fc0 0x6ff633c 0x7001eaf 0x9458cd 0x88e1a6 0x88ccbf 0x88cbd9 0x88be34 0x88bc6e 0x88ca29 0x88f922 0x939fec 0x886bc4 0x886dbf 0x886f55 0x88ff67 0x853fcc 0x854fab 0x866315 0x86724b 0x858cf8 0x197cdf9 0x197cad0 0x1aa7bf5 0x1aa7962 0x1ad8bb6 0x1ad7f44 0x1ad7e1b 0x8547da 0x85665c 0x2a5d 0x2985 0x1)
libc++abi.dylib: terminate called throwing an exception
这是为什么?我见过的所有内容都建议添加-all_load
和/或-ObjC
标记,但似乎都不起作用。提前致谢。
编辑:无论出于何种原因,我都在Xcode 4.5.2
。
答案 0 :(得分:5)
您需要将-ObjC
标记添加到Other Linker Flags
的{{1}}部分,而不是Build Settings
。