mar*_*_st 26 ios crashlytics osx-extensions today-extension ios-extensions
由于今天扩展程序以一个独立的进程运行,我确信它们不会记录任何崩溃的开箱即用.我假设我们需要分别在小部件上初始化Crashlytics.例如在viewDidLoad
方法中TodayViewController
.
mar*_*_st 28
Crashlytics支持与我联系并提供了这些步骤.我测试了它们,它现在适用于我的iOS 8应用程序.
将Crashlytics Run Script Build Phase添加到您的扩展程序的目标(复制/粘贴您添加到主应用程序中的相同)
添加Crashlytics.framework
到您的扩展程序的链接库(例如,只需在其文件检查器中检查扩展目标)
添加Crashlytics.startWithAPIKey("yourApiKey")
到扩展程序的视图控制器的initWithCoder
方法.(在Apple今天的扩展模板中TodayViewController
默认调用它 )
>如果你还没有initWithCoder
方法,那么它之后应该是这样的:
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
Crashlytics.startWithAPIKey("yourApiKey")
}
Run Code Online (Sandbox Code Playgroud)这是Twitter自己的实施指南:
https://twittercommunity.com/t/integrate-fabric-crashlytics-with-ios-8-extension/28905
因此,复制库,例如,如果您正在使用CocoaPods,则可以将Fabric和Crashlytics添加到Extension目标:
在Podfile中:
target :TodayExtension do
pod 'Fabric'
pod 'Crashlytics'
end
Run Code Online (Sandbox Code Playgroud)
并运行pod install
.而且不要忘记设置Build Active Architecture Only
到NO
,或者你可能会得到链接错误
然后在你的TodayViewController中:
#import <Fabric/Fabric.h>
#import <Crashlytics/Crashlytics.h>
...
-(id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
[Fabric with:@[CrashlyticsKit]];
return self;
}
Run Code Online (Sandbox Code Playgroud)
并将构建阶段中的Fabric Run Script复制到Today Extension目标,并将来自主应用程序的info plist中的Fabric条目复制到Today Extension的信息plist中
如果您想添加Crashlytics以在iOS 8.0+上共享扩展程序,maremmle的答案也适用.只记得从第一个ViewController中放入[Crashlytics startWithAPIKey:@"apiKey"];
内部init
方法.
归档时间: |
|
查看次数: |
7191 次 |
最近记录: |