有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
本文指导您如何操作 SDK 集成与初始化。

操作步骤

步骤一:SDK 集成

选择下列任意一种方式集成 SDK。

方法一:CocoaPods 集成

说明:
暂时只支持本地的 cocoaPods 集成。
1. 安装 CocoaPods
2. 通过 pod repo update 更新 qapm 的 Cocoapods 版本。
3. 在 Podfile 对应的 target 中,添加如下命令,并执行 pod install。
pod 'QAPM', :source => 'https://github.com/TencentCloud/QAPM-iOS-CocoaPods.git'
4. 在项目中使用 Cocoapods 生成的 .xcworkspace 运行工程,并将工程的 bitcode 参数设置为 NO。
注意:
在拉取过程中如果出现以下报错 :
[!] Unable to add asource with url https://github.com/TencentCloud/QAPM-iOS-CocoaPods.git named tencentcloud-qapm-ios-cocoapods. You cantry adding it manually in /Users/wxy/.cocoapods/repos or via pod repo add.可在终端执行以下指令:
pod repo add tencentcloud-qapm-ios-cocoapods https://github.com/TencentCloud/QAPM-iOS-CocoaPods.git
然后再执行:
pod install

方法二:手动集成

1. Demo 工程 QAPM_iOS_SDK_Demo下的 QAPM.framework 复制到业务工程。
2. 拖拽 QAPM.framework 文件到 Xcode 工程内(请勾选 Copy items if needed 选项)。
3. 在 TARGETS -> Build Phases-Link Binary Libraries加依赖库 libc++.tbd、 libz.tbd、CoreLocation。
4. 将 framework 里面的 QAPM.bundle、js_sdk.js 拖入到业务工程。
5. 在工程的 Other Linker Flags 中添加 -ObjC 参数。
6. 将工程的 bitcode 参数设置为 NO。

步骤二:初始化 SDK 配置及 Web 端环境配置

1. 登录 腾讯云可观测平台 控制台,在终端性能监控页面 ,选择 应用管理,进入应用设置后,获取 Appkey(上报 ID)。



2. AppDelegate.m 文件引入头文件,并加入以下配置:
#import <QAPM/QAPM.h>
#import <QAPM/QAPMLaunchProfile.h>
如果是Swift工程,请在对应bridging-header.h中导入
初始化QAPM 在工程AppDelegate.m的application:didFinishLaunchingWithOptions:方法中初始化:
 
void loggerFunc(QAPMLoggerLevel level, const char* log) {
 
#ifdef RELEASE
   if (level <= QAPMLogLevel_Event) { ///外发版本log
       NSLog(@"%@", [NSString stringWithUTF8String:log]);
   }
#endif
  
#ifdef GRAY
   if (level <= QAPMLogLevel_Info) { ///灰度和外发版本log
       NSLog(@"%@", [NSString stringWithUTF8String:log]);
   }
#endif
  
#ifdef DEBUG
   if (level <= QAPMLogLevel_Debug) { ///内部版本、灰度和外发版本log
       NSLog(@"%@", [NSString stringWithUTF8String:log]);
   }
#endif
}
 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   //请在同意相应的隐私合规政策后进行QAPM的初始化
   [self setupQapm];
}
 
- (void)setupQapm {
  
   //启动耗时自定义打点开始,业务自行打点
   [QAPMLaunchProfile setBeginTimestampForScene:@"finish"];
  
   [QAPM registerLogCallback:loggerFunc];
#ifdef DEBUG
   //设置开启QAPM所有监控功能
   [[QAPMModelStableConfig getInstance] setupModelAll:1];
#else
   [[QAPMModelStableConfig getInstance] setupModelStable:0.5];
#endif
  
   //用于查看当前SDK版本号信息
   NSLog(@"qapm sdk version : %@", [QAPM sdkVersion]);
      
   //上报地址,固定值。https://app.rumt-zh.com
   [QAPMConfig getInstance].host = @"https://app.rumt-zh.com";
 
   // 设置用户标记,默认值为10000,userID会作为计算各功能的用户指标率,请进行传值
   [QAPMConfig getInstance].userId = @"请正确填写用户唯一标识";
  
   // 设置设备唯一标识,默认值为10000,deviceID会作为计算各功能的设备指标率,请进行传值
   [QAPMConfig getInstance].deviceID = @"请正确填写设备的唯一标识";
   // 设置App版本号
   [QAPMConfig getInstance].customerAppVersion = @"请正确填写业务APP版本";
   [QAPM startWithAppKey:@"请正确填写申请到的appkey"];
  
   //启动耗时自定义打点结束,业务自行打点
   [QAPMLaunchProfile setEndTimestampForScene:@"finish"];
}
说明
1. 白名单分为用户白名单和设备白名单。初始化配置代码里的 userId 或者 deviceID 需要通过 应用管理 页面添加到白名单里,移动端的webview、卡慢监控、掉帧、网络监控数据才会开启上报。
2. 更多高级功能配置请参见 Demo 工程,以及 shell 脚本及相关文档文件夹中的文档。
注意:
1. 从版本5.2.8开始,出于优化考虑,SDK 如果检测不到 embedded.mobileprovision 文件,则不会输出 SDK 相关日志。在进行接入测试时,可以手动创建空白的 embedded.mobileprovision 文件跳过 SDK 检查(需要通过 XCode 引入或者创建该文件,SDK 通过 pathForResource 获取该文件)。
2. 卡慢和掉帧监控在模拟器上不会开启,建议使用真机测试。