Setup Instructions

Select your exam app below for a step-by-step guide.

Pearson TestNav setup guide — regional ACT, state tests, etc.

Pearson TestNav

For exams delivered through Pearson TestNav. Uses the standard DynamicGPT download (the diag folder) with SIP off and AMFI on.

ACT note — regional vs national
ACT uses TestNav only for REGIONAL exams. The national ACT written on weekends is NOT covered here — that one is covered in the standard SIP / Injection mode instructions. Follow this TestNav tab only if your school/state is administering the ACT through TestNav on a weekday.
SIP off, AMFI on!
TestNav requires SIP OFF but AMFI ON. If you previously disabled AMFI for another app, you must re-enable it or TestNav will crash.
Requirements
  • • macOS Ventura 13.0+
  • • SIP disabled (required)
  • • AMFI enabled — keep ON
  • • DynamicGPT app open & logged in
  • • TestNav installed from Pearson
Time estimate
  • 5 min — Apple Developer cert (if Xcode already installed)
  • 30–60 min — Xcode install + first run (if not)
  • 5 min — Disable SIP only (AMFI stays on)
  • 5 min — DynamicGPT install + Library Validation toggle
  • 5 min — Download & install TestNav

Total: ~20 min on a warm machine, up to ~85 min if Xcode needs downloading.

One-Time Setup

Step 0: Get an Apple Development Certificate

Required
Do this before installing DynamicGPT
DynamicGPT's installer needs to sign the app with your Apple Development certificate. Without it, macOS will refuse to run the app. This only takes 5–10 minutes and you only need to do it once.
1

Update macOS to the latest version

Go to System Settings → General → Software Update and install any available updates. Restart your Mac if prompted.

Why? Xcode requires a recent macOS version. Updating now prevents compatibility issues.
2

Install Xcode

Open the App Store, search for Xcode, and click Get. Enter your Apple ID password and wait for it to download and install (it's large — may take a while).

Can't find Xcode? If Xcode isn't available for your macOS version, download it directly from xcodereleases.com — pick the latest version compatible with your macOS.
3

Open Xcode and accept the license

Launch Xcode. It will ask you to agree to the license agreement and may install additional components — click Agree and Install for everything it asks. Wait until you see the Xcode welcome screen.

4

Create a new project

On the welcome screen, click Create New Project. At the top of the template picker, select the macOS tab, then choose App and click Next.

  • Product Name: Anything — e.g. TestApp
  • Team: If it says "None", click Add an Account, sign in with your Apple ID, then select your Personal Team.
  • Organization Identifier: Anything — e.g. com.test
  • Everything else: Leave as default.

Click Next, choose any save location (Desktop is fine), and click Create.

5

Set up signing

In the left sidebar, click the top-level project name (the blue icon). Then click Signing & Capabilities in the center panel. Make sure your Personal Team is selected under Team.

6

Build and run

Click the ▶ Play button in the top-left toolbar. Xcode will compile the app and a "Hello, world!" window will appear. Once you see this window, you're done.

Certificate created!
By building this project, macOS generated your Apple Development certificate. DynamicGPT's installer will now be able to sign the app for you.
7

Close Xcode (optional: delete it)

Close the Hello World window and quit Xcode. You can delete Xcode from your Applications folder if you want to free up space — the certificate stays on your Mac permanently.

Which Mac Do I Have?

Required
1

Open About This Mac

Click the Apple logo in the top-left corner of your screen, then click About This Mac.

2

Identify Your Chip

Apple Silicon

If you see "Chip: Apple M1/M2/M3/M4" — you have an Apple Silicon Mac. This requires two reboots for setup.

Intel

If you see "Processor: Intel Core i5/i7/i9" — you have an Intel Mac. Everything can be done in one reboot.

Pick your Mac — commands swap based on this

Not sure? Apple menu → About This Mac. "Chip: Apple M…" = Silicon. "Processor: Intel…" = Intel.

Disable SIP only (keep AMFI on)

SIP off, AMFI ON
This method needs AMFI ON — only SIP gets disabled
OnVue's BrowserLock and TestNav are both Java-based and will crash if AMFI is disabled. Only disable SIP, not AMFI. If you ran another method's AMFI-disable command in the past, the verification step below will tell you how to re-enable it.
1

Shut down completely

Apple menu → Shut Down. Wait until the screen is fully black with no lights — don't just close the lid.

2

Boot into Recovery Mode (Intel)

Press the power button to turn the Mac on, and immediately hold ⌘ + R until you see the Apple logo and a progress bar. Release. Choose your user and enter your password if prompted.

3

Open Terminal in Recovery

In the menu bar at the top, click Utilities → Terminal.

4

Disable SIP

csrutil disable

You should see: "Successfully disabled System Integrity Protection."

5

Reboot back to macOS

reboot

Wait for your Mac to restart and log in normally. AMFI is untouched. Continue to the verification step.

Verify Everything Worked

Required
TestNav verification — read carefully
TestNav (and OnVue) are the opposite of every other DynamicGPT method on AMFI. You want SIP disabled and AMFI enabled (the default). The two checks below should give you opposite-looking outputs to the SIP / Examplify / SEB tabs — that is correct.
Check 1 — SIP must be DISABLED
csrutil status

Expected: "System Integrity Protection status: disabled."

Check 2 — AMFI must be ENABLED (no boot-args set)
nvram -p | grep amfi

Expected: nothing prints. (No boot-args amfi_get_out_of_my_way=1 line.) Empty output means AMFI is on, which is what TestNav needs.

SIP disabled + AMFI line empty?
Your Mac is ready for TestNav. Continue to the next step below.
If `nvram -p | grep amfi` printed something
You previously disabled AMFI for another DynamicGPT method. Re-enable it now:
sudo nvram boot-args=""

Then reboot:

sudo reboot

After reboot, re-run nvram -p | grep amfi — it should now return nothing.

Install DynamicGPT

One Time
Folder must be on your Desktop
Not in Downloads. The folder must be named exactly diag.
Heads-up: the app has a different name
DynamicGPT installs under a neutral name so it blends in during exams. You'll see a folder called diag on your Desktop, and after installing you'll see an app called DiagnosticReporter in your Applications. Both are DynamicGPT.
1

Download the main DynamicGPT zip

Go to your dashboard and click the main download button. Unzip the file — you'll get a folder called diag. Drag it onto your Desktop.

2

Unquarantine the folder

Open the diag folder and open copy.txt. Select all (⌘ + A) and copy (⌘ + C).

Open Terminal (⌘ + Space → type "Terminal" → Return). Type cd (with a space after), then drag and drop the diag folder into the Terminal window — it autofills the path. Press Return.

Now paste (⌘ + V) and press Return. This removes macOS quarantine flags and makes the installer executable.

What copy.txt contains
xattr -cr . && chmod +x Install.command Uninstall.command
3

Double-click Install.command

Open the diag folder and double-click Install.command.

If macOS blocks it
Right-click Install.commandOpenOpen again. You only need to do this once.

A password box pops up — type your normal Mac login password and press Return. You won't see characters as you type — that's normal. Wait for "INSTALLATION COMPLETE", then close the Terminal window.

4

Allow DynamicGPT to run inside TestNav (one-time setting)

TestNav is a locked-down Java app. The command below tells your Mac to let DynamicGPT run inside it. Only needs to be done once — it stays set even after you reboot. Open Terminal and paste this:

sudo defaults write /Library/Preferences/com.apple.security.libraryvalidation.plist DisableLibraryValidation -bool true

Enter your Mac password when asked and press Return.

What this does (and how to undo it later)
This is a system-wide setting that disables library validation for all apps until you reset it. Required because TestNav is Java-based and won't launch with library validation on while AMFI stays on. To re-enable later (e.g. after you stop using TestNav):
sudo defaults delete /Library/Preferences/com.apple.security.libraryvalidation.plist DisableLibraryValidation

Install TestNav

One Time
1

Download TestNav from Pearson

Go to download.testnav.com and download the macOS version of TestNav. Install it to your Applications folder.

2

Remove quarantine

xattr -cr /Applications/TestNav.app

Before Each Exam

Right before your exam

1

Open DynamicGPT and log in

Open DiagnosticReporter from your Applications → Utilities folder (or Spotlight) and log in. Keep it running — do not quit it.

2

Grant permissions (if first time or after update)

Go to System Settings → Privacy & Security. Grant Accessibility and Screen & System Audio Recording to DiagnosticReporter.

3

Arm via Quick Arm

In the DynamicGPT app, open Quick Arm and select TestNav. Tap Arm. Quick Arm checks that SIP is off and AMFI is on before arming.

No Terminal needed!
All arming and disarming is done through the app.
4

Launch TestNav

Open TestNav from Applications. It may take a minute to load. Run the App Check to verify — both Kiosk Mode and Connectivity should show green checkmarks.

5

Triple-click the notch to open DynamicGPT

Same as always — triple-click the top-centre of your screen to open the DynamicGPT overlay.

After Each Exam

ALWAYS disarm after your exam

This cleans up environment variables and restores normal system behaviour.

1

Disarm via the app

Open Quick Arm in the DynamicGPT app and tap Disarm.

2

Restart your Mac (recommended)

Apple menu → Restart. Ensures everything is fully cleaned up.

Troubleshooting

TestNav takes a long time to load

This is normal. TestNav runs under Rosetta (x86_64 emulation) and loads a full Java runtime + Chromium browser. It can take 1–3 minutes on first launch.

Kiosk Mode Failed in App Check

Make sure you selected TestNav in Quick Arm. Disarm, quit TestNav, re-arm, and relaunch.

Quick Arm says SIP is still on

SIP is still ON. Disable SIP (see above) and reboot.

TestNav crashes on launch

Make sure AMFI is ON. Quick Arm checks this automatically. If AMFI is off from another method, re-enable it:

sudo nvram boot-args=""

Then reboot and try again.

DynamicGPT doesn't appear after triple-click

Quick Arm should show "Armed" status. If not, re-arm. Make sure you armed before launching TestNav.

Malware warning / "move to trash"

Run xattr -cr ~/Desktop/diag/ and re-run ./Install.command inside ~/Desktop/diag.

App hangs or beachballs after a reboot

macOS sometimes revokes permissions after a reboot. Go to System Settings → Privacy & Security → Accessibility and make sure DiagnosticReporter.app is toggled ON. Do the same for Screen & System Audio Recording.

Fix Problems, Reset, or Uninstall

Your diag folder on your Desktop has two scripts you can double-click any time you need them:

Install.command — Fix or Reset

Double-click this when something goes wrong. It cleans up leftover state and reinstalls DynamicGPT fresh. Safe to run multiple times.

When to run it:
  • App is stuck, frozen, or won't open
  • You want to restart fresh for safety before an exam
  • You updated to a new version
  • Anything acting weird — when in doubt, run it

How: Quit the app (⌘ + Q), open ~/Desktop/diag, double-click Install.command, enter your Mac password when asked. Done.

Uninstall.command — Remove DynamicGPT

Double-click this when you want DynamicGPT gone from your Mac. It moves the app out of your Applications folder, clears saved logins, and puts everything back in the diag folder so you could reinstall later if you change your mind.

  1. Quit the app (⌘ + Q).
  2. Open ~/Desktop/diag.
  3. Double-click Uninstall.command.
  4. Enter your Mac password when asked.
  5. For full removal: drag the entire diag folder to the Trash and empty it.

If you skip step 5, you can double-click Install.command later to put DynamicGPT back without re-downloading anything.

Script won't open?
If macOS says "Install.command can't be opened because it is from an unidentified developer" — right-click the file and choose Open, then click Open again. Or go to System Settings → Privacy & Security, scroll down, and click "Open Anyway".

How to Update DynamicGPT

1

Uninstall the current version

Quit the app (⌘ + Q), then open ~/Desktop/diag and double-click Uninstall.command. Enter your Mac password when asked.

2

Delete the old folder

Drag the diag folder to Trash, then empty Trash (right-click the Trash icon → Empty Trash).

3

Download the latest version

Go to your dashboard and download the newest zip. Unzip it — you'll get a fresh diag folder. Drag it onto your Desktop.

4

Run Install.command

Double-click Install.command inside the folder, enter your Mac password, wait for "INSTALLATION COMPLETE". Then open the app and log in again.

Help! My Mac Crashed / Froze

Don't panic — this is easy to fix
If your Mac is frozen, unresponsive, or has a black screen, just do a force restart. This is completely safe and will not harm your Mac or data.
1

Force restart

Hold the power button until the screen goes completely black (about 5–10 seconds). Then let go.

2

Wait 10 seconds

Give it a moment. Don't press anything yet.

3

Turn it back on

Press the power button once normally. Your Mac will boot up and you should be good to go.

Re-enable Security After Exams

Keep your Mac protected
With SIP disabled, your Mac is more vulnerable. Re-enable SIP when you don't need DynamicGPT for a while. (You never disabled AMFI for this method, so AMFI is already on.)
1

Re-enable SIP in Recovery Mode (Intel)

Shut down → power on while holding ⌘ + R → release at the Apple logo → Utilities → Terminal:

csrutil enable
reboot
2

Verify protection is back on

csrutil status

Should say: "System Integrity Protection status: enabled."

Quick Reference

ARM
Quick Arm → TestNav → Arm
DISARM
Quick Arm → Disarm
FOLDER
~/Desktop/diag
  • Arm and disarm through the app — no Terminal commands needed
  • Uses the standard DynamicGPT download (diag folder) — no special download needed
  • SIP OFF, AMFI ON — Quick Arm checks this automatically
  • If AMFI is off from another method, re-enable it with: sudo nvram boot-args=""
  • Arm BEFORE launching TestNav
  • ALWAYS disarm after your exam

Still stuck? Contact support@dynamicgpt.app or join our Discord.