在之前的文章《Facebook Sonar——可扩展的App调试器》(现在已经改名为Flipper)提到了集成有问题,在两个月之后终于可以轻松集成了。
集成方式很简单,但是因为项目一直在变动,官方的文档可能还不太及时,这里大概列一下集成过程中需要注意的事项。
首先,Flipper最低支持到iOS 9.0,另外,依赖了OpenSSL、CocoaAsyncSocket这些项目中可能会用的库,需要注意一下版本,避免产生冲突。
然后就是按照官方的文档来使用Cocoapods集成。
project 'MyApp.xcodeproj'
source 'https://github.com/facebook/Sonar.git'
source 'https://github.com/CocoaPods/Specs'
swift_version = "4.1"
sonarkit_version = '0.6.16'
target 'MyApp' do
pod 'SonarKit', '~>'+sonarkit_version
# Layout and network plugins are not yet supported for swift projects
pod 'SonarKit/SonarKitLayoutComponentKitSupport', '~>' + sonarkit_version
pod 'SonarKit/SKIOSNetworkPlugin', '~>' + sonarkit_version
post_install do |installer|
installer.pods_project.targets.each do |target|
if ['YogaKit'].include? target.name
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = swift_version
end
end
end
end
end
注意修改MyApp.xcodeproj和MyApp。
接下来在AppDelegate中启用
#import <SonarKit/SonarClient.h>
#import <SonarKitLayoutPlugin/SonarKitLayoutPlugin.h>
#import <SonarKitNetworkPlugin/SonarKitNetworkPlugin.h>
#import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h>
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
#if DEBUG
SonarClient *client = [SonarClient sharedClient];
SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];
[client addPlugin: [[SonarKitLayoutPlugin alloc] initWithRootNode: application
withDescriptorMapper: layoutDescriptorMapper]];
[[SonarClient sharedClient] addPlugin: [[SonarKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];
[client start];
#endif
...
}
@end
上面的代码启用了layout和network插件。
最后,最重要的是需要在Build Setting里Preprocessor Macros中预定义 FB_SONARKIT_ENABLED宏,如下图所示:
![](https://img.haomeiwen.com/i1865525/66e83845570b51fd.png)
然后就可以愉快的使用Flipper了。
虽然可以集成了,但还遗留了一个问题——目前不支持真机使用。因为Flipper的原理是手机App直接连接本机的8089端口与Flipper客户端建立通信,也就是说只能在模拟器里用。连接真机属于官方说的“Remote Connection”,从issue来看,开发人员正在开发过程中,只能再等了。
Flipper是个很好的工具,插件式的设计方式让它变的具有无限可能,希望开发人员能够快马加鞭的完善吧!
关注我的公众号及时获取iOS开发新技术!
![](https://img.haomeiwen.com/i1865525/ab1524e13a63292c.jpg)
网友评论