在Xcode5 SDK 3.03中编译时添加Google Analytics链接器错误

时间:2014-01-17 16:20:05

标签: ios objective-c google-analytics analytics google-analytics-api

我想在我的应用中获得GA。我试过这样做:

我使用此Google Analytics SDK for iOS v3(​​测试版) - https://developers.google.com/analytics/devguides/collection/ios/v3/

我已按照文档的所有步骤操作。 也已经尝试了Linker errors when trying to install new Google Analytics 3.0 Beta

enter image description here

在我的AppDelegate.h中

#import <UIKit/UIKit.h>
#import "GAI.h"

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property(nonatomic, strong) id<GAITracker> tracker;
@property (strong, nonatomic) UIWindow *window;

@end

在我的AppDelegate.m

#import "AppDelegate.h"
#import "GAI.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [GAI sharedInstance].trackUncaughtExceptions = YES;

    // Optional: set Google Analytics dispatch interval to e.g. 20 seconds.
    [GAI sharedInstance].dispatchInterval = 20;

    // Optional: set Logger to VERBOSE for debug information.
    [[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelVerbose];

    // Initialize tracker.
    id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-47246605-1"];

    [GAI sharedInstance].optOut = YES;
    [GAI sharedInstance].trackUncaughtExceptions = YES;
    [GAI sharedInstance].dispatchInterval = 0;

    return YES;
}

ViewController.h

#import <UIKit/UIKit.h>
#import "GAI.h"
#import "GAITrackedViewController.h"

@interface ViewController : GAITrackedViewController
@end

ViewController.m

#import "ViewController.h"
#import "GAI.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.screenName = @"Home Screen";

}

我的项目测试链接:https://www.dropbox.com/s/j3ufrv55xym82nc/TesteAnalytics.zip

2 个答案:

答案 0 :(得分:0)

Google Analytics使用CoreData.framework,链接器无法找到它。 (NSManagedEntity,NSManagedContext等是CoreData类)

您是否已将框架添加到项目中?

答案 1 :(得分:0)

我改变这一点并立即开始工作。

#import <CoreData/CoreData.h>
#import "AppDelegate.h"
#import "GAI.h"

@implementation AppDelegate

static NSString *const kTrackingId = @"UA-47244310-1";
static NSString *const kAllowTracking = @"allowTracking";

- (void)applicationDidBecomeActive:(UIApplication *)application {
    [GAI sharedInstance].optOut = ![[NSUserDefaults standardUserDefaults] boolForKey:kAllowTracking];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    NSDictionary *appDefaults = @{kAllowTracking: @(YES)};
    [[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];
    // User must be able to opt out of tracking
    [GAI sharedInstance].optOut =
![[NSUserDefaults standardUserDefaults] boolForKey:kAllowTracking];
    // Initialize Google Analytics with a 120-second dispatch interval. There is a
    // tradeoff between battery usage and timely dispatch.
    [GAI sharedInstance].dispatchInterval = 120;
    [GAI sharedInstance].trackUncaughtExceptions = YES;
    self.tracker = [[GAI sharedInstance] trackerWithName:@"TesteDelegate"
                                          trackingId:kTrackingId];

    return YES;
}