本文指导您如何操作 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 端环境配置
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 RELEASEif (level <= QAPMLogLevel_Event) { ///外发版本logNSLog(@"%@", [NSString stringWithUTF8String:log]);}#endif#ifdef GRAYif (level <= QAPMLogLevel_Info) { ///灰度和外发版本logNSLog(@"%@", [NSString stringWithUTF8String:log]);}#endif#ifdef DEBUGif (level <= QAPMLogLevel_Debug) { ///内部版本、灰度和外发版本logNSLog(@"%@", [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. 卡慢和掉帧监控在模拟器上不会开启,建议使用真机测试。