手动集成

注意:


1.Testin崩溃分析 SDK支持iOS 6.0以上系统。安装前先下载SDK
2.游戏unity插件和cocos引擎暂时不支持摇一摇功能


一.安装SDK


1.1 在工程中引入SDK


解压下载的SDK包,在解压的文件夹中选择“CrashMaster.framework”文件并将其拖拽到需要进行检测的iOS App的Xcode工程中



当Xcode弹出提示时,选择“Creats groups”选项,或者Copy items if needed,点击Finish按钮确认。




1.2引入SDK依赖的其它框架


在 Xcode的Project Navigator窗口中选中当前项目,在Target中选中对应的Appication;


切换到“General”选项卡设置页面;


展开“Linked Frameworks and Libraries”设置项,点击“+”号进入增加库的窗口,增加下面framework:


  • CoreTelephony.framework
  • SystemConfiguration.framework
  • CoreLocation.framework
  • ImageIO.framework
  • AudioToolbox.framework
  • CoreMotion.framework
  • Security.frameworkunity或者cocos游戏工程请添加此项




1.3 Swift工程引入SDK(仅支持Swift2.0)


在Swift工程中新建.h头文件,例如命名为ObjCBridgingHeader.h,在该文件中导入CrashMaster.h头文件



打开Swift工程的Buld Settings设置界面,搜索bridging,找到Objective-C Bridging Header设置项,添加上一步中创建的头文件,到此,在Swift工程中即可调用SDK接口。



二. 初始化SDK


在待监测 App 的 AppDelegate.m 源代码文件中引入如下头文件。



#import <CrashMaster/CrashMaster.h>


在上述文件的   - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中加入以下代码:


@Objective-C
   [CrashMaster init:@"Appkey" channel:@"您应用的渠道号"  config:[CrashMasterConfig defaultConfig]];
@Swift(2.0)
   CrashMaster.init("AppKey", channel: "channel", config: CrashMasterConfig.defaultConfig())

如需开启摇一摇反馈功能,请使用以下代码代替上面的进行初始化: 

   @Objective-C     CrashMasterConfig* config = [CrashMasterConfig defaultConfig];
                             config.enabledShakeFeedback = YES;
 
                             [CrashMaster init:@"APP_KEY" channel:@"channel" config:config];
 
    @Swift 2.0          CrashMasterConfig config = CrashMasterConfig.defaultConfig()
                              config.enabledShakeFeedback = true
 
                              CrashMaster.init("APP_KEY", channel: "channel", config: config)


channel(渠道号)即您发布应用的渠道,是一个您自定义的字符串,可以为空。


其他配置选项初始化方法(CrashMasterConfig.h):

// delegate.
@property(nonatomic, assign) id crashDelegate;

// Exception monitor enabled, default YES.
@property(nonatomic, assign) BOOL enabledMonitorException;

// Enabled feedback, default NO.
@property(nonatomic, assign) BOOL enabledShakeFeedback;

// Show shake feedback off option, default NO. if enabledShakeFeedback is NO, this value invalid.
@property(nonatomic, assign) BOOL alertBtnCloseShakeFeedback;

// use user location info, default NO.
@property(nonatomic, assign) BOOL useLocationInfo;

// only wifi report data, default YES.
@property(nonatomic, assign) BOOL reportOnlyWIFI;

// print log in simulator for debug, default NO.
@property(nonatomic, assign) BOOL printLogForDebug;


SDK还提供回调函数供开发者使用(CrashMasterDelegate.h),例

@interface CallBackDelegate ()<CrashMasterDelegate>
@end
@implementation CallBackDelegate
- (void)receivedCrashNotification:(NSString*)stackTrace
{
   NSLog(@"%@", stackTrace);
}
@end
初始化可以用
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   CallBackDelegate *callBack = [[CallBackDelegate alloc] init];
   CrashMasterConfig *testCon = [CrashMasterConfig defaultConfig];
   testCon.crashDelegate= callBack;
   [CrashMasterConfig init:@"appkey" channel:@"channel" config:testCon];
   [CrashMasterConfig setUserInfo:@"TestinAPM"];  
   return YES;
}

如果在项目中还引用了友盟、Takingdata 等同类产品,建议将它们的错误分析收集的功能取消。


三.摇一摇反馈

3.1 如何使用摇一摇

3.2 打开/关闭摇一摇 

设置摇一摇开启状态:关闭摇一摇功能 CrashMasterConfig.enabledShakeFeedback = NO,此接口实现应与应用本身**功能联动,例如,在app的应用设置中增加“开启/关闭摇一摇反馈”,当关闭时,设置为NO,开启时设置为YES

注意:在集成SDK时,默认的初始化语句 [CrashMaster init:@"APP_KEY" channel:@"channel" config:config];不会开启摇一摇功能,需要按照上述方式设置enabledShakeFeedback=YES,才可打开摇一摇功能



四.用户数据


可设置一些用于调试的 key value 数据,随着问题一起上报到 Testin 缺陷管理

(void)setUserData:(NSString*)data forKey:(NSString*)key;


六.iOS符号化配置

符号化是通过映射符号翻译堆栈信息,方便开发者理解错误堆栈。开发者提供您的应用程序的符号文件,Testin的服务器可以自动进行符号化。有关介绍,请参见 符号化 。
Archive打包,将xcarchive文件包中dSYM文件夹下的dSYM文件压缩zip上传。这个dSYM文件可以符号化该xcarchive文件包生成的程序(.ipa文件) 。