Skip to content

v2.2.0

Choose a tag to compare

@vietnguyentuan2019 vietnguyentuan2019 released this 08 Jun 03:33
9e23f34

Grant v2.2.0

Resolves #45 — Apple's App Store static scanner no longer demands NSBluetoothAlwaysUsageDescription / NSLocationAlwaysAndWhenInUseUsageDescription for apps that don't use those capabilities.

New opt-in modules (iOS framework / selector isolation)

  • dev.brewkits:grant-bluetooth — isolates CoreBluetooth.framework. Apps that don't use Bluetooth no longer link it.
  • dev.brewkits:grant-location-always — isolates the requestAlwaysAuthorization (background location) path. grant-core now calls only requestWhenInUseAuthorization; foreground-only apps are no longer flagged for the always-location key.

This extends the v2.1.0 pattern (Contacts/Calendar/Motion). An obfuscation workaround was explicitly rejected as App Store Review Guideline 2.3.1 circumvention — module isolation is the sanctioned fix.

Other

  • Maven bundle script is now module-array driven with per-module coverage checks.
  • CI builds/tests/lints/covers the two new modules; release attaches all eight module JARs.
  • Full test suites (unit/integration/system/performance/stress/security/regression + native iosTest deadlock guards) for both new modules.
  • Verified on real Pixel 6 Pro, iPhone 16 simulator, and iPhone 6s Plus.

Upgrading

Add the new modules only if you need them:

implementation("dev.brewkits:grant-bluetooth:2.2.0")        // optional
implementation("dev.brewkits:grant-location-always:2.2.0")  // optional