Swift集成指南初始化Podfile 移动端调试工具Flipper了解一下
内容简介:上期文章讲过关于Flipper在移动端的使用,主要介绍了Android上的使用,本期来讲一下关于iOS上的集成。
【资料图】
Objective-C集成指南
初始化Podfile
相比于 Android ,iOS 集成相对简单一些。可以使用 CocoaPods 。新建项目,然后 pod init 初始化 Podfile 文件,并添加 Flipper 的依赖,例如:
project "democome.xcodeproj"source "https://github.com/facebook/flipper.git"source "https://github.com/CocoaPods/Specs"swift_version = "4.1"flipperkit_version = "0.14.1"target "democome" do platform :ios, "9.0" pod "FlipperKit", "~>" + flipperkit_version pod "FlipperKit/FlipperKitLayoutComponentKitSupport", "~>" + flipperkit_version pod "FlipperKit/SKIOSNetworkPlugin", "~>" + flipperkit_version pod "FlipperKit/FlipperKitUserDefaultsPlugin", "~>" + flipperkit_version # This post_install script adds swift version to yogakit"s pod target. # It also adds -DFB_SONARKIT_ENABLED=1 flag to OTHER_CFLAGS, necessary to build expose Flipper classes in the header files 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 file_name = Dir.glob("*.xcodeproj")[0] app_project = Xcodeproj::Project.open(file_name) app_project.native_targets.each do |target| target.build_configurations.each do |config| if (config.build_settings["OTHER_CFLAGS"]) if !(config.build_settings["OTHER_CFLAGS"].include? "-DFB_SONARKIT_ENABLED=1") puts "Adding -DFB_SONARKIT_ENABLED=1 in OTHER_CFLAGS..." config.build_settings["OTHER_CFLAGS"] << "-DFB_SONARKIT_ENABLED=1" end else puts "OTHER_CFLAGS does not exist, assigining it to `$(inherited), -DFB_SONARKIT_ENABLED=1` " config.build_settings["OTHER_CFLAGS"] = "$(inherited) -DFB_SONARKIT_ENABLED=1 " end app_project.save end end endend
AppDelegate添加如下代码
FlipperClient *client = [FlipperClient sharedClient];SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];[FlipperKitLayoutComponentKitSupport setUpWithDescriptorMapper: layoutDescriptorMapper];[client addPlugin: [[FlipperKitLayoutPlugin alloc] initWithRootNode: application withDescriptorMapper: layoutDescriptorMapper]];[client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]]; [client start];[client addPlugin: [[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];[client start];
运行效果如下
Swift集成指南
初始化Podfile
project "democome-swift.xcodeproj"source "https://github.com/facebook/flipper.git"source "https://github.com/CocoaPods/Specs"swift_version = "4.2.1"flipperkit_version = "0.14.1"target "democome-swift" do platform :ios, "9.0" pod "FlipperKit", "~>" + flipperkit_version # Layout and network plugins are not yet supported for swift projects pod "FlipperKit/FlipperKitLayoutComponentKitSupport", "~>" + flipperkit_version pod "FlipperKit/SKIOSNetworkPlugin", "~>" + flipperkit_version pod "FlipperKit/FlipperKitUserDefaultsPlugin", "~>" + flipperkit_version # If you use `use_frameworks!` in your Podfile, # uncomment the below $static_framework array and also # the pre_install section. This will cause Flipper and # it"s dependencies to be static and all other pods to # be dynamic. # $static_framework = ["FlipperKit", "Flipper", "Folly", # "CocoaAsyncSocket", "ComponentKit", "DoubleConversion", # "glog", "PeerTalk", "RSocket", "Yoga", "YogaKit", # "CocoaLibEvent", "OpenSSL-Static", "boost-for-react-native"] # pre_install do |installer| # installer.pod_targets.each do |pod| # if $static_framework.include?(pod.name) # pod.host_requires_frameworks = false # end # end # end# This post_install script adds -DFB_SONARKIT_ENABLED flag to OTHER_SWIFT_FLAGS, necessary to build swift target post_install do |installer| file_name = Dir.glob("*.xcodeproj")[0] app_project = Xcodeproj::Project.open(file_name) app_project.native_targets.each do |target| target.build_configurations.each do |config| if (config.build_settings["OTHER_SWIFT_FLAGS"]) if !(config.build_settings["OTHER_SWIFT_FLAGS"].include? "-DFB_SONARKIT_ENABLED") puts "Adding -DFB_SONARKIT_ENABLED ..." swift_flags = config.build_settings["OTHER_SWIFT_FLAGS"] if swift_flags.split.last != "-Xcc" config.build_settings["OTHER_SWIFT_FLAGS"] << " -Xcc" end config.build_settings["OTHER_SWIFT_FLAGS"] << " -DFB_SONARKIT_ENABLED" end else puts "OTHER_SWIFT_FLAGS does not exist thus assigning it to `$(inherited) -Xcc -DFB_SONARKIT_ENABLED`" config.build_settings["OTHER_SWIFT_FLAGS"] = "$(inherited) -Xcc -DFB_SONARKIT_ENABLED" end app_project.save end end end end
这里需要注意Swift版本,需要和你安装的版本保持一致,否则可能会报错,查看Swift版本命令如下:
xcrun swift -version
AppDelegate添加如下代码
let client = FlipperClient.shared()let layoutDescriptorMapper = SKDescriptorMapper(defaults: ())FlipperKitLayoutComponentKitSupport.setUpWith(layoutDescriptorMapper)client?.add(FlipperKitLayoutPlugin(rootNode: application, with: layoutDescriptorMapper!))client?.start()
运行结果类似,不在贴出。
标签:
相关推荐:
最新新闻:
- 2016版word的光标怎么变粗?两种方法可使光标变粗
- 移动硬盘提示参数错误该怎么办?移动硬盘提示参数错误有方法可以解决吗?
- 如何使用VC2008运行库?VC2008运行库的用法详解及注意事项
- 笔记本电脑如何作为wifi热点?详解三种方法参考一下
- 笔记本定时开机怎么设置?笔记本定时开机设置步骤
- 运放放大器的负反馈与缓冲器 运放负反馈实例总结
- qsed文件怎么打开?qsed文件怎么转换?转换方法介绍
- Swift集成指南初始化Podfile 移动端调试工具Flipper了解一下
- 路由器怎么当交换机用?教你路由器当做交换使的连接方法
- 重点聚焦!英语语法:现在完成时形式haddone的用法介绍
- 笔记本电脑如何禁用触控板?详解禁用触控板的方法
- internet临时文件在哪里?ie临时文件文件夹位置
- 硬盘版是什么意思?硬盘版和免安装版有什么区别?
- Hosts是什么文件?Hosts文件位置及作用
- 如何用XLSTransformer生成excel文件?jxls的使用方法
- DirectX是什么?卸载DirectX的详细操作步骤
- 世界即时:bmp格式解析 Windows3.0:位图文件格式与显示设备无关
- 中国主要山脉及山峰分布 中国山脉的分布与走向介绍-当前快报
- OLT基本概念是什么?最全的OLT设备介绍
- 【MD5】数据加密获取前端密码
- 百事通!实例检查视频是否已暂停:myVid=document
- ubuntu16.04怎么安装搜狗输入法?安装搜狗输入法流程步骤
- 《冒险岛单机版》经验是100倍?最新盛大地图及BOSS
- 东风谷早苗最新钢达姆模型(附代码)|实时
- itunes备份系统的正确修改方法——iTunes备份路径:今日热闻
- 【聚看点】MacOSX操作系统 MacOSX和iOS应用程序的设置
- 每日短讯:虚拟数字人影响力指数报告发布中新社北京分社
- 世界新动态:日本一男子拍摄大熊猫12年 出版十多册“香香”专辑
- 微软与欧盟进行重要会面:斯宾塞、吉姆·瑞恩等出席
- 修长城模拟器 《中国边疆》最新演示 预定二季度steam发售
- VR解谜续作《我觉得你会死3:机器里的齿轮》公布
- Blumhouse Productions建立游戏工作室 开发原创恐怖游戏_天天热闻
- 2399元!Minisforum发布UM773 Lite迷你主机:搭载R7 7735HS
- 仰望易四方技术平台解读 带来全新出行体验:天天看热讯
- 放羊的星星回忆杀!刘荷娜林志颖16年后晒同框合影_每日热文
- 天天新资讯:索尼2.24迎新发布会:时长45分钟、16款新作展示
- 《城市猎人》剧场版动画天使之泪预告片发布:天天速递
- 八达岭长城缆车图片_八达岭长城缆车
- 航空公司专利:一边飞行一边刺激大脑_环球信息
- 面板白菜价!TCL雷鸟75寸巨屏电视跌至2699元:每日速读
- Chrome不占内存了!快使用最新版试试
- 《地狱男爵》20年后即将重启:环球关注
- 天天新动态:PCIe4.0!金邦2T只要653元
- 暴雪公布《暗黑破坏神4》7分钟加长说明视频:热讯
- 天天播报:原Quest游戏《Nock》将于3月登陆PSVR2
- 《极限竞速:地平线5》新扩展包将于本周五公布
- 平价显示器王者 梅捷IPS大屏显示器仅需363元
- 环球快资讯丨799元高特效吃鸡显卡 预算不高的可以冲
- 学生福利!罗技神鼠G102特价99元
- 天天速递!小米13廉价版将至!小米13T系列曝光
- 学生福利!罗技神鼠G102特价99元
- 【全球新视野】《最后生还者》艾莉演员片场被误伤:眼圈都打青了
- 《如龙 维新!极》正式发售 上市预告公布|世界新要闻
- 观热点:新一期State of Play公布 含15分钟《自杀小队》演示
- 中日韩自贸区板块2月21日跌0.93%,青岛金王领跌,主力资金净流出3.17亿元_焦点要闻
- 天津:六项利好鼓励创新创业 发挥创业带动就业倍增效应
- 环球消息!男子发现亡父739万债务3年偿清 网友盛赞“真汉子”
- 七彩虹将星X15 AT游戏本性能实测:13代酷睿HX处理器联手RTX4070轻松玩转2K分辨率:最新
- XGP新增游戏阵容公开 《原子之心》《卧龙》等:环球观热点
- 天天新资讯:V社:《DOTA2》下一个更新将于3月7日揭晓
- 世界今头条!国外游戏速通活动封禁《霍格沃茨之遗》等哈利波特游戏:具体理由未给出
- 导演谈《美末》剧集过早加入第二部元素:这非常自然
- 资讯:《英雄连3》媒体评分出炉 单人战役IGN 6分
- 文明是什么,一种文明对一个种族或者是一个国家来说代表了什么,应该起什么作用?
- 魅族20上架:预约量超10万单
- 当前讯息:iOS16仍存大量Bug 大量iPhone用户怒喷
- 英国非营利组织Conservation AI在全球濒危物种威胁检测方面取得巨大飞跃
- 嵌入式冰箱的美学评价自今起有了标准答案-天天短讯
- 焦点速递!数毛社:《霍格沃茨之遗》PS5运行效果好于XSX 多方面表现碾压!
- 《使命召唤》太赚钱!索尼给了动视更多收入分成
- 当前热议!《命运2》外挂销售商须赔偿Bungie 430万美元
- vivo X Fold 2曝光:折叠屏首次出现120W快充
- 环球精选!博主称嘎子卖的手机最多999元:别用高价低配忽悠人
- 【全球新视野】《王国之泪》鬼手林克Amiibo开启预购:售价244元
- 《新蝙蝠侠2》将于今年11月开拍-环球热文
- 贾跃亭:FF 91下月量产|微资讯
- 魅族20系列上架:1元预定:全球滚动
- 每日报道:大屏电视集体降价!长虹65英寸4K电视仅需1849元
- 任天堂和马里奥不敢说话,MarioGPT可无限生成关卡
- 全球快消息!美菱2.5L电饭煲特惠82元:具有多种功能
- 衡东园区用心“纾困” 企业竞相“争春”|世界时快讯
- PSVR2到手价3999元!比官方定价便宜500元:每日快讯
- 曝腾讯计划引进Quest 2!运营模式或类似国行Switch_天天即时
- 音悦台将回归登热搜 其主体公司已成老赖累计被执行1376万 当前速读
- 《动物派对》官方疑似开通新微博账号:“猛兽派对”