react / react/react-native

Libraries using `includesGeneratedCode: true` that pre-generated their codegen output with React Native < 0.84 fail to compile on iOS when consumed by an RN 0.84 app.

Abierto
#55,544 5 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Needs: Triage :mag: Platform: iOS Type: New Architecture
Lenguaje dominante
C++
Estrellas
127k
Forks
25.3k
Merge medio
1 d 23 h
PR fusionados (30 d)
4

Descripción

Description

PR #54919 ("Fix backwards-compat for ModuleConstants<::Builder>"), merged Dec 17 2025 and shipped in 0.84.0, introduced a ResultT type alias requirement in Constants::Builder structs. The updated RCTTypedModuleConstants.h now resolves the constants type via Builder::ResultT, but libraries with pre-shipped codegen (generated by older RN versions) don't have this alias.

The catch-22

Regenerating codegen with @react-native/codegen@0.84.0 produces output with completely different JSI structure (no Delegate class, methodMap_ pattern instead, ModuleConstants<Constants> vs ModuleConstants<Builder>) that is incompatible with older RN versions. This means there is no single codegen version that produces output working across both pre-0.84 and 0.84+ apps.

Documentation promise

The codegen-cli documentation states:

No need to worry about Codegen version mismatch between what is used by the app, and what was used during library development.

This implies that includesGeneratedCode provides forwards compatibility — the shipped codegen output should work with future RN versions. The ResultT change in 0.84 breaks this contract.

Impact on library developers

Library developers who need to support a range of RN versions (e.g. 0.70+ through 0.84) are left with no clean solution:

  • Option A: Generate with old codegen → broken on 0.84+
  • Option B: Generate with 0.84 codegen → broken on older versions
  • Option C: Manually patch using ResultT = Constants; into old-codegen output → works, but fragile, undocumented, and defeats the purpose of includesGeneratedCode

This is especially problematic for SDKs with large enterprise customers who cannot easily migrate React Native versions but still expect support for new SDK features and bug fixes.

Suggested fix

The ResultT resolution in RCTTypedModuleConstants.h should gracefully handle the case where Builder::ResultT doesn't exist (e.g. fall back to checking for Builder::build() return type, or default to the existing Builder behavior). This would maintain true backwards compatibility for libraries with pre-shipped codegen.

Alternatively, the codegen CLI docs should clearly document:

  1. Which RN versions' codegen output is compatible with which app versions
  2. That includesGeneratedCode does NOT guarantee forwards compatibility
  3. A recommended workaround for library developers supporting multiple RN versions

Steps to reproduce

  1. Create a TurboModule library with getConstants() and includesGeneratedCode: true
  2. Generate codegen with RN 0.77 (or any version < 0.84)
  3. Create an RN 0.84 app that consumes the library
  4. Build for iOS with New Architecture enabled
  5. Observe the no type named 'ResultT' compilation error

React Native Version

0.84.0

Affected Platforms

Build - iOS (New Architecture)

Related

  • #54919 — PR that introduced the ResultT requirement
  • #48621 — includesGeneratedCode doesn't prevent app-level codegen parsing
  • reactwg/react-native-new-architecture#272 — Discussion about codegen backwards compatibility
Steps to reproduce
  1. Create a library which includes generated codegen artifacts
  2. Generate the artifacts in any version below 0.84.x, for example 0.77.x
  3. Import the library in a sample running RN 0.84.x
  4. Attempt to build on iOS, it will fail due to missing type
React Native Version

0.84.0

Areas

Codegen

Output of npx @react-native-community/cli info
info Fetching system and libraries information...
System:
  OS: macOS 15.3
  CPU: (10) arm64 Apple M1 Pro
  Memory: 131.97 MB / 32.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 24.8.0
    path: /Users/konradgapinski/.asdf/installs/nodejs/24.8.0/bin/node
  Yarn: Not Found
  npm:
    version: 11.6.0
    path: /Users/konradgapinski/.asdf/plugins/nodejs/shims/npm
  Watchman: Not Found
Managers:
  CocoaPods:
    version: 1.16.2
    path: /Users/konradgapinski/.asdf/shims/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 24.2
      - iOS 18.2
      - macOS 15.2
      - tvOS 18.2
      - visionOS 2.2
      - watchOS 11.2
  Android SDK:
    API Levels:
      - "27"
      - "28"
      - "29"
      - "30"
      - "31"
      - "32"
      - "33"
      - "34"
      - "35"
      - "36"
    Build Tools:
      - 30.0.2
      - 30.0.3
      - 32.0.0
      - 33.0.0
      - 33.0.1
      - 33.0.2
      - 33.0.3
      - 34.0.0
      - 35.0.0
      - 36.0.0
      - 36.1.0
    System Images:
      - android-34 | Google APIs ARM 64 v8a
    Android NDK: Not Found
IDEs:
  Android Studio: 2025.2 AI-252.25557.131.2521.14432022
  Xcode:
    version: 16.2/16C5032a
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 21.0.9
    path: /usr/bin/javac
  Ruby:
    version: 3.2.1
    path: /Users/konradgapinski/.asdf/shims/ruby
npmPackages:
  "@react-native-community/cli":
    installed: 20.1.0
    wanted: 20.1.0
  react:
    installed: 19.2.3
    wanted: 19.2.3
  react-native:
    installed: 0.84.0
    wanted: 0.84.0
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: true
iOS:
  hermesEnabled: true
  newArchEnabled: true
Stacktrace or Logs
Showing Recent Errors Only
CompileC /Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/scandit-react-native-datacapture-core.build/Objects-normal/arm64/ScanditDataCaptureCore-f2d19fb949f3dc68ad8bf1fdb06dc3e3.o /Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/node_modules/scandit-react-native-datacapture-core/ios/Sources/ScanditDataCaptureCore.mm normal arm64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'scandit-react-native-datacapture-core' from project 'Pods')
    cd /Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods
    /Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/../../node_modules/react-native/scripts/xcode/ccache-clang.sh -x objective-c++ -target arm64-apple-ios15.1 -fmessage-length\=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit\=0 -fno-color-diagnostics -std\=c++20 -stdlib\=libc++ -fobjc-arc -fmodules -fmodules-cache-path\=/Users/konradgapinski/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -fmodules-prune-interval\=86400 -fmodules-prune-after\=345600 -fbuild-session-file\=/Users/konradgapinski/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 -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -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 -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -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 -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -Wno-c++11-extensions -Wno-implicit-fallthrough -DPOD_CONFIGURATION_DEBUG\=1 -DDEBUG\=1 -DCOCOAPODS\=1 -DOBJC_OLD_DISPATCH_PROTOTYPES\=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.2.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -Winvalid-offsetof -g -Wno-sign-conversion -Winfinite-recursion -Wmove -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wrange-loop-analysis -Wno-semicolon-before-method-body -Wunguarded-availability -index-store-path /Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Index.noindex/DataStore -iquote /Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/scandit-react-native-datacapture-core.build/scandit-react-native-datacapture-core-generated-files.hmap -I/Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/scandit-react-native-datacapture-core.build/scandit-react-native-datacapture-core-own-target-headers.hmap -I/Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/scandit-react-native-datacapture-core.build/scandit-react-native-datacapture-core-all-non-framework-target-headers.hmap -ivfsoverlay /Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/Pods-8699adb1dd336b26511df848a716bd42-VFS-iphoneos/all-product-headers.yaml -iquote /Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/scandit-react-native-datacapture-core.build/scandit-react-native-datacapture-core-project-headers.hmap -I/Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Products/Debug-iphoneos/scandit-react-native-datacapture-core/include -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Private -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Private/scandit-react-native-datacapture-core -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/FBLazyVector -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/RCTRequired -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/RCTSwiftUIWrapper -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/RCTTypeSafety -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-Core -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-Core-prebuilt -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-CoreModules -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-Fabric -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-FabricComponents -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-FabricImage -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-ImageManager -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-Mapbuffer -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-NativeModulesApple -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-RCTAnimation -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-RCTBlob -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-RCTFBReactNativeSpec -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-RCTFabric -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-RCTImage -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-RCTRuntime -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-RCTText -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-RuntimeApple -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-RuntimeCore -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-RuntimeHermes -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-callinvoker -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-cxxreact -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-debug -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-defaultsnativemodule -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-domnativemodule -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-featureflags -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-featureflagsnativemodule -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-graphics -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-hermes -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-idlecallbacksnativemodule -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-intersectionobservernativemodule -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-jserrorhandler -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-jsi -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-jsiexecutor -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-jsinspector -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-jsinspectorcdp -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-jsinspectornetwork -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-jsinspectortracing -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-jsitooling -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-logger -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-microtasksnativemodule -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-networking -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-oscompat -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-perflogger -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-performancecdpmetrics -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-performancetimeline -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-rendererconsistency -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-renderercss -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-rendererdebug -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-runtimeexecutor -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-runtimescheduler -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-timing -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-utils -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/React-webperformancenativemodule -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/ReactCodegen -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/ReactCommon -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/ReactNativeDependencies -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/Yoga -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/hermes-engine -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/scandit-datacapture-frameworks-core -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/scandit-react-native-datacapture-core -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/node_modules/scandit-react-native-datacapture-core/ios/generated -I/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Private/Yoga -I/Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/scandit-react-native-datacapture-core.build/DerivedSources-normal/arm64 -I/Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/scandit-react-native-datacapture-core.build/DerivedSources/arm64 -I/Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/scandit-react-native-datacapture-core.build/DerivedSources -F/Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Products/Debug-iphoneos/scandit-react-native-datacapture-core -F/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/shared/ios/scandit-datacapture-frameworks-core/Frameworks -F/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/React-Core-prebuilt -F/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/ReactNativeDependencies/framework/packages/react-native -F/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/hermes-engine/destroot/Library/Frameworks/universal -F/Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Products/Debug-iphoneos/XCFrameworkIntermediates/React-Core-prebuilt -F/Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Products/Debug-iphoneos/XCFrameworkIntermediates/ReactNativeDependencies -F/Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Products/Debug-iphoneos/XCFrameworkIntermediates/hermes-engine/Pre-built -F/Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Products/Debug-iphoneos/XCFrameworkIntermediates/scandit-datacapture-frameworks-core -DRCT_REMOVE_LEGACY_ARCH\=1 -fmodule-map-file\=/Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Products/Debug-iphoneos/RCTSwiftUI/RCTSwiftUI.modulemap -fmodule-map-file\=/Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Products/Debug-iphoneos/scandit-datacapture-frameworks-core/ScanditFrameworksCore.modulemap -fmodule-map-file\=/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/ReactCodegen/ReactCodegen.modulemap -DRCT_REMOVE_LEGACY_ARCH\=1 -DRCT_NEW_ARCH_ENABLED\=1 -DRCT_NEW_ARCH_ENABLED\=1 -w -Xanalyzer -analyzer-disable-all-checks -include /Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Target\ Support\ Files/scandit-react-native-datacapture-core/scandit-react-native-datacapture-core-prefix.pch -MMD -MT dependencies -MF /Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/scandit-react-native-datacapture-core.build/Objects-normal/arm64/ScanditDataCaptureCore-f2d19fb949f3dc68ad8bf1fdb06dc3e3.d --serialize-diagnostics /Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/scandit-react-native-datacapture-core.build/Objects-normal/arm64/ScanditDataCaptureCore-f2d19fb949f3dc68ad8bf1fdb06dc3e3.dia -c /Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/node_modules/scandit-react-native-datacapture-core/ios/Sources/ScanditDataCaptureCore.mm -o /Users/konradgapinski/Library/Developer/Xcode/DerivedData/DebugApp-aqezihaevrrbhcgvbvgonkjjisow/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/scandit-react-native-datacapture-core.build/Objects-normal/arm64/ScanditDataCaptureCore-f2d19fb949f3dc68ad8bf1fdb06dc3e3.o

In file included from /Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/node_modules/scandit-react-native-datacapture-core/ios/Sources/ScanditDataCaptureCore.mm:9:
In file included from /Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/node_modules/scandit-react-native-datacapture-core/ios/Sources/ScanditDataCaptureCore.h:16:
In file included from /Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/node_modules/scandit-react-native-datacapture-core/ios/generated/ScanditReactNativeDatacaptureCoreSpec/ScanditReactNativeDatacaptureCoreSpec.h:25:
/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/RCTTypeSafety/RCTTypeSafety/RCTTypedModuleConstants.h:62:28: error: no type named 'ResultT' in 'JS::NativeScanditDataCaptureCore::Constants::Builder'
   62 |   using type = typename T::ResultT;
      |                ~~~~~~~~~~~~^~~~~~~
/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/RCTTypeSafety/RCTTypeSafety/RCTTypedModuleConstants.h:73:1: note: in instantiation of template class 'facebook::react::detail::ResolveConstantsType<JS::NativeScanditDataCaptureCore::Constants::Builder>' requested here
   73 | using ModuleConstants = _RCTTypedModuleConstants<void (^)(typename detail::ResolveConstantsType<T>::type)> *;
      | ^
In file included from /Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/node_modules/scandit-react-native-datacapture-core/ios/Sources/ScanditDataCaptureCore.mm:9:
In file included from /Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/node_modules/scandit-react-native-datacapture-core/ios/Sources/ScanditDataCaptureCore.h:16:
/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/node_modules/scandit-react-native-datacapture-core/ios/generated/ScanditReactNativeDatacaptureCoreSpec/ScanditReactNativeDatacaptureCoreSpec.h:73:21: note: in instantiation of template type alias 'ModuleConstants' requested here
   73 | - (facebook::react::ModuleConstants<JS::NativeScanditDataCaptureCore::Constants::Builder>)constantsToExport;
      |                     ^
1 error generated.

/Users/konradgapinski/worktrees/SDC-29924/data-capture-sdk/frameworks/react-native/compatibility-check/latest/new-arch/DebugApp/ios/Pods/Headers/Public/RCTTypeSafety/RCTTypeSafety/RCTTypedModuleConstants.h:62:28: No type named 'ResultT' in 'JS::NativeScanditDataCaptureCore::Constants::Builder'
MANDATORY Reproducer

https://github.com/konradgapinski/RN-0.84.x-Codegen-Breaking-Changes#

Screenshots and Videos

No response

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con RCTTypedModuleConstants.h y el PR #54919 para entender cómo Constants::Builder resuelve ResultT. Reproduce el fallo de iOS New Architecture usando código generado antes de 0.84 en una aplicación RN 0.84 y, después, verifica la compatibilidad entre las versiones descritas; revisa la documentación de la CLI de codegen para comprobar si es necesario actualizar las instrucciones.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
cpp, ios
Área
build-system, mobile-dev
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Activo
Claridad
Bastante claro
Aptitud para principiantes
50/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.