iOS App Extension SDK 使用指南
接入前准备
在接入sdk之前,请务必认真阅读《开发者合规指南》和《Bugly SDK个人信息保护规则》
SDK 集成
注意:Bugly Extension 依赖于 Bugly iOS SDK 1.2.9 及以上版本
Bugly Extension 提供两种集成 SDK 方式供 iOS 开发者选择 - 通过 CocoaPods 集成 - 手动集成
通过 CocoaPods 集成方式
在工程的 Podfile 里对应的 Extension Target 中添加以下代码
pod 'BuglyExtension'
示例:
target 'ExtensionPodTest WatchKit Extension' do
pod 'BuglyExtension'
end
保存并运行pod install
,然后用后缀为.xcworkspace
的文件打开工程
关于CocoaPods的更多信息请查看 CocoaPods官方网站
手动集成方式
- 下载并解压 iOS App Extension SDK
- 拖拽BuglyExtension.framework文件到Xcode工程内,如下图
- 勾选 Copy items if needed 选项
- 如有多个Extension Targets ,则一一进行勾选
初始化SDK
导入头文件
在工程的InterfaceController.h中导入头文件
#import <BuglyExtension/CrashReporterLite.h>
如果是其它类型的 Extension,请在入口的 ViewController.h 中导入
如果是 Swift 工程,请在对应的 bridging-header.h 中导入
初始化 BuglyExtension SDK
Watch Extension
watchOS 1.0版本,watchOS 2.0请参考watchOS SDK 使用指南
在工程InterfaceController.m的- (instancetype)init方法中初始化 Bugly Extension SDK
如果 Xcode 初始模板没有此方法,直接复制以下代码粘贴即可
- Objective-C
- (instancetype)init {
self = [super init];
if (self) {
[CrashReporterLite startWithApplicationGroupIdentifier:@"此处替换为您的 App Group Identifier"];
}
return self;
}
- Swift
override init() {
CrashReporterLite.startWithApplicationGroupIdentifier("此处替换为您的 App Group Identifier")
super.init()
}
如果 Apple Watch App 中还有 Glance 或 Notification 交互实现,则需在各自的入口 Controller 中添加上述代码
其它类型 Extension
其它类型的 iOS Extension,如 Today Extension,Share Extension 等,请在对应的ViewController.m的- (instancetype)initWithCoder方法中初始化
如果 Xcode 初始模板没有此方法,直接复制以下代码粘贴即可
- Objective-C
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
[CrashReporterLite startWithApplicationGroupIdentifier:@"此处替换为您的 App Group Identifier"];
}
return self;
}
- Swift
required init(coder aDecoder: NSCoder) {
CrashReporterLite.startWithApplicationGroupIdentifier("此处替换为您的 App Group Identifier")
super.init(coder: aDecoder)
}
Containning App 中的初始化
BuglyExtension SDK 依赖于 Bugly iOS SDK 1.2.9 及以上版本
如需支持 Extension 的异常捕获,在 Host App 中的初始化方法需要变更为以下方法:
- Objective-C
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[CrashReporter sharedInstance] installWithAppId:@"此处替换为你的AppId" applicationGroupIdentifier:@"此处替换为你的App Group标识符"];
return YES;
}
- Swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
CrashReporter.sharedInstance().installWithAppId("此处替换为你的AppId" applicationGroupIdentifier:"此处替换为你的App Group标识符")
return true
}
至此,恭喜您的工程已经成功集成 BuglyExtension SDK,接下来编译并运行您的工程吧