From c6c667df69e0dfc5f1f3192690ec06b6845f439e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eloy=20Dur=C3=A1n?= Date: Mon, 9 Mar 2020 07:39:49 -0700 Subject: [PATCH] Make iOS 9 compatible again. (#874) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: React Native v0.62.0’s template still uses iOS 9 as deployment target, bumping it to 10 this late in the release cycle is probably not a good idea, so instead I made this tiny change to make it iOS 9 compatible again. ⚠️ I made this change on top of the `v0.32.2` **tag**, as `master` was giving me a build failure and in any case it would be better to release _just_ this change as a patch release so the RN `v0.62.0-rc.3` release can go out without having to test Flipper as thoroughly again. ## Changelog Make FlipperKit compatible with iOS 9 again. Pull Request resolved: https://github.com/facebook/flipper/pull/874 Test Plan: - `pod install` with a Podfile that has iOS 9 as its deployment target passes again. - Building the Flipper Sample works. - Building with a RN application created with the `v0.62.0-rc.3` template works. Reviewed By: priteshrnandgaonkar Differential Revision: D20307073 Pulled By: passy fbshipit-source-id: 0dd02dfb810b7382c52ca81b8f1322f807fb3f29 --- FlipperKit.podspec | 2 +- .../descriptors/SKViewDescriptor.mm | 19 +++++++++++++++---- iOS/Sample/Podfile | 2 +- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/FlipperKit.podspec b/FlipperKit.podspec index 73d869c2f..ee46dc047 100644 --- a/FlipperKit.podspec +++ b/FlipperKit.podspec @@ -17,7 +17,7 @@ Pod::Spec.new do |spec| spec.source = { :git => 'https://github.com/facebook/Sonar.git', :tag=> "v"+flipperkit_version } spec.module_name = 'FlipperKit' - spec.platforms = { :ios => "10.0" } + spec.platforms = { :ios => "9.0" } spec.default_subspecs = "Core" # This subspec is necessary since FBDefines.h is imported as diff --git a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/descriptors/SKViewDescriptor.mm b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/descriptors/SKViewDescriptor.mm index 7ad170dbd..0a6bc759e 100644 --- a/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/descriptors/SKViewDescriptor.mm +++ b/iOS/Plugins/FlipperKitLayoutPlugin/FlipperKitLayoutPlugin/descriptors/SKViewDescriptor.mm @@ -225,7 +225,7 @@ static NSDictionary* YGUnitEnumMap = nil; - (NSDictionary*)dataMutationsForNode: (UIView*)node { - return @{ + NSDictionary* dataMutations = @{ // UIView @"UIView.alpha" : ^(NSNumber* value){ node.alpha = [value floatValue]; @@ -453,9 +453,6 @@ static NSDictionary* YGUnitEnumMap = nil; @"Accessibility.accessibilityTraits.UIAccessibilityTraitCausesPageTurn": ^(NSNumber *value) { node.accessibilityTraits = AccessibilityTraitsToggle(node.accessibilityTraits, UIAccessibilityTraitCausesPageTurn, [value boolValue]); }, - @"Accessibility.accessibilityTraits.UIAccessibilityTraitTabBar": ^(NSNumber *value) { - node.accessibilityTraits = AccessibilityTraitsToggle(node.accessibilityTraits, UIAccessibilityTraitTabBar, [value boolValue]); - }, @"Accessibility.accessibilityViewIsModal": ^(NSNumber *value) { node.accessibilityViewIsModal = [value boolValue]; }, @@ -464,6 +461,20 @@ static NSDictionary* YGUnitEnumMap = nil; }, } ; +if (@available(iOS 10.0, *)) { + NSMutableDictionary* latestDataMutations = + [dataMutations mutableCopy]; + latestDataMutations + [@"Accessibility.accessibilityTraits.UIAccessibilityTraitTabBar"] = + ^(NSNumber* value) { + node.accessibilityTraits = AccessibilityTraitsToggle( + node.accessibilityTraits, + UIAccessibilityTraitTabBar, + [value boolValue]); + }; + dataMutations = latestDataMutations; +} +return dataMutations; } - (NSArray*>*)attributesForNode:(UIView*)node { diff --git a/iOS/Sample/Podfile b/iOS/Sample/Podfile index 29d2762f3..a49cd424f 100644 --- a/iOS/Sample/Podfile +++ b/iOS/Sample/Podfile @@ -3,7 +3,7 @@ source 'https://github.com/facebook/Sonar.git' source 'https://github.com/CocoaPods/Specs' target 'Sample' do - platform :ios, '10.0' + platform :ios, '9.0' pod 'FlipperKit', :path => '../../FlipperKit.podspec' pod 'FlipperKit/FlipperKitLayoutComponentKitSupport', :path => '../../FlipperKit.podspec' pod 'FlipperKit/SKIOSNetworkPlugin', :path => '../../FlipperKit.podspec'