fix(spm): Include FirebaseRemoteConfigInternal in RemoteConfig product#16291
fix(spm): Include FirebaseRemoteConfigInternal in RemoteConfig product#16291ArthurHPorto wants to merge 1 commit into
Conversation
Bundle the internal Objective-C target with the FirebaseRemoteConfig SwiftPM library product so consumers can resolve the clang module when building with Swift explicit modules enabled (e.g. Xcode 26+ and Tuist).
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. |
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
|
I signed the CLA. |
75ef3ce to
d2b1f58
Compare
Discussion
Problem
FirebaseRemoteConfigis split across two SwiftPM targets because SwiftPM does not support mixed-language targets:FirebaseRemoteConfigInternalFirebaseRemoteConfig@_exported import FirebaseRemoteConfigInternal)The public
FirebaseRemoteConfiglibrary product previously listed only the Swift target. When explicit modules are enabled, consumers fail to resolve the internal clang module (FirebaseRemoteConfigInternal), producing errors such as:This forces workarounds like disabling
SWIFT_ENABLE_EXPLICIT_MODULESor manually declaring the internal clang module in Tuist'simportedClangModules.Solution
Include
FirebaseRemoteConfigInternalin theFirebaseRemoteConfiglibrary product:This mirrors the existing pattern used by the
FirebaseAIproduct, which bundles multiple targets in a single library product.Why this is the best option now
Package.swiftupdate with no public API changes.FirebaseRemoteConfigInternalas a standalone product, this does not encourage direct dependency on an internal module.FirebaseRemoteConfigproduct dependency graph.Testing
No new unit tests were added because this is a SwiftPM product packaging change with no runtime or API behavior changes.
API Changes
Changelog
FirebaseCore/CHANGELOG.mdunder Firebase 12.15.0.Made with Cursor