See which companies an iPhone app talks to
Network X-ray records an iPhone's traffic over USB and lists each app's domains by company and by ads, analytics or attribution. It stays on your Mac.
The command
mobster xray network --device "Test iPhone" --seconds 60Every app on your phone talks to servers you never chose. Some are the app’s own. Many belong to analytics, attribution and ad companies bundled into it. Network X-ray puts a number and a company name on each, for your own app before you ship it, or for any app you want to understand.
Run it
Plug the iPhone into your Mac, use the command above and open the apps you care about while it records. Or in Mobster for Mac, open Devices, press Network X-ray on the phone’s card, choose 30 s, 60 s or 2 min and press Record. The apps and the companies they talk to fill in as they appear.
The command first prints Recording <phone> over the cable for 60 s. Use the apps you want to look at. ctrl+c stops early. and then one line for each app that used the network. This is the shape of those lines, from the synthetic capture Mobster’s tests use, whose Flashlight Pro is a made-up app:
In 59 s Flashlight Pro contacted 14 domains at 10 companies; 6 of them are ads, analytics or attribution.In 59 s iOS contacted 1 domain at 1 company.Report: ~/ Library/ Application Support/ app.mobster.desktop/ xray/ network/ 20261015-225906/ report.htmlEach line counts the domains Mobster saw in that app’s traffic, groups them by the company that runs them and counts the ones on Mobster’s own list of ad, analytics and attribution services. That list is short. Mobster wrote it from the SDK vendors’ own documentation and from hostnames real recordings left unnamed. A domain on no list gets its own name as its company and no category.
What you get
| File | What it holds |
|---|---|
report.html | One page with no script that loads nothing from the web: a section per app, then every domain with its company, category, sizes and connections |
report.md | The same in Markdown |
netxray.json | The numbers: per app and per domain, the company, the category, bytes up and down, packets and connections |
In the Mac app the result also shows as a task with two tables, Who your apps talked to and Every domain. You can sort, filter and export them like any result. --app NAME reports one app only, and --from FILE.pcapng reads a capture you already have, with no phone and no plan.
How well it ties traffic to apps
Mobster matches each process in the capture to an app on your phone by its executable name. Parts of iOS itself, such as nsurlsessiond, are labelled iOS. On 15 Oct 2026, on an Apple M5 Max with an iPhone 15 Pro on its cable, two 90-second recordings of six and four apps measured:
| Measure | Value |
|---|---|
| Packets with a process name | 98.3% and 98.7% |
| Traffic Mobster couldn’t tie to an app | 1 and 2 connections |
mobster-pcap CPU time on the Mac | 0.58 to 0.63 s per 90 s |
mobster-pcap memory | 6.5 to 8.8 MB |
| Traffic recorded | 58 MB and 50 MB |
The capture travels over the cable, so it adds nothing to the phone’s own network traffic.
Where it stops
- It records one phone at a time, the one you name with
--device. - It needs a plan, like any task that uses your phone.
--fromdoesn’t. - Traffic it can’t tie to an app is never guessed. It goes to Unattributed, with its size and a sentence that says Mobster couldn’t tell.
- The network capture is not an agent or MCP tool, and an API token alone can’t start one. Only the Mac app’s own session can.
Questions
Does it need a jailbreak or a proxy?
No. It reads the packet capture that iOS offers over the USB cable. The report holds domains, companies, categories, sizes and connections.
Why does it need the cable?
iOS offers its packet capture service only over USB. Over Wi-Fi it refuses the service, which Mobster measured on an iPhone 15 Pro with iOS 26.0.1 on 15 Oct 2026. When the phone is on Wi-Fi only, Mobster says so in one sentence and asks you to plug it in.
Does the recording leave my Mac?
No. The capture, the report and the task stay on your Mac. Mobster makes no share link, sends nothing to a destination and leaves the task out of a feedback report.
What can't it see?
Names sent through encrypted DNS appear only when the connection itself names the server. iCloud Private Relay hides the real servers behind Apple's relay. Traffic it can't tie to an app is counted on a line called Unattributed, never guessed.
Can it record a simulator?
No. Only a real iPhone has the capture service, so Mobster refuses simulators.
Sources
Every fact about the other tool comes from its own site, docs or repository, read on 17 October 2026. Corrections are welcome at the GitHub repo.