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_stripOr pass --node explicitly to skip auto-discovery.
What it checks
Eager load sweep —
Code.ensure_loaded/1on every.beamunder<files_dir>/otp/. Catches "module X depends on stripped module Y" at load time.Harness exercise — runs
MobDev.OtpTrace.Harness.all/0on 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.