Allegro Aug 1, 2016

The iOS Bug Chase

Article Summary

An Allegro engineer spent weeks hunting a MapKit bug so elusive it disappeared and reappeared randomly across devices. The investigation went from Swift code to assembly to a conversation in San Francisco.

This deep dive from Allegro's iOS team chronicles the hunt for a mysterious MapKit bug that prevented users from selecting parcel machines for delivery. What started as a single QA report turned into a multi-layer investigation spanning network analysis, framework decompilation, and private API exploration.

Key Takeaways

Critical Insight

A systematic debugging approach using network interception and framework decompilation helped identify and report a 4-year-old iOS bug that Apple fixed in the next release.

The engineer's WWDC lab visit revealed something surprising about how many Apple engineers had been commenting on the bug report behind the scenes.

About This Article

Problem

Allegro's iOS app had intermittent MapKit failures where map tiles wouldn't load on multiple devices. This affected tens of thousands of daily active users who couldn't select parcel machines during checkout.

Solution

Kamil Borzym intercepted network traffic with mitmproxy and found HTTP 410 responses. He then decompiled GeoServices.framework using Hopper to find the GEOResourceManifestManager class, which handled manifest version management.

Impact

The bug report (rdar://25267344) led to Apple fixing a 4-year-old geo_manifest bug in iOS 10 beta 1. This fixed map functionality across iOS without requiring workarounds in individual apps.

Recent from Allegro

Related Articles