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.
まだ誰も着手していません。
- 主要言語
- C++
- スター
- 127k
- フォーク
- 25.3k
- 平均マージ
- 1日 23時間
- マージ済み PR(30日)
- 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 ofincludesGeneratedCode
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:
- Which RN versions' codegen output is compatible with which app versions
- That
includesGeneratedCodedoes NOT guarantee forwards compatibility - A recommended workaround for library developers supporting multiple RN versions
Steps to reproduce
- Create a TurboModule library with
getConstants()andincludesGeneratedCode: true - Generate codegen with RN 0.77 (or any version < 0.84)
- Create an RN 0.84 app that consumes the library
- Build for iOS with New Architecture enabled
- 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
ResultTrequirement - #48621 —
includesGeneratedCodedoesn't prevent app-level codegen parsing - reactwg/react-native-new-architecture#272 — Discussion about codegen backwards compatibility
Steps to reproduce
- Create a library which includes generated codegen artifacts
- Generate the artifacts in any version below 0.84.x, for example 0.77.x
- Import the library in a sample running RN 0.84.x
- 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
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- 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