*

*

0/500

iOS管理SDK集成

1.  导入SDK

1.1  CocoaPods导入SDK

执行如下命令查询ptengine 相关SDK。

pod setup //更新本地仓库
pod search ptevent //查询ptengine所有SDK

运行结果如下图:

在本地的Podfile文件中加入相关SDK导入如下指令然后install即可:

pod 'PtEvent', '~>1.0.0'

最后在app工程中要加入如下配置,以保证当前工程中能够从Pod工程中自动继承SDK相关依赖库,并在Other Linker Flag配置项中添加-ObjC

1.2 手动导入SDK

我们提供了两种不同的方式将SDK导入到应用中,您可以选择适合你的方式进行导入。

1.2.1  拖拽导入

直接拖拽下载下来的相关SDK到App工程中的Frameworks目录下,并选中”Copy item if needed”,点击Finish,以保证SDK拷贝到当前工程目录中,如图:

1.2.2  右键导入

选中App工程中的Frameworks文件夹或者工程文件,右键菜单选择”Add Files to ‘demo.project’””, 以保证SDK拷贝到当前工程目录

中,如图:

2.  添加依赖框架

在App -> TARGETS -> Build Phases 配置项中通过+号加入图示中的依赖框架,并在Other Linker Flag配置项中添加-ObjC:3.  配置 App Id 和 渠道

当app启动时,需要先通过SDK接口注册appKey,此方法必须调用:

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [[PtAgent sharedInstance] PTStartWithAppKey:@"**********" channel:**];
}

请确保该方法在application didFinishLaunchingWithOptions:的第一行处调用,已确保在程序启动时要加载的所有ViewController都被成功监听。

AppKey:为后台创建应用后生成的key值,不能为空, 此处可替换为相应的值。

channel:为app发布的渠道名称,如果传nil, 则使用默认值“AppStore”, 如果app要发布到其他渠道,请填写相关渠道名称。

4.  代码示例

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 
   [[PtAgent sharedInstance] PTStartWithAppKey:@"fee5d1f7407c0756" channel:nil];
   [[PtAgent sharedInstance] PTSetAllLevelLogEnabled:YES];
   [[PtAgent sharedInstance] PTSetLogEnabled:NO forLevel:LogLevelDebug];
 
   self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
   self.window.rootViewController = [SDAppFrameTabBarController new];
   self.window.backgroundColor = [UIColor whiteColor];
   [self.window makeKeyAndVisible];
 
   [self setupNavBar];
   return YES;
}

5.  图形化自定义变量

如果App中有自定义Label, 并重写了- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event方法,则会导致PtEventSDK中UILabel(Category)中的hitTest方法无法调用,此时需要开发者在重写的hitTest方法中注册一个响应方法,以保证SDK内部方法正确调用:

@implementation AppTestLabel

//如果App中有自定义Label, 并重写了hitTest方法,会导致SDK中UILabel(Category)中的hitTest方法无法调用

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    [super hitTest:point withEvent:event];
    [[PtAgent sharedInstance]PTRegisterHitTestResponseForUILabel:point withEvent:event withCurrentLabelObject:self];
    return nil;
}
@end