Skip to content
Permalink
Browse files

CocoaPods frameworks compatibility: Step 2 (#25619)

Summary:
This is my proposal for fixing `use_frameworks!` compatibility without breaking all `<React/*>` imports I outlined in #25393 (comment). If accepted, it will fix #25349.

It builds on the changes I made in #25496 by ensuring each podspec has a unique value for `header_dir` so that framework imports do not conflict. Every podspec which should be included in the `<React/*>` namespace now includes it's headers from `React-Core.podspec`.

The following pods can still be imported with `<React/*>` and so should not have breaking changes: `React-ART`,`React-DevSupport`, `React-CoreModules`, `React-RCTActionSheet`, `React-RCTAnimation`, `React-RCTBlob`, `React-RCTImage`, `React-RCTLinking`, `React-RCTNetwork`, `React-RCTPushNotification`, `React-RCTSettings`, `React-RCTText`, `React-RCTSettings`, `React-RCTVibration`, `React-RCTWebSocket` .

There are still a few breaking changes which I hope will be acceptable:

- `React-Core.podspec` has been moved to the root of the project. Any `Podfile` that references it will need to update the path.
- ~~`React-turbomodule-core`'s headers now live under `<turbomodule/*>`~~ Replaced by #25619 (comment).
- ~~`React-turbomodulesamples`'s headers now live under `<turbomodulesamples/*>`~~ Replaced by #25619 (comment).
- ~~`React-TypeSaferty`'s headers now live under `<TypeSafety/*>`~~ Replaced by #25619 (comment).
- ~~`React-jscallinvoker`'s headers now live under `<jscallinvoker/*>`~~ Replaced by #25619 (comment).
- Each podspec now uses `s.static_framework = true`. This means that a minimum of CocoaPods 1.5 ([released in April 2018](http://blog.cocoapods.org/CocoaPods-1.5.0/)) is now required. This is needed so that the ` __has_include` conditions can still work when frameworks are enabled.

Still to do:

- ~~Including `React-turbomodule-core` with `use_frameworks!` enabled causes the C++ import failures we saw in #25349. I'm sure it will be possible to fix this but I need to dig deeper (perhaps a custom modulemap would be needed).~~ Addressed by 3357351.
- I haven't got Fabric working yet. I wonder if it would be acceptable to move Fabric out of the `<React/*>` namespace since it is new? �

## Changelog

[iOS] [Fixed] - Fixed compatibility with CocoaPods frameworks.
Pull Request resolved: #25619

Test Plan:
### FB

```
buck build catalyst
```

### Sample Project

Everything should work exactly as before, where `use_frameworks!` is not in `Podfile`s. I have a branch on my [sample project](https://github.com/jtreanor/react-native-cocoapods-frameworks) here which has `use_frameworks!` in its `Podfile` to demonstrate this is fixed.

You can see that it works with these steps:

1. `git clone git@github.com:jtreanor/react-native-cocoapods-frameworks.git`
2. `git checkout fix-frameworks-subspecs`
3. `cd ios && pod install`
4. `cd .. && react-native run-ios`

The sample app will build and run successfully. To see that it still works without frameworks, remove `use_frameworks!` from the `Podfile` and do steps 3 and 4 again.

### RNTesterPods

`RNTesterPodsPods` can now work with or without `use_frameworks!`.

1. Go to the `RNTester` directory and run `pod install`.
2. Run the tests in `RNTesterPods.xcworkspace` to see that everything still works fine.
3. Uncomment the `use_frameworks!` line at the top of `RNTester/Podfile` and run `pod install` again.
4. Run the tests again and see that it still works with frameworks enabled.

Reviewed By: PeteTheHeat

Differential Revision: D16465247

Pulled By: PeteTheHeat

fbshipit-source-id: cad837e9cced06d30cc5b372af1c65c7780b9e7a
  • Loading branch information...
jtreanor authored and facebook-github-bot committed Jul 25, 2019
1 parent 7244bae commit 8131b7bb7b4794e0e7003a6e3d34e1ebe4b8b9bc
Showing with 561 additions and 500 deletions.
  1. +1 −1 Libraries/ART/ARTGroup.m
  2. +2 −2 Libraries/ART/ARTNode.m
  3. +1 −1 Libraries/ART/ARTRenderable.m
  4. +1 −1 Libraries/ART/ARTShape.m
  5. +2 −2 Libraries/ART/ARTSurfaceView.m
  6. +1 −1 Libraries/ART/ARTText.m
  7. +1 −1 Libraries/ART/Brushes/ARTBrush.m
  8. +1 −1 Libraries/ART/Brushes/ARTLinearGradient.m
  9. +1 −1 Libraries/ART/Brushes/ARTPattern.m
  10. +1 −1 Libraries/ART/Brushes/ARTRadialGradient.m
  11. +1 −1 Libraries/ART/Brushes/ARTSolidColor.m
  12. +4 −4 Libraries/ART/RCTConvert+ART.m
  13. +4 −3 Libraries/ART/React-ART.podspec
  14. +2 −2 Libraries/ART/ViewManagers/ARTGroupManager.m
  15. +2 −2 Libraries/ART/ViewManagers/ARTNodeManager.m
  16. +1 −1 Libraries/ART/ViewManagers/ARTRenderableManager.m
  17. +2 −2 Libraries/ART/ViewManagers/ARTShapeManager.m
  18. +2 −2 Libraries/ART/ViewManagers/ARTSurfaceViewManager.m
  19. +2 −2 Libraries/ART/ViewManagers/ARTTextManager.m
  20. +1 −1 Libraries/ActionSheetIOS/RCTActionSheetManager.m
  21. +4 −3 Libraries/ActionSheetIOS/React-RCTActionSheet.podspec
  22. +1 −1 Libraries/Blob/RCTBlobCollector.mm
  23. +1 −1 Libraries/Blob/RCTBlobManager.mm
  24. +2 −2 Libraries/Blob/RCTFileReaderModule.m
  25. +6 −3 Libraries/Blob/React-RCTBlob.podspec
  26. +1 −0 Libraries/FBLazyVector/FBLazyVector.podspec
  27. +1 −0 Libraries/FBReactNativeSpec/FBReactNativeSpec.podspec
  28. +1 −1 Libraries/Image/RCTAnimatedImage.m
  29. +2 −2 Libraries/Image/RCTGIFImageDecoder.m
  30. +1 −1 Libraries/Image/RCTImageBlurUtils.m
  31. +2 −2 Libraries/Image/RCTImageCache.m
  32. +4 −4 Libraries/Image/RCTImageEditingManager.m
  33. +2 −2 Libraries/Image/RCTImageLoader.m
  34. +1 −1 Libraries/Image/RCTImageShadowView.m
  35. +2 −2 Libraries/Image/RCTImageStoreManager.m
  36. +1 −1 Libraries/Image/RCTImageUtils.m
  37. +5 −5 Libraries/Image/RCTImageView.m
  38. +4 −4 Libraries/Image/RCTImageViewManager.m
  39. +1 −1 Libraries/Image/RCTLocalAssetImageLoader.m
  40. +1 −1 Libraries/Image/RCTResizeMode.m
  41. +1 −1 Libraries/Image/RCTUIImageViewAnimated.h
  42. +1 −1 Libraries/Image/RCTUIImageViewAnimated.m
  43. +4 −3 Libraries/Image/React-RCTImage.podspec
  44. +1 −1 Libraries/LinkingIOS/RCTLinkingManager.m
  45. +4 −3 Libraries/LinkingIOS/React-RCTLinking.podspec
  46. +3 −3 Libraries/NativeAnimation/Drivers/RCTDecayAnimation.m
  47. +1 −1 Libraries/NativeAnimation/Drivers/RCTEventAnimation.m
  48. +3 −3 Libraries/NativeAnimation/Drivers/RCTFrameAnimation.m
  49. +3 −3 Libraries/NativeAnimation/Drivers/RCTSpringAnimation.m
  50. +1 −1 Libraries/NativeAnimation/Nodes/RCTAdditionAnimatedNode.m
  51. +1 −1 Libraries/NativeAnimation/Nodes/RCTAnimatedNode.m
  52. +1 −1 Libraries/NativeAnimation/Nodes/RCTDiffClampAnimatedNode.m
  53. +1 −1 Libraries/NativeAnimation/Nodes/RCTDivisionAnimatedNode.m
  54. +2 −2 Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.m
  55. +1 −1 Libraries/NativeAnimation/Nodes/RCTModuloAnimatedNode.m
  56. +1 −1 Libraries/NativeAnimation/Nodes/RCTMultiplicationAnimatedNode.m
  57. +4 −4 Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m
  58. +4 −4 Libraries/NativeAnimation/Nodes/RCTStyleAnimatedNode.m
  59. +1 −1 Libraries/NativeAnimation/Nodes/RCTSubtractionAnimatedNode.m
  60. +3 −3 Libraries/NativeAnimation/Nodes/RCTTrackingAnimatedNode.m
  61. +2 −2 Libraries/NativeAnimation/Nodes/RCTTransformAnimatedNode.m
  62. +1 −1 Libraries/NativeAnimation/Nodes/RCTValueAnimatedNode.m
  63. +1 −1 Libraries/NativeAnimation/RCTAnimationUtils.m
  64. +2 −2 Libraries/NativeAnimation/RCTNativeAnimatedModule.m
  65. +19 −19 Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.m
  66. +4 −3 Libraries/NativeAnimation/React-RCTAnimation.podspec
  67. +1 −1 Libraries/Network/RCTDataRequestHandler.m
  68. +1 −1 Libraries/Network/RCTFileRequestHandler.m
  69. +2 −2 Libraries/Network/RCTHTTPRequestHandler.mm
  70. +1 −1 Libraries/Network/RCTNetInfo.m
  71. +1 −1 Libraries/Network/RCTNetworking.mm
  72. +4 −3 Libraries/Network/React-RCTNetwork.podspec
  73. +1 −1 Libraries/PushNotificationIOS/RCTPushNotificationManager.m
  74. +4 −3 Libraries/PushNotificationIOS/React-RCTPushNotification.podspec
  75. +1 −0 Libraries/RCTRequired/RCTRequired.podspec
  76. +1 −1 Libraries/Settings/RCTSettingsManager.m
  77. +4 −3 Libraries/Settings/React-RCTSettings.podspec
  78. +3 −3 Libraries/Text/BaseText/RCTBaseTextShadowView.m
  79. +1 −1 Libraries/Text/BaseText/RCTBaseTextViewManager.m
  80. +1 −1 Libraries/Text/RCTConvert+Text.m
  81. +1 −1 Libraries/Text/RCTTextAttributes.m
  82. +1 −1 Libraries/Text/RawText/RCTRawTextShadowView.m
  83. +2 −2 Libraries/Text/RawText/RCTRawTextViewManager.m
  84. +3 −2 Libraries/Text/React-RCTText.podspec
  85. +2 −2 Libraries/Text/Text/RCTTextShadowView.m
  86. +2 −2 Libraries/Text/Text/RCTTextView.m
  87. +3 −3 Libraries/Text/Text/RCTTextViewManager.m
  88. +2 −2 Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.m
  89. +2 −2 Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.m
  90. +3 −3 Libraries/Text/TextInput/Multiline/RCTUITextView.m
  91. +1 −1 Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.m
  92. +2 −2 Libraries/Text/TextInput/RCTBaseTextInputShadowView.m
  93. +5 −5 Libraries/Text/TextInput/RCTBaseTextInputView.m
  94. +4 −4 Libraries/Text/TextInput/RCTBaseTextInputViewManager.m
  95. +1 −1 Libraries/Text/TextInput/RCTInputAccessoryShadowView.m
  96. +2 −2 Libraries/Text/TextInput/RCTInputAccessoryView.m
  97. +1 −1 Libraries/Text/TextInput/RCTInputAccessoryViewContent.m
  98. +3 −3 Libraries/Text/TextInput/RCTInputAccessoryViewManager.m
  99. +1 −1 Libraries/Text/TextInput/RCTTextSelection.m
  100. +2 −2 Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.m
  101. +3 −3 Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.m
  102. +3 −3 Libraries/Text/TextInput/Singleline/RCTUITextField.m
  103. +2 −2 Libraries/Text/VirtualText/RCTVirtualTextShadowView.m
  104. +2 −2 Libraries/Text/VirtualText/RCTVirtualTextViewManager.m
  105. +1 −0 Libraries/TypeSafety/RCTTypeSafety.podspec
  106. +1 −1 Libraries/Vibration/RCTVibration.m
  107. +4 −3 Libraries/Vibration/React-RCTVibration.podspec
  108. +2 −2 Libraries/WebSocket/RCTReconnectingWebSocket.m
  109. +1 −1 Libraries/WebSocket/RCTSRWebSocket.m
  110. +2 −2 Libraries/WebSocket/RCTWebSocketExecutor.m
  111. +2 −2 Libraries/WebSocket/RCTWebSocketModule.m
  112. +4 −3 Libraries/WebSocket/React-RCTWebSocket.podspec
  113. +150 −43 RNTester/Podfile.lock
  114. +2 −1 RNTester/RCTTest/React-RCTTest.podspec
  115. +0 −7 RNTester/RNTesterIntegrationTests/RCTRootViewIntegrationTests.m
  116. +0 −4 RNTester/RNTesterIntegrationTests/RNTesterIntegrationTests.m
  117. +0 −4 RNTester/RNTesterIntegrationTests/RNTesterSnapshotTests.m
  118. +14 −58 RNTester/RNTesterPods.xcodeproj/project.pbxproj
  119. +0 −4 RNTester/RNTesterUnitTests/RCTAllocationTests.m
  120. +1 −5 RNTester/RNTesterUnitTests/RCTAnimationUtilsTests.m
  121. +1 −5 RNTester/RNTesterUnitTests/RCTBlobManagerTests.m
  122. +0 −4 RNTester/RNTesterUnitTests/RCTComponentPropsTests.m
  123. +0 −4 RNTester/RNTesterUnitTests/RCTDevMenuTests.m
  124. +0 −4 RNTester/RNTesterUnitTests/RCTGzipTests.m
  125. +1 −5 RNTester/RNTesterUnitTests/RCTImageUtilTests.m
  126. +0 −4 RNTester/RNTesterUnitTests/RCTModuleInitNotificationRaceTests.m
  127. +0 −4 RNTester/RNTesterUnitTests/RCTModuleInitTests.m
  128. +2 −7 RNTester/RNTesterUnitTests/RCTNativeAnimatedNodesManagerTests.m
  129. +91 −0 React-Core.podspec
  130. +4 −3 React/CoreModules/React-CoreModules.podspec
  131. +5 −5 React/DevSupport/RCTDevLoadingView.m
  132. +9 −9 React/DevSupport/RCTDevMenu.m
  133. +3 −3 React/DevSupport/RCTInspectorDevServerHelper.mm
  134. +1 −1 React/DevSupport/RCTPackagerClient.m
  135. +1 −1 React/DevSupport/RCTPackagerConnection.mm
  136. +6 −6 React/Inspector/RCTInspector.mm
  137. +6 −6 React/Inspector/RCTInspectorPackagerConnection.m
  138. +0 −68 React/React-Core.podspec
  139. +6 −4 React/React-DevSupport.podspec
  140. +3 −2 React/React-RCTFabric.podspec
  141. +1 −0 ReactCommon/React-Fabric.podspec
  142. +3 −2 ReactCommon/ReactCommon.podspec
  143. +1 −0 ReactCommon/cxxreact/React-cxxreact.podspec
  144. +2 −1 ReactCommon/fabric/graphics/React-graphics.podspec
  145. +1 −0 ReactCommon/jsi/React-jsi.podspec
  146. +1 −0 ReactCommon/jsiexecutor/React-jsiexecutor.podspec
  147. +1 −0 ReactCommon/jsinspector/React-jsinspector.podspec
  148. +1 −0 package.json
  149. +1 −1 scripts/autolink-ios.rb
  150. +1 −1 template/ios/Podfile
@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTGroup.h"
#import <React/ARTGroup.h>

@implementation ARTGroup

@@ -5,9 +5,9 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTNode.h"
#import <React/ARTNode.h>

#import "ARTContainer.h"
#import <React/ARTContainer.h>

@implementation ARTNode

@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTRenderable.h"
#import <React/ARTRenderable.h>

@implementation ARTRenderable

@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTShape.h"
#import <React/ARTShape.h>

@implementation ARTShape

@@ -5,11 +5,11 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTSurfaceView.h"
#import <React/ARTSurfaceView.h>

#import <React/RCTLog.h>

#import "ARTNode.h"
#import <React/ARTNode.h>

@implementation ARTSurfaceView

@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTText.h"
#import <React/ARTText.h>

#import <CoreText/CoreText.h>

@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTBrush.h"
#import <React/ARTBrush.h>

#import <React/RCTDefines.h>

@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTLinearGradient.h"
#import <React/ARTLinearGradient.h>

#import <React/RCTLog.h>

@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTPattern.h"
#import <React/ARTPattern.h>

#import <React/RCTLog.h>

@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTRadialGradient.h"
#import <React/ARTRadialGradient.h>

#import <React/RCTLog.h>

@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTSolidColor.h"
#import <React/ARTSolidColor.h>

#import <React/RCTLog.h>

@@ -10,10 +10,10 @@
#import <React/RCTFont.h>
#import <React/RCTLog.h>

#import "ARTLinearGradient.h"
#import "ARTPattern.h"
#import "ARTRadialGradient.h"
#import "ARTSolidColor.h"
#import <React/ARTLinearGradient.h>
#import <React/ARTPattern.h>
#import <React/ARTRadialGradient.h>
#import <React/ARTSolidColor.h>

@implementation RCTConvert (ART)

@@ -26,9 +26,10 @@ Pod::Spec.new do |s|
s.author = "Facebook, Inc. and its affiliates"
s.platforms = { :ios => "9.0", :tvos => "9.2" }
s.source = source
s.source_files = "**/*.{h,m}"
s.source_files = "**/*.{m}"
s.preserve_paths = "package.json", "LICENSE", "LICENSE-docs"
s.header_dir = "React"
s.header_dir = "ART"
s.static_framework = true

s.dependency "React-Core", version
s.dependency "React-Core/ARTHeaders", version
end
@@ -5,9 +5,9 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTGroupManager.h"
#import <React/ARTGroupManager.h>

#import "ARTGroup.h"
#import <React/ARTGroup.h>
#import "RCTConvert+ART.h"

@implementation ARTGroupManager
@@ -5,9 +5,9 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTNodeManager.h"
#import <React/ARTNodeManager.h>

#import "ARTNode.h"
#import <React/ARTNode.h>

@implementation ARTNodeManager

@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTRenderableManager.h"
#import <React/ARTRenderableManager.h>

#import "RCTConvert+ART.h"

@@ -5,9 +5,9 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTShapeManager.h"
#import <React/ARTShapeManager.h>

#import "ARTShape.h"
#import <React/ARTShape.h>
#import "RCTConvert+ART.h"

@implementation ARTShapeManager
@@ -5,9 +5,9 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTSurfaceViewManager.h"
#import <React/ARTSurfaceViewManager.h>

#import "ARTSurfaceView.h"
#import <React/ARTSurfaceView.h>

@implementation ARTSurfaceViewManager

@@ -5,9 +5,9 @@
* LICENSE file in the root directory of this source tree.
*/

#import "ARTTextManager.h"
#import <React/ARTTextManager.h>

#import "ARTText.h"
#import <React/ARTText.h>
#import "RCTConvert+ART.h"

@implementation ARTTextManager
@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "RCTActionSheetManager.h"
#import <React/RCTActionSheetManager.h>

#import <React/RCTBridge.h>
#import <React/RCTConvert.h>
@@ -27,9 +27,10 @@ Pod::Spec.new do |s|
s.author = "Facebook, Inc. and its affiliates"
s.platforms = { :ios => "9.0", :tvos => "9.2" }
s.source = source
s.source_files = "*.{h,m}"
s.source_files = "*.{m}"
s.preserve_paths = "package.json", "LICENSE", "LICENSE-docs"
s.header_dir = "React"
s.header_dir = "RCTActionSheet"
s.static_framework = true

s.dependency "React-Core", version
s.dependency "React-Core/RCTActionSheetHeaders", version
end
@@ -8,7 +8,7 @@
#import "RCTBlobCollector.h"

#import <React/RCTBridge+Private.h>
#import "RCTBlobManager.h"
#import <React/RCTBlobManager.h>

namespace facebook {
namespace react {
@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "RCTBlobManager.h"
#import <React/RCTBlobManager.h>

#import <mutex>

@@ -6,12 +6,12 @@
*/


#import "RCTFileReaderModule.h"
#import <React/RCTFileReaderModule.h>

#import <React/RCTBridge.h>
#import <React/RCTConvert.h>

#import "RCTBlobManager.h"
#import <React/RCTBlobManager.h>


@implementation RCTFileReaderModule
@@ -26,11 +26,14 @@ Pod::Spec.new do |s|
s.author = "Facebook, Inc. and its affiliates"
s.platforms = { :ios => "9.0", :tvos => "9.2" }
s.source = source
s.source_files = "*.{h,m,mm}"
# RCTBlobCollector.h is not included in the React module as it has C++ code
s.source_files = "*.{m,mm}", "RCTBlobCollector.h"
s.preserve_paths = "package.json", "LICENSE", "LICENSE-docs"
s.header_dir = "React"
s.header_dir = "RCTBlob"
s.static_framework = true

s.dependency "React-Core", version
s.dependency "React-Core/RCTBlobHeaders", version
s.dependency "React-RCTNetwork", version
s.dependency "React-RCTWebSocket", version
s.dependency "React-jsi", version
end
@@ -28,4 +28,5 @@ Pod::Spec.new do |s|
s.source = source
s.source_files = "**/*.{c,h,m,mm,cpp}"
s.header_dir = "FBLazyVector"

end
@@ -32,6 +32,7 @@ Pod::Spec.new do |s|
s.source = source
s.source_files = "**/*.{c,h,m,mm,cpp}"
s.header_dir = "FBReactNativeSpec"
s.static_framework = true

s.pod_target_xcconfig = {
"USE_HEADERMAP" => "YES",
@@ -6,7 +6,7 @@
*/

#import <ImageIO/ImageIO.h>
#import "RCTAnimatedImage.h"
#import <React/RCTAnimatedImage.h>

@interface RCTGIFCoderFrame : NSObject

@@ -5,13 +5,13 @@
* LICENSE file in the root directory of this source tree.
*/

#import "RCTGIFImageDecoder.h"
#import <React/RCTGIFImageDecoder.h>

#import <ImageIO/ImageIO.h>
#import <QuartzCore/QuartzCore.h>

#import <React/RCTUtils.h>
#import "RCTAnimatedImage.h"
#import <React/RCTAnimatedImage.h>

@implementation RCTGIFImageDecoder

@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "RCTImageBlurUtils.h"
#import <React/RCTImageBlurUtils.h>

UIImage *RCTBlurredImageWithRadius(UIImage *inputImage, CGFloat radius)
{
@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "RCTImageCache.h"
#import <React/RCTImageCache.h>

#import <objc/runtime.h>

@@ -16,7 +16,7 @@
#import <React/RCTUtils.h>
#import <React/RCTResizeMode.h>

#import "RCTImageUtils.h"
#import <React/RCTImageUtils.h>

static const NSUInteger RCTMaxCachableDecodedImageSizeInBytes = 2097152; // 2 MB

@@ -5,17 +5,17 @@
* LICENSE file in the root directory of this source tree.
*/

#import "RCTImageEditingManager.h"
#import <React/RCTImageEditingManager.h>

#import <UIKit/UIKit.h>

#import <React/RCTConvert.h>
#import <React/RCTLog.h>
#import <React/RCTUtils.h>

#import "RCTImageLoader.h"
#import "RCTImageStoreManager.h"
#import "RCTImageUtils.h"
#import <React/RCTImageLoader.h>
#import <React/RCTImageStoreManager.h>
#import <React/RCTImageUtils.h>

@implementation RCTImageEditingManager

@@ -17,8 +17,8 @@
#import <React/RCTNetworking.h>
#import <React/RCTUtils.h>

#import "RCTImageCache.h"
#import "RCTImageUtils.h"
#import <React/RCTImageCache.h>
#import <React/RCTImageUtils.h>

static NSInteger RCTImageBytesForImage(UIImage *image)
{
@@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "RCTImageShadowView.h"
#import <React/RCTImageShadowView.h>

#import <React/RCTLog.h>

0 comments on commit 8131b7b

Please sign in to comment.
You can’t perform that action at this time.