AppInsight 2.5.0

AppInsight 2.5.0

测试已测试
Lang语言 Obj-CObjective C
许可证 BSD
发布上次发布2014年12月

未申领维护。



  • Akbar Nurlybayev

AppInsight-for-iOS

Cafe moba for App Insight是一款轻量级的日志记录与跟踪库,为应用开发者提供了一种可定制的访问、分析和可视化用户与应用交互方式的方法。

注册

访问https://appinsight.cafemoba.com并注册一个账户。这将为您提供访问API密钥的权限。稍后您将需要它。

安装

手动

  • AppInsight.framework拖到XCode中Framework组。
  • Prefix.pch中添加代码:#import <AppInsight/AppInsight.h>
  • 通过在注册后提供API密钥的方式修改项目的Info.plist,为'AppInsight'添加一个新的键值对。如果您正在尝试AppInsightDemo,只需更改'AppInsight'键的值。

示例用法

您可以在AppInsightDemo Xcode项目中查看和尝试我们设置的示例日志消息。您需要通过AppInsight注册并获取API密钥。之后,在AppInsightDemo-Info.plist中替换AppInsight键的值。

现在您应该能够在XCode模拟器中构建并运行示例项目了。

本质上,有三种日志记录方式。

简单日志记录

例如,要使用AFNetworking记录网络状态变化,可以这样做:

- (void)networkStatusChanged:(AFNetworkReachabilityStatus)status
{
    switch (status) {
        case AFNetworkReachabilityStatusReachableViaWWAN:
            AI_LogTag(@"Network", @"WWAN");
            break;
        case AFNetworkReachabilityStatusReachableViaWiFi:
            AI_LogTag(@"Network", @"WiFi");
            break;
        default:
            break;
    }
}

分组和定时器

可以通过利用标记特性来实现日志消息的分组。要计算代码的部分,应同时使用AI_LogTag(tag, ...)AI_LogTagStopTimer(tag, ...)

如果您想要计算获取图片所需的时间,可以这样做:

- (void)loadImageForPhotoURL:(NSURL *)photoURL completionBlock:(FlickrPhotoCompletionBlock) completionBlock
{
    AI_LogTag(@"Photo Name", [photoURL absoluteString]);
    NSURLRequest *photoRequest = [NSURLRequest requestWithURL:photoURL];
    AFImageRequestOperation *operation = [AFImageRequestOperation
                                          imageRequestOperationWithRequest:photoRequest
                                          imageProcessingBlock:NULL
                                          success:
                                          ^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
                                              completionBlock(image, nil);
                                              AI_LogTagStopTimer(@"Photo Name", [photoURL absoluteString]);
                                          }
                                          failure:
                                          ^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
                                              completionBlock(nil, error);
                                              AI_LogTagStopTimer(@"Photo Name", [photoURL absoluteString]);
                                          }];
    [self enqueueHTTPRequestOperation:operation];
}

注意:如果两个连续的AI_LogTag(tag, ...)用相同的Tag名称记录,则第二个调用将解释为第一个调用之前的AI_LogTagStopTimer(tag, ...)。计数和所用时间统计将适当地反映这一点。

注意:如果没有给定Tag的先前AI_LogTag(tag, ...),则使用AI_LogTagStopTimer(tag, ...)将忽略日志请求。