Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.signalrooms.xyz/llms.txt

Use this file to discover all available pages before exploring further.

Trust and runner setup

Status: Current setup reference. This page picks up after iPhone settings; confirm every box on that page first. Warmr drives the iPhone through an on-device test runner bundle signed with your own Apple Developer account. There are two install paths, pick one:
PathWhen to pickRe-sign cadence
App Store Connect API (recommended)You have a paid Apple Developer account.Annual.
Xcode + free Apple IDYou don’t want to pay $99/year.Every 7 days.
The recommended path takes about two minutes once you have the API key.

Path A: App Store Connect API

Use this when you have a paid Apple Developer account and an App Manager (or higher) role on it. Developer-role keys cannot create signing profiles and will be rejected.

1. Generate a Team Key in App Store Connect

  1. Open appstoreconnect.apple.com/access/integrations/api.
  2. Switch to the Team Keys tab: not Individual Keys. Individual keys cannot create signing profiles.
  3. Click Generate API Key. Pick role = App Manager (or higher).
  4. Apple shows the Issuer ID and Key ID, and lets you download the .p8 file. Save it now: Apple only lets you download the .p8 once.
Required: Team Key (not Individual), App Manager role or higher, .p8 saved at first download.

2. Enter the key in Warmr

  1. Open Warmr’s Devices page.
  2. Expand the App Store Connect API section.
  3. Fill in Key ID, Issuer ID, and drop the .p8 into the upload area.
  4. Click Test connection & save.
The Team ID is auto-detected from your account. If your team is brand new with no registered identifiers yet, the wizard asks for the Team ID manually, it’s the 10-character string in the top-right corner at developer.apple.com/account.

3. Sign and install

Once the key is saved, the Install and Reinstall buttons on the Devices page activate per device. Click Install. Warmr signs the runner bundle via JWT through the API and installs it. Existing UDIDs registered through any other path keep working; Apple uses one registry behind all signing flows.

Is this safe?

Yes, the App Store Connect API is Apple’s official way to authenticate with a developer account. The flow uses short-lived JWT tokens signed locally with your .p8. The key never leaves your Mac, no Apple ID password is stored, and your account’s 2FA is left untouched. Warmr operates strictly inside the development sandbox of your team:
  • Only Development certificates and provisioning profiles are created, the same kind Xcode would generate when you run a project on a connected iPhone.
  • Production / App Store / Distribution certificates are not touched. Apps you ship to the App Store, TestFlight builds, and any in-house Distribution profiles are completely independent.
  • Permissions on the API key are limited to installing on registered devices. Revoking the key in App Store Connect immediately cuts off Warmr’s access.
In short: this only affects test installs on the iPhones you’ve registered for development.

Path B: Xcode (free Apple ID)

Use this when you don’t have a paid developer account. The runner’s signature is valid for 7 days with a free Apple ID; you’ll re-install once a week.
  1. On Warmr’s Devices page, click Sign via Xcode ManuallyDownload Xcode Project.
  2. Extract the downloaded ZIP.
  3. Open the .xcodeproj file in Xcode.
  4. In Xcode, open Settings → Accounts (⌘,) and add your Apple ID.
  5. Select the runner target → Signing & Capabilities → choose your Team.
  6. Repeat for the UITests target.
  7. Connect the iPhone and select it as the destination in the top bar.
  8. Product → Build For → Testing (⌘⇧U).
With a free Apple ID the signature lasts 7 days. With a paid account, it lasts a year, at which point Path A is faster anyway.

Trust the developer profile

Regardless of which install path you used, after the first install on a given iPhone:
  1. On the iPhone, open Settings.
  2. Go to General → VPN & Device Management.
  3. Find the developer profile (it lists your Apple ID or Team ID).
  4. Tap Trust.
  5. Confirm.
After this, the runner launches automatically whenever Warmr needs it, no need to open it manually.

Verify the runner is installed

warmrctl --json devices list | jq '.[] | {udid, displayName, rodmanInstalledVersion, isConnected}'
Each iPhone should show a non-null rodmanInstalledVersion and isConnected: true. If rodmanInstalledVersion is missing or stale, re-run Install from Warmr’s Devices page.

Troubleshooting

MessageWhat to do
"This key is Individual"Key was created on the Individual Keys tab. Recreate it as a Team Key.
"Regenerate as App Manager →"Role on the key is too low. Reissue with App Manager or higher.
"Open Apple Developer Portal →" (cert quota 2/2)Team has hit the certificate quota. Open the developer portal, find your own orphan certificate (CREATED BY = your name), revoke it, and retry. Do not touch other team members’ certificates.
"Waiting for the first device's certificate to register with Apple…"Expected on fleets of 5+ during the first parallel install. Devices 2..N wait for the first device to finish registering. No action needed.
"Authentication Error. Xcode 7.3 or later is required (resultCode 3019)"Legacy Apple-ID install path hit Apple’s deprecation. Switch to Path A above.
Runner installs but iPhone says “Untrusted Developer” on launchThe trust step at the bottom of this page hasn’t been done. Do it.

”Runner installed correctly” checklist

  • Key generated on the Team Keys tab (Path A) or Xcode build completed without errors (Path B).
  • Role on the key is App Manager or higher (Path A).
  • .p8 saved at first download (Path A; it can’t be re-downloaded later).
  • Warmr’s Test connection & save succeeded.
  • Developer profile trusted on each iPhone in Settings → General → VPN & Device Management.
  • warmrctl --json devices list shows non-null rodmanInstalledVersion for each lane.