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.

未关闭
#55,544 5 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

Needs: Triage :mag: Platform: iOS Type: New Architecture
主要语言
C++
星标
127k
派生
25.3k
平均合并
1 天 23 小时
30 天内合并 PR
4

描述

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

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

从 RCTTypedModuleConstants.h 和 PR #54919 开始,了解 Constants::Builder 如何解析 ResultT。在 RN 0.84 应用中使用 0.84 之前生成的代码重现 iOS New Architecture 失败,然后验证所述版本之间的兼容性;检查 codegen CLI 文档,确认是否需要更新相关指导。

由索引模型根据 Issue 内容生成。

评估

技术栈
cpp, ios
领域
build-system, mobile-dev
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
活跃
描述清晰度
基本清楚
新手友好度
50/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。