fix(android): commit codegen output so source builds work + document New Arch requirement#55
Merged
Merged
Conversation
android/generated and ios/generated were gitignored while codegenConfig
sets includesGeneratedCode: true, which tells consuming apps not to
regenerate. A fresh clone therefore had no generated code, so the CMake
target react_codegen_QuickBase64Spec was never defined and Android
builds failed with:
ReactNative-application.cmake:97 (target_link_libraries):
Cannot specify link libraries for target react_codegen_QuickBase64Spec
Un-ignore and commit the generated code (as includesGeneratedCode
implies) so from-source and CI builds resolve the target.
3.0.0 migrated to a pure C++ TurboModule, which only registers under the New Architecture. Apps on the Old Architecture hit 'QuickBase64 could not be found'. Document the requirement, the fix (enable new arch + clean rebuild), and the 2.2.2 fallback for Old Architecture.
craftzdog
approved these changes
Jul 8, 2026
Owner
|
Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Building
react-native-quick-base64from source (fresh clone / CI / monorepo consumer) fails on Android during the CMake configure step:Root cause
codegenConfig.includesGeneratedCode: truetells consuming apps not to regenerate the codegen output (the library is expected to ship it). Butandroid/generatedandios/generatedwere listed in.gitignore, so a fresh clone had no generated code at all. Thereact_codegen_QuickBase64SpecCMake target was therefore never defined, and autolinking'starget_link_librarieson it failed.npm installs were unaffected because the published tarball already includes the generated code (produced by
bob buildat pack time). This only bit source builds: contributors, CI, and monorepo consumers.Fix
android/generated+ios/generated, matching theincludesGeneratedCode: truecontract.Verified locally: fresh generate → Android build succeeds → example app runs and the base64 suite passes 36/36 on a New-Architecture emulator (RN 0.85).
Also: document the New Architecture requirement
While investigating, I traced the widely-reported runtime error
TurboModuleRegistry.getEnforcing(...): 'QuickBase64' could not be found(e.g. margelo/react-native-quick-crypto#1052). Since3.0.0migrated to a pure C++ TurboModule, it only registers under the New Architecture — 3.0.0 has no Old-Architecture registration path (the legacyQuickBase64Module/Packagewere removed in the codegen migration). Apps on the Old Architecture (bare RN withnewArchEnabled=false, or Expo SDK 53 without new arch) hit this error. This PR adds a README note covering the requirement, the fix, and the2.2.2fallback for Old-Architecture apps.Commits
fix(android): commit codegen output so source builds workdocs: note New Architecture requirement for 3.0.0+