AppDefender.dev console is open for Client onboardinghello@appdefender.dev
Request access

Launch Security Gate

Offline Threat Defender

The app stays protected with no network. Launch never waits on an API call to decide whether the device is safe.

Mandatory on every launch

Offline Threat Defender is a first-class module inside the native Launch Security Gate. React Native UI is not trusted until the gate returns ALLOW, BLOCK, or RESTRICT.

APP LAUNCH
    │
    ▼
AppDefender.dev SDK
    │
Launch Security Gate
    │
    ├── NETWORK ON → Online engine (server + local policy + threat intelligence)
    └── NETWORK OFF → Offline engine (cached policy + local detection)
    │
    ▼
ALLOW / BLOCK / RESTRICT

React Native

Package: @appdefenderdev/sdk.react-native@1.0.5 via npm install or yarn add.

import AppDefender from '@appdefenderdev/sdk.react-native';

AppDefender.initialize({
  appId: 'CLIENT_APP_ID',
  environment: 'production',
  offlineThreatHandling: {
    enabled: true,
    failMode: 'BLOCK',
    useCachedPolicy: true,
    localDetection: true,
  },
  dependencyCallback: (event) => {},
});

const result = await AppDefender.launchSecurityCheck();
if (result.decision === 'BLOCK') return;
if (result.decision === 'RESTRICT') return;

Platform rules

  • Network availability never overrides a BLOCK decision.
  • A valid access token never overrides a BLOCK decision.
  • Client SDK keys (Firebase, payments, analytics) go through KeysDefender — not raw JavaScript.
  • Offline uses a signed, versioned policy cache. An unsafe crypto downgrade is rejected and the SHA-256 / AES-256-GCM baseline stays in force.