callstack / react-native-image-editor

A library providing an API for cropping images from the web and the local file system.
MIT License
368 stars 117 forks source link

iOS compilation failures after Expo SDK 44/RN 0.64.3 upgrade #102

Closed kevgrig closed 5 months ago

kevgrig commented 2 years ago

Environment

Expo SDK 44, React Native 0.64.3, XCode 13.2.1, macOS 12.1 Monterey

Worked fine in Expo SDK 43, React Native 0.64.3

Description

XCode errors:

/Users/test/testimageeditor/node_modules/@react-native-community/image-editor/ios/RNCImageEditor.m:65:35: Implicit declaration of function 'RCTTransformFromTargetRect' is invalid in C99 /Users/test/testimageeditor/node_modules/@react-native-community/image-editor/ios/RNCImageEditor.m:65:35: Conflicting types for 'RCTTransformFromTargetRect' /Users/test/testimageeditor/node_modules/react-native/Libraries/Image/RCTImageUtils.h:29:30: previous declaration is here /Users/test/testimageeditor/node_modules/@react-native-community/image-editor/ios/RNCImageEditor.m:66:29: Implicit declaration of function 'RCTTransformImage' is invalid in C99 /Users/test/testimageeditor/node_modules/@react-native-community/image-editor/ios/RNCImageEditor.m:66:29: Conflicting types for 'RCTTransformImage' /Users/test/testimageeditor/node_modules/react-native/Libraries/Image/RCTImageUtils.h:83:32: previous declaration is here /Users/test/testimageeditor/node_modules/@react-native-community/image-editor/ios/RNCImageEditor.m:72:20: Implicit declaration of function 'RCTTargetRect' is invalid in C99 /Users/test/testimageeditor/node_modules/@react-native-community/image-editor/ios/RNCImageEditor.m:72:20: Conflicting types for 'RCTTargetRect' /Users/test/testimageeditor/node_modules/react-native/Libraries/Image/RCTImageUtils.h:21:19: previous declaration is here Modules Issue Group /Users/test/testimageeditor/node_modules/@react-native-community/image-editor/ios/RNCImageEditor.m:65:35: Declaration of 'RCTTransformFromTargetRect' must be imported from module 'React.RCTImageUtils' before it is required /Users/test/testimageeditor/node_modules/react-native/Libraries/Image/RCTImageUtils.h:29:30: Declaration here is not visible /Users/test/testimageeditor/node_modules/@react-native-community/image-editor/ios/RNCImageEditor.m:66:29: Declaration of 'RCTTransformImage' must be imported from module 'React.RCTImageUtils' before it is required /Users/test/testimageeditor/node_modules/react-native/Libraries/Image/RCTImageUtils.h:83:32: Declaration here is not visible /Users/test/testimageeditor/node_modules/@react-native-community/image-editor/ios/RNCImageEditor.m:72:20: Declaration of 'RCTTargetRect' must be imported from module 'React.RCTImageUtils' before it is required /Users/test/testimageeditor/node_modules/react-native/Libraries/Image/RCTImageUtils.h:21:19: Declaration here is not visible

Reproducible Demo

  1. expo init testimageeditor
  2. cd testimageditor
  3. expo install @react-native-community/image-editor
  4. expo eject
  5. XCode } Open } ios/testimageeditor.xcworkspace
  6. Product } Build
kevgrig commented 2 years ago

This seems to be fixed with this patch:

diff --git a/ios/RNCImageEditor.m b/ios/RNCImageEditor.m
index 7c2bede..8b20ec9 100644
--- a/ios/RNCImageEditor.m
+++ b/ios/RNCImageEditor.m
@@ -17,8 +17,8 @@
 #import <React/RCTImageStoreManager.h>
 #import "RNCFileSystem.h"
 #import "RNCImageUtils.h"
-#if __has_include(<RCTImage/RCTImageUtils.h>)
-#import <RCTImage/RCTImageUtils.h>
+#if __has_include(<React/RCTImageUtils.h>)
+#import <React/RCTImageUtils.h>
 #else
 #import "RCTImageUtils.h"
 #endif
Mkrtich13 commented 2 years ago

same issue for me, after applying the patch i got this errors:

CompileC /Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/Winher-firudojtabfgukazhgnkxibqvylw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-image-editor.build/Objects-normal/arm64/RNCImageEditor.o /Users/mkrtichhovanisian/Desktop/projects/winher/mobile/node_modules/@react-native-community/image-editor/ios/RNCImageEditor.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'react-native-image-editor' from project 'Pods')
    cd /Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods
    /Users/mkrtichhovanisian/Downloads/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -target arm64-apple-ios9.0-simulator -fmessage-length\=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit\=0 -std\=gnu11 -fobjc-arc -fobjc-weak -fmodules -fmodules-cache-path\=/Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -fmodules-prune-interval\=86400 -fmodules-prune-after\=345600 -fbuild-session-file\=/Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror\=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -O0 -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror\=return-type -Wdocumentation -Wunreachable-code -Wno-implicit-atomic-properties -Werror\=deprecated-objc-isa-usage -Wno-objc-interface-ivars -Werror\=objc-root-class -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -DPOD_CONFIGURATION_DEBUG\=1 -DDEBUG\=1 -DCOCOAPODS\=1 -DOBJC_OLD_DISPATCH_PROTOTYPES\=0 -isysroot /Users/mkrtichhovanisian/Downloads/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.0.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -g -Wno-sign-conversion -Winfinite-recursion -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wno-semicolon-before-method-body -Wunguarded-availability -fobjc-abi-version\=2 -fobjc-legacy-dispatch -index-store-path /Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/Winher-firudojtabfgukazhgnkxibqvylw/Index/DataStore -iquote /Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/Winher-firudojtabfgukazhgnkxibqvylw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-image-editor.build/react-native-image-editor-generated-files.hmap -I/Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/Winher-firudojtabfgukazhgnkxibqvylw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-image-editor.build/react-native-image-editor-own-target-headers.hmap -I/Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/Winher-firudojtabfgukazhgnkxibqvylw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-image-editor.build/react-native-image-editor-all-non-framework-target-headers.hmap -ivfsoverlay /Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/Winher-firudojtabfgukazhgnkxibqvylw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-image-editor.build/all-product-headers.yaml -iquote /Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/Winher-firudojtabfgukazhgnkxibqvylw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-image-editor.build/react-native-image-editor-project-headers.hmap -I/Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/Winher-firudojtabfgukazhgnkxibqvylw/Build/Products/Debug-iphonesimulator/react-native-image-editor/include -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Private -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Private/react-native-image-editor -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/DoubleConversion -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/FBLazyVector -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/RCT-Folly -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/RCTRequired -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/RCTTypeSafety -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/React-Codegen -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/React-Core -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/React-RCTBlob -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/React-RCTText -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/React-callinvoker -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/React-cxxreact -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/React-jsi -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/React-jsiexecutor -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/React-jsinspector -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/React-logger -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/React-perflogger -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/React-runtimeexecutor -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/ReactCommon -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/Yoga -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/fmt -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/glog -I/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/react-native-image-editor -I/Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/Winher-firudojtabfgukazhgnkxibqvylw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-image-editor.build/DerivedSources-normal/arm64 -I/Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/Winher-firudojtabfgukazhgnkxibqvylw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-image-editor.build/DerivedSources/arm64 -I/Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/Winher-firudojtabfgukazhgnkxibqvylw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-image-editor.build/DerivedSources -F/Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/Winher-firudojtabfgukazhgnkxibqvylw/Build/Products/Debug-iphonesimulator/react-native-image-editor -fmodule-map-file\=/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/React-Core/React/React-Core.modulemap -fmodule-map-file\=/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/ReactCommon/ReactCommon.modulemap -fmodule-map-file\=/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/yoga/Yoga.modulemap -include /Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Target\ Support\ Files/react-native-image-editor/react-native-image-editor-prefix.pch -MMD -MT dependencies -MF /Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/Winher-firudojtabfgukazhgnkxibqvylw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-image-editor.build/Objects-normal/arm64/RNCImageEditor.d --serialize-diagnostics /Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/Winher-firudojtabfgukazhgnkxibqvylw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-image-editor.build/Objects-normal/arm64/RNCImageEditor.dia -c /Users/mkrtichhovanisian/Desktop/projects/winher/mobile/node_modules/@react-native-community/image-editor/ios/RNCImageEditor.m -o /Users/mkrtichhovanisian/Library/Developer/Xcode/DerivedData/Winher-firudojtabfgukazhgnkxibqvylw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/react-native-image-editor.build/Objects-normal/arm64/RNCImageEditor.o -index-unit-output-path /Pods.build/Debug-iphonesimulator/react-native-image-editor.build/Objects-normal/arm64/RNCImageEditor.o

/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/node_modules/@react-native-community/image-editor/ios/RNCImageEditor.m:65:35: error: implicit declaration of function 'gamekyRCTTransformFromTargetRect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    CGAffineTransform transform = gamekyRCTTransformFromTargetRect(image.size, targetRect);
                                  ^
/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/node_modules/@react-native-community/image-editor/ios/RNCImageEditor.m:65:35: note: did you mean 'RCTTransformFromTargetRect'?
In module 'React' imported from /Users/mkrtichhovanisian/Desktop/projects/winher/mobile/node_modules/@react-native-community/image-editor/ios/RNCImageEditor.h:8:
/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/ios/Pods/Headers/Public/React-Core/React/RCTImageUtils.h:29:30: note: 'RCTTransformFromTargetRect' declared here
RCT_EXTERN CGAffineTransform RCTTransformFromTargetRect(CGSize sourceSize,
                             ^
/Users/mkrtichhovanisian/Desktop/projects/winher/mobile/node_modules/@react-native-community/image-editor/ios/RNCImageEditor.m:65:23: error: initializing 'CGAffineTransform' (aka 'struct CGAffineTransform') with an expression of incompatible type 'int'
    CGAffineTransform transform = gamekyRCTTransformFromTargetRect(image.size, targetRect);
                      ^           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 errors generated.
retyui commented 5 months ago

Hi, Please update RN/Expo to the latest version to fix the issue