Documentation

Go to Portal Website

Code Obfuscation

Code obfuscation hardens protected mobile apps against static analysis, reverse engineering, repackaging, and targeted tampering. AppTego applies obfuscation during protected build creation, so teams can increase binary resistance without redesigning application source code.

Obfuscation is one layer in an app shielding program. Pair it with runtime detection, app integrity, certificate pinning, secure coding practices, and release monitoring.

Use obfuscation profiles deliberately. More aggressive hardening can improve resistance, but every change should be validated against startup, performance, crash reporting, reflection, native bridges, and third-party SDK behavior.

Protection Profiles

ProfileRecommended controlsBest for
Baseline Android hardeningStrip Debug Info, Rename Private Members, and Rename ClassesMost Team or Enterprise Android apps that need stronger resistance without heavy overhead.
Advanced Android hardeningBaseline plus Control Flow Obfuscation, Call Indirection, Instruction Substitution, Arithmetic Encoding, Dead Code Injection, and Anti-DisassemblyApps with valuable business logic, fraud controls, payments, licensing, or proprietary workflows.
Enterprise Android shieldingAdvanced hardening plus Encrypt Strings and Encrypt All CodeHigh-value Android apps where static analysis resistance is a release requirement.
iOS symbol and metadata hygieneStrip Debug Symbols, Strip Bitcode, Reduce Objective-C Metadata, and Reduce Swift Reflection MetadataiOS apps that need reduced metadata exposure in release artifacts.
Enterprise iOS string and selector hardeningEncrypt Strings, Encrypt Unicode Strings, and Objective-C Selector IndirectionHigh-value iOS apps where readable strings and selectors expose sensitive workflows.

Android Obfuscation Controls

ControlMinimum planPurpose
Strip Debug InfoTeamRemoves debug metadata from release artifacts.
Prevent All Debug LogsTeamRemoves common app-authored managed debug logging calls from protected Android builds.
Rename Private MembersTeamReduces meaningful private member names visible in decompiled output.
Rename ClassesTeamReduces meaningful class and package names visible in decompiled output.
Encrypt StringsEnterpriseProtects string literals from simple binary inspection.
Control Flow ObfuscationTeamMakes execution paths harder to reconstruct.
Call IndirectionTeamMakes call relationships harder to follow.
Instruction SubstitutionTeamReplaces recognizable instruction patterns with equivalent alternatives.
Arithmetic EncodingTeamMakes simple numeric and arithmetic patterns less direct to analyze.
Dead Code InjectionTeamAdds non-functional paths that slow automated analysis.
Anti-DisassemblyTeamAdds additional resistance against static disassembly.
Encrypt All CodeEnterpriseProvides the strongest Android static-analysis resistance profile.

iOS Obfuscation Controls

ControlMinimum planPurpose
Strip Debug SymbolsTeamRemoves symbol metadata that can assist analysis.
Strip BitcodeTeamRemoves legacy bitcode sections where present.
Reduce Objective-C MetadataTeamReduces readable Objective-C runtime metadata in protected builds.
Reduce Swift Reflection MetadataTeamLimits Swift type, field, and reflection metadata exposed to inspection.
Encrypt StringsEnterpriseProtects string literals from simple binary inspection.
Encrypt Unicode StringsEnterpriseProtects supported UTF-16 and wide-string content in iOS builds.
Objective-C Selector IndirectionEnterpriseMakes selected Objective-C selector references less useful during static analysis.

Enabling Obfuscation

  1. Open the AppTego Portal.
  2. Select the intended configuration version.
  3. Open Code Obfuscation.
  4. Enable the desired controls.
  5. Save the configuration.
  6. Build a new protected app.
  7. Run functional, performance, startup, crash reporting, and release-signing validation before promotion.

Rollout Guidance

StageRecommended approach
DevelopmentEnable one or two controls at a time and confirm the app starts, logs in, and completes core flows.
StagingTest the full intended obfuscation profile on physical devices, representative accounts, and production-like network conditions.
ProductionUse the validated profile and monitor crash, performance, startup, and security telemetry after release.
Incident responseKeep a known-good hardening profile documented so protected builds can be reproduced quickly.

Compatibility Notes

Validation Checklist

AreaWhat to test
StartupCold launch, warm launch, login, and first-run flows.
Critical featuresPayments, document capture, networking, offline mode, deep links, push notifications, and native bridges.
ObservabilityCrash reporting, logging, analytics, and support diagnostics.
PerformanceApp size, startup time, memory, and core workflow latency.
Release signingProtected output installs through the intended distribution path.