2012-02-09 181 views
0

我正在关注如何将iAds整合到我的应用中的教程,但到目前为止这是一场艰苦的斗争。该教程结合了使用ios 3.0的用户可能会遇到问题的事实。它可以在这里找到:http://www.raywenderlich.com/1371/how-to-integrate-iad-into-your-iphone-app尝试实施时发生iAD错误

这些是我的项目,我的生成设置:

体系结构:用于ARMv6 ARMv7的 基地SDK:最新的iOS(iOS版5.0) 构建活跃,只有建筑:没有 有效的体系结构:用于ARMv6 ARMV 7

构建设置具体目标:

Architectures: armv6 armv7 
Base SDK: Latest iOS (iOS 5.0) 
Build active Architecture only: No 
Valid Architectures: armv6 armv 7 

谢谢你在前进,一直在试图寻找了一段时间的答案!

这是我收到的错误:

Undefined symbols for architecture armv6: 
    "_ADBannerContentSizeIdentifier480x32", referenced from: 
     -[newPastResultViewController createAdBannerView] in newPastResultViewController.o 
     -[newPastResultViewController fixupAdView:] in newPastResultViewController.o 
    "_ADBannerContentSizeIdentifier320x50", referenced from: 
     -[newPastResultViewController createAdBannerView] in newPastResultViewController.o 
     -[newPastResultViewController fixupAdView:] in newPastResultViewController.o 
ld: symbol(s) not found for architecture armv6 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

//在我的.m文件

 - (int)getBannerHeight:(UIDeviceOrientation)orientation { 
    if (UIInterfaceOrientationIsLandscape(orientation)) { 
    return 32; 
    } else { 
    return 50; 
} 
} 




- (int)getBannerHeight { 
return [self getBannerHeight:[UIDevice currentDevice].orientation]; 
} 





- (void)createAdBannerView { 
Class classAdBannerView = NSClassFromString(@"ADBannerView"); 
if (classAdBannerView != nil) { 
    self.adBannerView = [[[classAdBannerView alloc] 
          initWithFrame:CGRectZero] autorelease]; 
    [_adBannerView setRequiredContentSizeIdentifiers:[NSSet setWithObjects: 
                 ADBannerContentSizeIdentifier320x50, 
                 ADBannerContentSizeIdentifier480x32, nil]]; 
    if (UIInterfaceOrientationIsLandscape([UIDevice currentDevice].orientation)) { 
     [_adBannerView setCurrentContentSizeIdentifier: 
     ADBannerContentSizeIdentifier480x32]; 
    } else { 
     [_adBannerView setCurrentContentSizeIdentifier: 
     ADBannerContentSizeIdentifier320x50];    
    } 
    [_adBannerView setFrame:CGRectOffset([_adBannerView frame], 0, 
             -[self getBannerHeight])]; 
    [_adBannerView setDelegate:self]; 

    [self.view addSubview:_adBannerView];   
} 
} 



- (void)fixupAdView:(UIInterfaceOrientation)toInterfaceOrientation { 
if (_adBannerView != nil) {   
    if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) { 
     [_adBannerView setCurrentContentSizeIdentifier: 
     ADBannerContentSizeIdentifier480x32]; 
    } else { 
     [_adBannerView setCurrentContentSizeIdentifier: 
     ADBannerContentSizeIdentifier320x50]; 
    }   
    [UIView beginAnimations:@"fixupViews" context:nil]; 
    if (_adBannerViewIsVisible) { 
     CGRect adBannerViewFrame = [_adBannerView frame]; 
     adBannerViewFrame.origin.x = 0; 
     adBannerViewFrame.origin.y = 0; 
     [_adBannerView setFrame:adBannerViewFrame]; 
     CGRect contentViewFrame = _contentView.frame; 
     contentViewFrame.origin.y = 
     [self getBannerHeight:[UIApplication sharedApplication].statusBarOrientation]; 
     contentViewFrame.size.height = self.view.frame.size.height - 
     [self getBannerHeight:[UIApplication sharedApplication].statusBarOrientation]; 
     _contentView.frame = contentViewFrame; 
    } else { 
     CGRect adBannerViewFrame = [_adBannerView frame]; 
     adBannerViewFrame.origin.x = 0; 
     adBannerViewFrame.origin.y = 
     -[self getBannerHeight:[UIApplication sharedApplication].statusBarOrientation]; 
     [_adBannerView setFrame:adBannerViewFrame]; 
     CGRect contentViewFrame = _contentView.frame; 
     contentViewFrame.origin.y = 0; 
     contentViewFrame.size.height = self.view.frame.size.height; 
     _contentView.frame = contentViewFrame;    
    } 
    [UIView commitAnimations]; 
    } 
} 

回答

2

我相信这将参考解决您的问题:

http://useyourloaf.com/blog/2010/11/27/iad-framework-updates-for-ios-42.html

简而言之,ADBannerContentSizeIdentifier480x32ADBannerContentSizeIdentifier320x50分别是不久前已弃用,您应该使用ADBannerContentSizeIdentifierLandscapeADBannerContentSizeIdentifierPortrait来代替。

+0

“ADBannerContentSizeIdentifierLandscape”和“ADBannerContentSizeIdentifierPortrait”在iOS中也已弃用。 – 2013-02-21 07:58:15

相关问题