GPSLarpHelp

Another program on my Mac is using my iPhone

GPSLarp can see that an iPhone is attached, and then stops without being able to say anything more about it. The message names another program rather than a fault on the phone.

This is the one obstacle on the whole list that has nothing to do with your iPhone, your cable or your network. macOS lets exactly one program at a time hold the connection to an attached iPhone. Something else on this Mac already has it, so GPSLarp is not being refused by the phone — it is standing in a queue of one behind another application on your own desk.

01The message, word for word

GPSLarp writes every sentence about your phone in its own source, so this is the whole of it and it does not vary:

Another program on this Mac is already talking to your iPhone, so GPSLarp could not get a look at it. Xcode, Finder and Apple Configurator all hold this connection open, as does a second copy of GPSLarp.

Two things about where that sentence appears catch people out, and both are deliberate.

It lands on the trust row, and it is not a trust problem

GPSLarp works out whether your iPhone trusts this Mac by asking the phone a question only a trusted, unlocked phone will answer. When another program holds the connection, that question cannot be asked at all — so the answer is missing from the row about trust, and that is the row the message appears on. Your phone's trust setting has not been read, has not been changed, and is almost certainly fine. Nothing on My iPhone won't trust this computer applies until you have cleared this first.

The rows underneath say "Not checked", and they mean it

Everything below the point where GPSLarp stopped reports Not checked — an earlier step has to be sorted out first. That is one problem shown honestly, not five more. The app checks your phone in dependency order and stops at the first step it cannot get past, because a check that never ran is not a check that failed — and reporting it as one would send you to fix things that were never looked at.

02Why only one program at a time

An iPhone attached to a Mac speaks a protocol Apple built for its own developer tools. Part of that protocol is a session: a program opens one, the phone treats that program as the one it is talking to, and a second program asking for a session is told the first one is still there. This is the operating system behaving correctly. It is not a limit GPSLarp imposes and there is no setting that lifts it.

GPSLarp reaches the phone through exactly the same door as Apple's own tools do, which is the whole design — nothing is installed on the iPhone, and no jailbreak is involved. See What does GPSLarp actually change on my iPhone? for the rest of that. The cost of using the standard door is that everything else using it is a rival for it.

03What is likely to be holding it

The app names four because they are the four that come up. Work down the list — the order is roughly how often each one turns out to be the answer.

01A second copy of GPSLarp

The most common one, and the easiest to miss, because the second window may be behind the first or on another Space. Check for more than one GPSLarp icon in the Dock, or open the Force Quit window with Command-Option-Escape and look for two entries. Quit the extra one.

02Finder

Selecting your iPhone in a Finder window's sidebar opens the connection and keeps it open for as long as that view is showing. You do not have to be syncing anything. Click away from the phone in Finder, or close the window. Finder itself never needs to be quit.

03Xcode

Xcode holds the connection whenever a device is selected as a run destination, and it keeps holding it while the Devices and Simulators window is open. Closing that window is usually enough; quitting Xcode certainly is.

04Apple Configurator

Same behaviour, and worth checking even if you do not remember opening it — it is a common leftover from setting up a device. Quit it.

05Then ask GPSLarp to look again

GPSLarp re-checks your phone on request rather than watching in the background, so nothing happens by itself after you quit the other program. Ask it to check again, and read the row it stops on this time. Every check it runs at this stage happens without your administrator password and finishes in well under a second.