Skip to content

Commit 27072c1

Browse files
authored
Merge pull request #29 from approov/fix/shadow-gradle9-compat
Fix/shadow gradle9 compat
2 parents 0cc4640 + aea71fb commit 27072c1

4 files changed

Lines changed: 7 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Changelog
22

3+
## [3.5.15] - 2026-07-01
4+
- **Gradle 9 Compatibility Fix**: Migrated the Android build from the unmaintained `com.github.johnrengelman.shadow` plugin 8.1.1 to the maintained fork `com.gradleup.shadow` 8.3.11. The old plugin fails on Gradle 9 with `MissingPropertyException: No such property: mode` (Gradle 9 removed `FileCopyDetails.mode`), halting the whole application build. The replacement uses the same `ShadowJar` task class and produces an identical shaded BouncyCastle jar; verified on Gradle 8.8, 8.10.2, and 9.0.0. Minimum supported Gradle remains 8.3 (React Native 0.76+ ships 8.10+), so no consumer action is required beyond updating the package.
5+
36
## [3.5.14] - 2026-05-06
47
- **SDK Call Guards**: Added `isApproovEnabled` guards to all public methods that call the native Approov SDK without first checking initialization state. On Android: `setDevKey`, `setInstallAttrsInToken`, `getMessageSignature`, `getAccountMessageSignature`, and `getInstallMessageSignature`. On iOS: `setDevKey`, `setInstallAttrsInToken`, `getMessageSignature`, and `getDeviceID`. These methods now safely reject the promise (or throw `ApproovException` for static helpers) instead of crashing when the service layer is uninitialized or running in bypass mode.
58
- **Android Request Mutation Logging**: Added an INFO-level `request mutation` log line to the Android OkHttp interceptor that confirms the `Approov-Token` and trace ID headers were actually injected onto the outgoing request. The log uses the same `missing`/`empty`/`present(len=N)` format as the iOS `task mutation` log, closing an observability gap where token fetch was logged but header injection was silent.

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ buildscript {
2727
}
2828

2929
plugins {
30-
id 'com.github.johnrengelman.shadow' version '8.1.1'
30+
id 'com.gradleup.shadow' version '8.3.11'
3131
}
3232

3333
def DEFAULT_COMPILE_SDK_VERSION = 34

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@approov/approov-service-react-native",
3-
"version": "3.5.14",
3+
"version": "3.5.15",
44
"publishConfig": {
55
"access": "public"
66
},

0 commit comments

Comments
 (0)