docs(mobile/4): document env-gated plugin feature bundles - #463
Open
shanerbaner82 wants to merge 1 commit into
Open
docs(mobile/4): document env-gated plugin feature bundles#463shanerbaner82 wants to merge 1 commit into
shanerbaner82 wants to merge 1 commit into
Conversation
A plugin wrapping a large SDK can now declare optional pieces of itself behind an environment variable, so apps compile in only what they ask for. Covers the manifest shape, merge semantics, why feature sources live outside resources/ios|android, sharing one SDK package across features, and the version caveat that an older core ignores the key silently. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
What
Documents the
featureskey innativephp.json, which lets a plugin declare optional pieces of itself behind an environment variable so apps compile in only what they enable.New page: Plugins → Feature Bundles (order 725, between Permissions & Dependencies and Advanced Configuration), plus a short cross-reference from
permissions-dependencies.mdso someone declaring a heavy SDK finds it.Why
A plugin wrapping a large SDK forces every app to pay for every capability.
nativephp/mobile-firebaseis the motivating case: push, Crashlytics, App Check, Performance, and In-App Messaging all in one plugin — an app that only wants push shouldn't link the crash reporter and attestation provider.What the page covers
dependenciesrecursesresources/features/<feature>/<platform>/rather than a subdirectory ofresources/ios: those roots are copied recursively, so a gated-off subdirectory would still compile in and reference SDK products that were never linked. This is the constraint a plugin author is most likely to get wrong first.PluginManifesttest that fails loudlyThis documents behavior from NativePHP/mobile-air#289, which is still open. Merging ahead of it would publish docs for a feature nobody has.
🤖 Generated with Claude Code