fix(instrumentation): Accept capitalized manifest booleans (GRADLE-124) - #1460
Merged
Merged
Conversation
aapt2 compiles True/TRUE and False/FALSE meta-data values to booleans, but build-time type inference only recognized lowercase true/false and injected the rest as Strings. The SDK then fell back to each option's default, so io.sentry.auto-init="False" was read as true and apps without a manifest DSN crashed on startup. Mixed case such as "tRuE" stays a String, matching aapt2. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
runningcode
marked this pull request as ready for review
September 29, 2026 14:51
runningcode
requested review from
0xadam-brown,
adinauer,
markushi and
romtsn
as code owners
September 29, 2026 14:51
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
Build-time manifest metadata now treats
True/TRUE/False/FALSEas booleans, the same as aapt2 does. Before, only lowercasetrue/falsecounted as booleans, so capitalized values were injected as Strings andManifestMetadataReader.readBoolsilently used each option's default instead.Why
Apps that disable auto-init with
io.sentry.auto-init="False"had it read astrue, soSentryInitProviderinitialized without a DSN and the app crashed on startup withDSN is required. Every Sentry Unity Android app hits this, because C# writes capitalized booleans. Regressed in #1405.Fixes GRADLE-124
Fixes #1454
Notes
Mixed case such as
tRuEintentionally stays a String. aapt2 doesn't compile it to a boolean either (checked with aapt2 from build-tools 37.0.0), so a case-insensitive check would differ from what the SDK reads without the plugin.🤖 Generated with Claude Code