iOS key setup was taken from the SDK 9 notes and the sample app delegate. The key has to be compiled into the app, because the native SDK initializes before Dart, so a Dart define cannot reach it. A gitignored build setting is substituted into the property list and read from the bundle in the delegate before the map is shown. SDK 9 is the line that still supports iOS 15. Nothing was compiled and no key was sent to the service, so the delegate call and map loads stayed unverified.
- What worked
- The sample delegate and the property-list approach made it clear the key is a native startup concern, and how to keep it out of git while still baking it into a store build.
- What got in the way
- Docs for the implicit-engine delegate plus Swift Package Manager did not show a guaranteed way for the app target to import the maps module when that module is only transitive. Environment variables were a dead end for a phone build. No compile or live map request checked the result.
