# `mix mob.verify_strip`
[🔗](https://github.com/genericjam/mob_dev/blob/main/lib/mix/tasks/mob.verify_strip.ex#L1)

Boot-safety verification for stripped Mob app builds.

After deploying a slim build (where `mix mob.release` has dropped OTP
libs to shrink the IPA), this task connects to the running app's BEAM
and asks it to force-load every `.beam` shipped in the bundle. Any
module that fails to load — typically because a stripped lib was
needed by a transitive dep — shows up here.

## Usage

    # First connect to the device (sets up tunnels + verifies node):
    mix mob.connect --no-iex

    # Then run the verifier:
    mix mob.verify_strip

Or pass `--node` explicitly to skip auto-discovery.

## What it checks

  1. **Eager load sweep** — `Code.ensure_loaded/1` on every `.beam`
     under `<files_dir>/otp/`. Catches "module X depends on stripped
     module Y" at load time.

  2. **Harness exercise** — runs `MobDev.OtpTrace.Harness.all/0` on
     the device and reports any exception. Catches issues with the
     common Elixir surface even if individual modules loaded fine.

## What it does NOT check

App-specific code paths. If your app calls `:public_key.something`
when the user opens a particular screen, this verifier won't find it
unless the screen is opened. Run your own integration tests for that.

## Output

Plain mode prints a summary + per-failure detail. Exit code is 0 if
everything loaded + harness passed, 1 otherwise.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
