Skip to main content
By default, QA Wolf runs iOS tests on real, physical devices shared across customers, resigning your app during installation so it can install unreleased builds without a per-app provisioning profile. Two situations need different device access instead:
  • A feature can’t be tested on a resigned app — push notifications and universal links (associated domains) depend on capabilities tied to a provisioning profile for your app’s bundle ID, which only you can produce. Sign the app yourself for QA Wolf’s devices instead — these are allowlisted devices.
  • A test needs full device control, or data/configuration to persist across runs — for example, MDM (Mobile Device Management) testing. QA Wolf can dedicate devices to your team — these are private devices.
Contact your QA Wolf representative to enable allowlisted or private devices for your team.

Shared vs. allowlisted vs. private

Private devices can do anything allowlisted devices can. You can share the UDIDs of private devices and skip resigning when that’s needed for your tests.

Allowlisted devices

Sign the app for QA Wolf’s devices

1
QA Wolf shares a set of device UDIDs with you. Add these devices to the provisioning profile for your app’s bundle ID.
2
Build and sign the app for those devices using that profile.

Include QA Wolf instrumentation

When QA Wolf resigns an app, it injects an instrumentation library that lets your tests mock system behavior. When you sign the app yourself, include this library so mocking still works.
After injecting the instrumentation library, resign the IPA. Fastlane users can use the Fastlane resign action; otherwise resign the IPA with whatever your pipeline already uses.

Target allowlisted devices

Set targetDevices to Allowlisted Device in your workflow’s target configuration so the run is scheduled on the devices you signed the app for. deviceModel and iosVersion depend on the devices QA Wolf allocated for your team.

Disable resigning

Because you signed the app yourself, disable QA Wolf’s resigning when the app launches by setting the qawolf:disableResigning capability:

Private devices

Set targetDevices to Team Dedicated Device in your workflow’s target configuration so the run is scheduled on your team’s devices. deviceModel and iosVersion depend on the devices QA Wolf allocated for your team.
Last modified on September 10, 2026