2013-01-23 11 views
6

Ho creato un progetto di test per testare l'admob e come usarlo, ma quando costruisco il mio progetto ottengo 11 errori di linker di Apple mach-o quando provo ad aggiungere admob il mio progetto (Xcode 4.3.3)errore di apple mach-o linker mentre si lavora con admob

Il file h è oke e qui è il file M (i codici sono prese dalla base AdMob knowlage)

#import "chViewController.h" 

#define MY_BANNER_UNIT_ID @"my id is written in here" 

@interface chViewController() 

@end 

@implementation chViewController 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    // Create a view of the standard size at the top of the screen. 
    // Available AdSize constants are explained in GADAdSize.h. 
    bannerView_ = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner]; 

    // Specify the ad's "unit identifier." This is your AdMob Publisher ID. 
    bannerView_.adUnitID = MY_BANNER_UNIT_ID; 

    // Let the runtime know which UIViewController to restore after taking 
    // the user wherever the ad goes and add it to the view hierarchy. 
    bannerView_.rootViewController = self; 
    [self.view addSubview:bannerView_]; 

    // Initiate a generic request to load it with an ad. 
    [bannerView_ loadRequest:[GADRequest request]]; 
} 


- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
} 

errori

Undefined symbols for architecture i386: 
    "_SCNetworkReachabilityCreateWithName", referenced from: 
     -[GADNetworkChecker startNetworkChecking] in libGoogleAdMobAds.a(GADNetworkChecker.o) 
    "_SCNetworkReachabilityScheduleWithRunLoop", referenced from: 
     -[GADNetworkChecker startNetworkChecking] in libGoogleAdMobAds.a(GADNetworkChecker.o) 
    "_SCNetworkReachabilitySetCallback", referenced from: 
     -[GADNetworkChecker startNetworkChecking] in libGoogleAdMobAds.a(GADNetworkChecker.o) 
    "_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from: 
     -[GADNetworkChecker stopNetworkChecking] in libGoogleAdMobAds.a(GADNetworkChecker.o) 
    "_OBJC_CLASS_$_ASIdentifierManager", referenced from: 
     objc-class-ref in libGoogleAdMobAds.a(GADIdentifierUtilities.o) 
    "_AudioServicesPlaySystemSound", referenced from: 
     -[GADWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:] in libGoogleAdMobAds.a(GADWebViewDelegate.o) 
    "_OBJC_CLASS_$_SKStoreProductViewController", referenced from: 
     objc-class-ref in libGoogleAdMobAds.a(GADOpener.o) 
    "_OBJC_CLASS_$_MFMailComposeViewController", referenced from: 
     objc-class-ref in libGoogleAdMobAds.a(GADOpener.o) 
    "_OBJC_CLASS_$_MFMessageComposeViewController", referenced from: 
     objc-class-ref in libGoogleAdMobAds.a(GADOpener.o) 
    "_SKStoreProductParameterITunesItemIdentifier", referenced from: 
     -[GADOpener openInAppStore:fallbackURLString:] in libGoogleAdMobAds.a(GADOpener.o) 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

ho aggiunto lib .googleadmobAds per il mio cartella e binario collegato con librerie (quando lo rimuovo ricevo gli stessi errori ma 4 di loro non 11)

Ho letto molti post di stackoveflow su di esso e alcuni di voi affermano che ho bisogno anche di annuncio adsupport.framework ma Non riesco a trovarlo Non lo vedo nei binari dei collegamenti con la lista delle librerie.

Nessuna di queste soluzioni in rete sta funzionando Sono bloccato.

Cosa c'è di sbagliato con esso Non ricevo alcun errore sui miei file h o m quindi perché gli errori di linker mach-o qualcuno può aiutarmi per favore?

risposta

14

È necessario eseguire il collegamento ai framework richiesti da AdMob.

Vai alle impostazioni di destinazione, quindi in fasi di creazione, quindi in collegamento binario con le biblioteche e aggiungere le seguenti strutture (potrebbe essere necessario quelli aggiuntivi, questi sono juste basano sugli errori che vedo):

MessageUI.framework 
StoreKit.framework 
SystemConfiguration.framework 
+0

Li aggiungo tutti ma ci sono ancora 4 errori anche perché i documenti admob non dicono nulla su questi framework –

+1

Sembra che ho dimenticato AdSupport.framework e forse AudioToolBox.framework. Un buon approccio è quello di prendere le classi non definite (ad esempio ASIdentifierManager) e cercare in Google in quale framework si trovano. –

+0

A partire da oggi, avevo anche bisogno (oltre ad AdSupport.framework) dei seguenti framework: EventKitUI.framework, EventKit.framework e CoreTelephony.framework. –

0

Sembra che sia necessario collegarsi al framework SystemConfiguration.

Questo Apple Guide dovrebbe aiutare a configurare Xcode per farlo.

+0

Ho collegato il sistema configuration.frame e 4 errori sono andati ma ancora 7 errori sono tutti uguali perché ??? –

7

Questi sono i quadri che ho bisogno di aggiungere per ottenere cosa in corso:

AdSupport.framework 
AudioToolbox.framework 
MessageUI.framework 
SystemConfiguration.framework 
StoreKit.framework 

ho già avuto:

UIKit.framework 
Foundation.framework 
CoreGraphics.framework 
libGoogleAdMobAds.a 

Buona documentazione è: https://developers.google.com/mobile-ads-sdk/docs/

Problemi correlati