v0.1.5 — settings.gradle repo support + exact iOS SDK pin (competitor-audit hardening) - #15
Merged
Merged
Conversation
Surfaced by auditing the 5 competing RN MyID wrappers for latent issues. - Config plugin: on modern Gradle/AGP templates that centralize repositories in settings.gradle `dependencyResolutionManagement`, inject the MyID Maven repo there and SKIP the root `allprojects` injection (which FAIL_ON_PROJECT_REPOS rejects and would fail the build). Older templates keep the allprojects path unchanged. When neither location exists, emit a prebuild warning instead of silently shipping a build that can't resolve the SDK. New pure helpers (addMavenToSettingsGradle, settingsHasDependencyRepositories) are unit-tested. - iOS: pin MyIdSDK to exact `3.1.3` (was `~> 3.1.3`) so an untested MyID SDK patch can't float into a build — matching the exact Android pin and the library's "never floated" guarantee. (iOS 3.1.3 vs Android 3.1.9 differ by design: MyID versions the two platform SDKs independently.) - Sync the stale podspec/gradle module versions (0.1.0 -> 0.1.5). - Docs: README EN/RU/UZ updated for both changes + troubleshooting row.
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.
Hardening surfaced by auditing the 5 competing RN MyID wrappers' published source. None had filed GitHub issues (0–3★ projects), so the scan read their code for latent bugs, then verified each pattern against ours — 12 of 22 patterns were already handled correctly here. These are the 2 that genuinely applied.
Fixed
build.gradleallprojectsblock — whichrepositoriesMode = FAIL_ON_PROJECT_REPOSrejects (build failure), and which is a silent no-op onsettings.gradle-only templates. Now: inject intosettings.gradledependencyResolutionManagement.repositorieswhen that block exists (and skip theallprojectsinjection so it can't tripFAIL_ON_PROJECT_REPOS); keep theallprojectspath for older templates; warn at prebuild instead of silently shipping an unresolvable build when neither exists. New pure helpers are unit-tested (5 new tests).MyIdSDKpinned to exact3.1.3(was~> 3.1.3), so an untested MyID patch can't float into a build — matching the exact Android pin and the library's "never floated" guarantee. (iOS3.1.3vs Android3.1.9differ by design — MyID versions the two platform SDKs independently.)0.1.0→0.1.5).Considered and declined (reported to maintainer)
permission); our own preflight risks UX conflict and needs on-device validation.Verification
Local: lint · typecheck · build · plugin build · 37/37 tests (5 new) green; README EN/RU/UZ hold 429-line parity; all version fields consistent at 0.1.5. CI's iOS (
pod installresolves exact3.1.3) and Android (prebuild+assembleDebug, default template → unchangedallprojectspath) gates validate the native side.