Summary
Backlog/research item to revisit native CarPlay support for PokeRouter. For now we are intentionally shipping phone-only with handoff (Apple Maps / Google Maps / Tesla send-to-car). This issue captures the decision and the entitlement research so we don't have to re-derive it.
Current decision (2026-06-27)
Ship phone-only + handoff. No CarPlay entitlement requested. The in-car experience is:
- Tesla → P4 send-to-car (this is the real in-Tesla path; see below).
- Other cars → hand off the planned multi-stop route to Apple Maps or Google Maps.
The native CarPlay scene built in P5 (ios/PokeRouter/CarPlay/CarPlayController.swift) stays in the repo but dormant — it compiles and links without an entitlement, and only activates at runtime on a head unit if/when an entitlement is granted.
Key facts that drove the decision
-
Tesla does not support CarPlay at all. Tesla's in-car system never loads CarPlay apps. Our headline use case ("send this route to a Tesla") never depended on CarPlay — P4 already delivers it. CarPlay only ever mattered for non-Tesla cars.
-
Two relevant Apple entitlement tiers:
| Entitlement |
What it allows |
Review bar |
com.apple.developer.carplay-maps (Navigation) |
Full turn-by-turn, route line, own map on car screen |
Highest — reserved for real nav apps (Google Maps, Waze). A vending finder is very unlikely to be approved. |
Driving Task (com.apple.developer.carplay-driving-task) |
List / grid / POI-pin templates only. No map rendering, no turn-by-turn. |
Lower, but still reviewed. Meant for fuel/EV/parking/tolls/pickup. A Pokémon finder is novelty → plausible but not guaranteed. |
-
What a Driving Task scene could/couldn't do (if we ever pursue it):
- ✅ Show an already-planned trip's "stops along the way to Home" as a list / POI pins (list content is app-controlled — not limited to "nearby only").
- ✅ Offer preset destinations (Home / Work / favorites) tappable from the car → recompute corridor → show along-the-way stops.
- ❌ No free-text destination entry on the car (keyboard blocked while moving; search template is Navigation-only).
- ❌ No route polyline / turn-by-turn on the car screen (needs
carplay-maps).
- UX would be a split: phone = full planner (search, corridor tuning, map); CarPlay = companion view of a planned trip + presets; actual driving handed off to Apple Maps.
If/when we revisit — scope sketch
References
ios/README.md — entitlement playbook + honest gating caveat.
ios/PokeRouter/CarPlay/CarPlayController.swift — dormant CarPlay scene (P5).
- P4 Tesla send-to-car — the real in-Tesla path.
Summary
Backlog/research item to revisit native CarPlay support for PokeRouter. For now we are intentionally shipping phone-only with handoff (Apple Maps / Google Maps / Tesla send-to-car). This issue captures the decision and the entitlement research so we don't have to re-derive it.
Current decision (2026-06-27)
Ship phone-only + handoff. No CarPlay entitlement requested. The in-car experience is:
The native CarPlay scene built in P5 (
ios/PokeRouter/CarPlay/CarPlayController.swift) stays in the repo but dormant — it compiles and links without an entitlement, and only activates at runtime on a head unit if/when an entitlement is granted.Key facts that drove the decision
Tesla does not support CarPlay at all. Tesla's in-car system never loads CarPlay apps. Our headline use case ("send this route to a Tesla") never depended on CarPlay — P4 already delivers it. CarPlay only ever mattered for non-Tesla cars.
Two relevant Apple entitlement tiers:
com.apple.developer.carplay-maps(Navigation)com.apple.developer.carplay-driving-task)What a Driving Task scene could/couldn't do (if we ever pursue it):
carplay-maps).If/when we revisit — scope sketch
developer.apple.com/contact/carplay/), justifying the use case.CarPlayControllerfrom the current map-based scene into Driving Task templates (CPListTemplate/CPGridTemplate/CPPointOfInterestTemplate) — noCPMapTemplate.RouteStore.References
ios/README.md— entitlement playbook + honest gating caveat.ios/PokeRouter/CarPlay/CarPlayController.swift— dormant CarPlay scene (P5).