Flipper(Facebook Sonar)集成指南

在之前的文章《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开发新技术!

转载于:https://juejin.im/post/5b81fcc6f265da436b525060

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值