iOS SDK部署
获取基调听云SDK
CocoaPods集成
在项目工程的Podfile文件中添加以下代码:
pod 'tingyunApp'
若对数据传输有加密(国密算法加密)需求,可在项目工程的 Podfile 文件中添加以下代码:
pod 'NBSGMKit'
若要使用「日志回捞」功能,可在项目工程的Podfile文件中添加以下代码:
pod 'TingyunLog'
若要使用「OOM崩溃采集」功能,可在项目工程的Podfile文件中添加以下代码:
pod 'NBSOOM'
若要使用「视频回放」功能,可在项目工程的Podfile文件中添加以下代码:
pod 'NBSReplayKit'
保存后执行pod install
。
手动集成
解压后将tingyunApp.xcframework拖拽到xcode工程中并勾选「Copy items if needed」。
选择工程 TARGETS → Build Settings → 搜索「Other Linker Flags」并添加编译标志【-ObjC】。
添加依赖库。
依赖库 | 作用 |
---|---|
libz.tbd | 解压缩 |
WebKit.framework | 浏览器内核 |
Security.framework | 访问钥匙链 |
CoreTelephony.framework | 获取运营商 |
SystemConfiguration.framework | 获取网络状态 |
JavaScriptCore.framework | 支持js自定义错误功能 |
CoreGraphics.framework | 支持可视化命名功能 |
QuartzCore.framework | 支持可视化命名功能 |
CFNetwork.framework | 支持移动拨测功能 |
libresolv.tbd | 支持移动拨测功能 |
libc++.tbd | c++符号化 |
说明:若要SDK传输数据使用国密加密,请导入「NBSGMKit.framework」并在工程 TARGETS → Genral → Framework,Libraries,and Embedded Content 中将 「NBSGMKit.framework」 的 「Embed」 改为「Embed & Sign」。
若要使用「日志回捞」功能,请导入「TingyunLog.xcframework」
若要使用「OOM崩溃采集」功能,请导入「NBSOOM.xcframework」
若要使用「视频回放」功能,请导入「NBSReplayKit.xcframework」
添加基调听云SDK
获取基调听云host与App Key。
App Key及host地址请从基调听云平台中获取,详情参照以下步骤。
进入应用「设置」。
在「基础设置」中复制App Key及host。
导入头文件。
Objective-C 请在工程的「pch」文件中导入头文件。
#import <tingyunApp/NBSAppAgent.h>
Swift 请在工程的「Bridging_Header.h」文件中导入头文件。
#import <tingyunApp/NBSAppAgent.h>
注:若使用「日志回捞」功能,需导入日志库头文件:
#import <TingyunLog/TingyunLog.h>
引入 SDK。
Objective-C
在工程「main.m」文件中的「main」方法中初始化 SDK。
int main(int argc, char * argv[]) { @autoreleasepool { //首次启动开启网络模块、用户体验模块、崩溃模块采集数据,仅首次启动生效 [NBSAppAgent setStartOption:NBSOption_Net|NBSOption_UI|NBSOption_Crash]; //默认为https,如果redirect_host为http协议的话则需要调用该接口。 [NBSAppAgent setHttpEnabled:YES]; //redirect_host为平台服务器地址 [NBSAppAgent setRedirectURL:@"redirect_host"]; //Your_appkey从平台中获取 [NBSAppAgent startWithAppID:@"Your_appkey"]; return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } }
Swift
在「AppDelegate.swift」的「application(_:didFinishLaunchingWithOptions:)」方法中初始化 SDK。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { NBSAppAgent.setStartOption(Int32(NBSOPTION.NBSOption_Net.rawValue)|Int32(NBSOPTION.NBSOption_UI.rawValue)|Int32(NBSOPTION.NBSOption_Crash.rawValue)) //首次启动开启网络模块、用户体验模块、崩溃模块采集数据,仅首次启动生效 //默认为https,如果redirect_host为http协议的话则需要调用该接口。 NBSAppAgent.setHttpEnabled(true) NBSAppAgent.setRedirectURL("redirect_host") NBSAppAgent.start(withAppID: "Your_appkey") return true }
说明:若需要采集应用启动数据,请参考采集应用启动参数。
权限配置说明
由于「移动拨测」-「MTR」功能需要访问Local Network,若配置了「MTR」功能,需在Info.plist中配置Local Network权限。
获取用户标识
通过添加「用户标识」可在基调听云报表平台通过该标识检索到具体用户的性能问题。
相关接口
/* 设置用户标识符,不能超过64个字符,可以在任意位置多次调用(值覆盖) @userId:唯一标识一个用户的信息 */ + (void)setUserIdentifier:(NSString *)userId;
代码示例
- (void)viewDidLoad { [super viewDidLoad]; //用户标识可为邮箱、手机号等能够标识用户身份的信息,如xxx@tingyun.com [NBSAppAgent setUserIdentifier:@"userId"]; }
嵌码完整性校验
嵌码完成后,可以在控制台中查看基调听云App SDK 日志输出结果用以判断嵌码是否成功。
- 日志输出
NBSAppAgent SDK_Version
NBSAppAgent start!
Success to connect to NBSSERVER
附录(可选配置)
开启可视化命名
开启可视化命名功能,可以通过在App应用内点选的方式为「原生页面」和「操作」进行重命名并在用户体验模块中展示。
获取 Scheme。
在应用「设置」中的「基础设置」中选择【URL Scheme】。
将获取到的「URL Scheme」添加到TARGETS → Info → URL Scheme 中。
SDK传输数据使用国密加密
SDK传输数据支持国密加密,调用该接口开启国密加密,默认不开启「前提:需工程中导入NBSGMKit.framework且后端需要设置开启国密(请联系技术支持设置开启后端国密加密)」。
说明:该接口需要在SDK初始化时调用。
相关接口
/** @need 传入yes,则SDK传输数据使用国密加密。 */ + (void)encryptionRequired:(BOOL)need;
代码示例
int main(int argc, char * argv[]) { @autoreleasepool { //开启国密加密 [NBSAppAgent encryptionRequired:YES]; //默认为https,如果redirect_host为http协议的话则需要调用该接口。 [NBSAppAgent setHttpEnabled:YES]; //redirect_host为平台服务器地址 [NBSAppAgent setRedirectURL:@"redirect_host"]; //Your_appkey从平台中获取 [NBSAppAgent startWithAppID:@"Your_appkey"]; return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } }