Wardriving with an iPhone
Start with the disappointing part: there is no WiGLE app for iOS, and a stock iPhone cannot wardrive WiFi. That is not an oversight anyone can patch — Apple does not expose the radio. What an iPhone can do is run the rest of the rig, and this guide is about doing that well rather than chasing an app that does not exist.
Why not
An app on iOS can read the network you are connected to and, with a special entitlement, join one. It cannot ask "what access points can you hear right now?" — the scan API is private, and an app that used it would not pass review. WiGLE's own tooling is Android, Kismet and the desktop world; the project has never shipped an iOS scanner.
There was one, briefly. WiFi-Where reached the App Store in early 2010 and Apple pulled it within weeks; it lived on in the jailbreak world and then died there too. Anything on the App Store today that markets itself as a wardriving app is doing something else — showing your own connection, scanning Bluetooth, or reading a public database it did not collect. Judge such an app by whether it can produce a file with other people's BSSIDs and coordinates in it. Most cannot.
What actually works
The scanning has to happen on hardware that will let you scan. The iPhone then does everything else, and it is genuinely good at that.
1. An ESP32 rig with the iPhone as its uplink — best value
An ESP32 and a GPS module cost less than a takeaway, sit in the car window, and post observations to this site's live API while you drive. All the iPhone has to do is share its connection:
Settings → Personal Hotspot → on
Maximize Compatibility → on (the ESP32 is 2.4 GHz only)
Put that hotspot's name and password in the sketch, and networks appear on the map while you are still moving. Full build, wiring and code: build an ESP32 wardriving rig. Leave "Maximize Compatibility" off and the ESP32 will simply never see the hotspot, which is a confusing way to lose an afternoon.
2. A WiFi Pineapple, driven from Safari
A Pineapple or Pineapple Pager does its own scanning and has a web interface, so an iPhone on its management network is a perfectly good screen for it — start a recon scan, watch it, download the results, upload them here. See Hak5 WiFi Pineapple and Pager.
3. Kismet on a Pi or a laptop, phone as terminal
Kismet hears the most of any option here. On a Raspberry Pi with a USB adapter and a GPS puck it is a self-contained box: reach its web UI over the hotspot from Safari, or SSH in from a terminal app, and pull the netxml off at the end of the drive. See wardriving with Kismet.
4. Bluetooth, if you want the iPhone itself to collect something
iOS does expose Bluetooth LE scanning, so a BLE logger app plus a GPS track is the one thing an iPhone can genuinely collect on its own. It is not what this archive stores — we hold 802.11 access points — so treat it as a different hobby rather than a substitute.
Uploading from an iPhone
Whatever collected the data, the phone can file it. Save the export to iCloud
Drive or on-device Files (AirDrop from a laptop, download from the
Pineapple's web UI, or a Files app over SMB), then open
the uploader in Safari and choose
Browse in the file picker. Kismet netxml, WiGLE CSV and ESP32 JSON
are all read, gzipped or not, and the format is detected from the contents —
so it does not matter that iOS renamed something to .txt.
If your rig posts to the API instead, nothing needs uploading at all; a token from the API tokens page and the do it yourself via API guide covers that path.
Using the iPhone as the GPS
An iPhone's GNSS is better than most cheap modules, and a rig that trusts it saves you a part. Two ways round:
- Rig has its own GPS. Simplest and most reliable — every observation carries the fix that produced it, with no clock skew between two devices. This is what the ESP32 build does.
- Phone records a track, rig records networks. Log a GPX on the phone, then match timestamps afterwards. Honest warning: this site does not merge a GPX with a scan log for you, so you are writing that script yourself, and the result is only as good as the two clocks agreeing.
If you go the second way, give the rig some notion of time — the ingest API accepts unix seconds or milliseconds, and falls back to the server's clock when a record has no timestamp at all.
What to expect
- Stock iPhone alone
- No WiFi wardriving. Not a settings problem
- iPhone + ESP32
- Live map updates while driving, about the price of lunch
- iPhone + Pineapple / Pi
- The best data; more to carry and to configure
- Android phone
- Works on its own — WiGLE on Android
Plenty of people here drive with an iPhone in the mount and an ESP32 stuck to the windscreen. The phone was never the interesting part of the rig.
Found an iOS app that really does export other people's BSSIDs with coordinates? Post it in the forum — this page should be corrected if that ever changes.