Ask anything official about AppDefender.dev. I only answer from approved knowledge. I do not invent capabilities, and I do not enforce policy.
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 / RESTRICTReact 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.