美文网首页
Flipper(Facebook Sonar)集成指南

Flipper(Facebook Sonar)集成指南

作者: 孙博士 | 来源:发表于2018-08-26 09:31 被阅读450次

在之前的文章《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 SettingPreprocessor Macros中预定义 FB_SONARKIT_ENABLED宏,如下图所示:

然后就可以愉快的使用Flipper了。

虽然可以集成了,但还遗留了一个问题——目前不支持真机使用。因为Flipper的原理是手机App直接连接本机的8089端口与Flipper客户端建立通信,也就是说只能在模拟器里用。连接真机属于官方说的“Remote Connection”,从issue来看,开发人员正在开发过程中,只能再等了。

Flipper是个很好的工具,插件式的设计方式让它变的具有无限可能,希望开发人员能够快马加鞭的完善吧!

关注我的公众号及时获取iOS开发新技术!

孙博士研究所

相关文章

网友评论

      本文标题:Flipper(Facebook Sonar)集成指南

      本文链接:https://www.haomeiwen.com/subject/apnniftx.html