Search: FlightAware backbone, blob catalog, diagnostic infra
route-explorer's /api/token sits behind invisible Cloudflare Turnstile
that requires Apple's Private Access Token attestation. Third-party
iOS apps don't qualify for PAT issuance, and Linux Docker containers
can't pass it either (cross-OS fingerprint, even with patchright /
Camoufox). Migrates direct-flight search to FlightAware; multi-stop
and where-can-I-go remain via embedded SFSafariViewController.
- FlightAwareScheduleClient — scrapes route.rvt + trackpoll JSON for
real schedules without auth. T+0..2 day window. Tests against
captured HTML fixtures.
- BlobRouteClient — pulls the public Vercel blob route catalog
route-explorer's frontend reads (no auth, no Turnstile).
- DiagnosticLogger + LoggingURLSessionDelegate + DiagnosticsView —
device-shareable forensic trace. Boot header captures device, OS,
locale, UA; share-sheet export of session logs.
- TurnstileDebugView — live WKWebView gate inspector. Used to prove
the PAT-entitlement gap on a real device.
- RouteExplorerBrowserView — SFSafariViewController wrapper. Real
Safari clears Turnstile naturally; the in-app browser opens at
pre-filled search URLs. Surfaced from Search ("Open in
route-explorer") and Settings → Tools.
- RouteExplorerTokenStore + RouteExplorerSetupView — bookmarklet
capture flow (token round-tripped via flights://routeexplorer-token
URL scheme). Kept dormant for future use.
backend/ — Docker proxy attempts (Playwright, patchright, Camoufox).
All fail on Linux because Cloudflare auto-denies before the Turnstile
widget renders. Documented; kept as scaffolding for a future paid-
solver integration.
scripts/probe_flightaware.py — reference algorithm for the FA path.
scripts/probe_nodriver.py — local-Mac sanity check confirming the
gate clears with real macOS Chrome (proves the blocker is
fingerprint-level, not network-level).
This commit is contained in:
@@ -40,12 +40,23 @@
|
||||
BB2200002222000022220001 /* JSXWebViewFetcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2200002222000022220002 /* JSXWebViewFetcher.swift */; };
|
||||
RE1100001111000011110001 /* RouteExplorerModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = RE1100001111000011110002 /* RouteExplorerModels.swift */; };
|
||||
RE2200002222000022220001 /* RouteExplorerClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = RE2200002222000022220002 /* RouteExplorerClient.swift */; };
|
||||
FA9911119911119911119911 /* FlightAwareScheduleClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA9911119911119911119922 /* FlightAwareScheduleClient.swift */; };
|
||||
BL0011110011110011110011 /* BlobRouteClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = BL0011110011110011110022 /* BlobRouteClient.swift */; };
|
||||
TS0011110011110011110011 /* TurnstileDebugView.swift in Sources */ = {isa = PBXBuildFile; fileRef = TS0011110011110011110022 /* TurnstileDebugView.swift */; };
|
||||
DL0011110011110011110011 /* DiagnosticLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = DL0011110011110011110022 /* DiagnosticLogger.swift */; };
|
||||
LD0011110011110011110011 /* LoggingURLSessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = LD0011110011110011110022 /* LoggingURLSessionDelegate.swift */; };
|
||||
DV0011110011110011110011 /* DiagnosticsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DV0011110011110011110022 /* DiagnosticsView.swift */; };
|
||||
RT0011110011110011110011 /* RouteExplorerTokenStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = RT0011110011110011110022 /* RouteExplorerTokenStore.swift */; };
|
||||
RS0011110011110011110011 /* RouteExplorerSetupView.swift in Sources */ = {isa = PBXBuildFile; fileRef = RS0011110011110011110022 /* RouteExplorerSetupView.swift */; };
|
||||
RB0011110011110011110011 /* RouteExplorerBrowserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = RB0011110011110011110022 /* RouteExplorerBrowserView.swift */; };
|
||||
RE3300003333000033330001 /* RoutePlannerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = RE3300003333000033330002 /* RoutePlannerView.swift */; };
|
||||
REGT00000000000000000001 /* RouteExplorerGateSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = REGT00000000000000000002 /* RouteExplorerGateSheet.swift */; };
|
||||
RE5500005555000055550001 /* IATAAirportPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = RE5500005555000055550002 /* IATAAirportPicker.swift */; };
|
||||
RE6600006666000066660001 /* ConnectionRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = RE6600006666000066660002 /* ConnectionRow.swift */; };
|
||||
RE7700007777000077770001 /* ConnectionLoadDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = RE7700007777000077770002 /* ConnectionLoadDetailView.swift */; };
|
||||
RE8800008888000088880001 /* SearchRoute.swift in Sources */ = {isa = PBXBuildFile; fileRef = RE8800008888000088880002 /* SearchRoute.swift */; };
|
||||
T1000000000000000000001A /* AirlineLoadIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = T1000000000000000000001B /* AirlineLoadIntegrationTests.swift */; };
|
||||
FATEST00FATEST00FATEST01 /* FlightAwareScheduleClientTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FATEST00FATEST00FATEST02 /* FlightAwareScheduleClientTests.swift */; };
|
||||
LV1100001111000011110001 /* LiveAircraft.swift in Sources */ = {isa = PBXBuildFile; fileRef = LV1100001111000011110002 /* LiveAircraft.swift */; };
|
||||
LV2200002222000022220001 /* OpenSkyClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = LV2200002222000022220002 /* OpenSkyClient.swift */; };
|
||||
LV3300003333000033330001 /* AircraftRegistry.swift in Sources */ = {isa = PBXBuildFile; fileRef = LV3300003333000033330002 /* AircraftRegistry.swift */; };
|
||||
@@ -87,6 +98,33 @@
|
||||
HX1900001900000019000001 /* AircraftStatsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = HX1900001900000019000002 /* AircraftStatsView.swift */; };
|
||||
HX2000002000000020000001 /* EnrichAircraftTypesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = HX2000002000000020000002 /* EnrichAircraftTypesView.swift */; };
|
||||
HX2100002100000021000001 /* FlightAwareLookup.swift in Sources */ = {isa = PBXBuildFile; fileRef = HX2100002100000021000002 /* FlightAwareLookup.swift */; };
|
||||
NF0100000000000000000001 /* AircraftRotationTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = NF0100000000000000000002 /* AircraftRotationTracker.swift */; };
|
||||
NF0200000000000000000001 /* AirframeHistoryStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = NF0200000000000000000002 /* AirframeHistoryStore.swift */; };
|
||||
NF0300000000000000000001 /* BTSDataStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = NF0300000000000000000002 /* BTSDataStore.swift */; };
|
||||
NF0500000000000000000001 /* DelayCascadePredictor.swift in Sources */ = {isa = PBXBuildFile; fileRef = NF0500000000000000000002 /* DelayCascadePredictor.swift */; };
|
||||
NF0600000000000000000001 /* EquipmentSwapService.swift in Sources */ = {isa = PBXBuildFile; fileRef = NF0600000000000000000002 /* EquipmentSwapService.swift */; };
|
||||
NF0700000000000000000001 /* HubLoadHeatmapService.swift in Sources */ = {isa = PBXBuildFile; fileRef = NF0700000000000000000002 /* HubLoadHeatmapService.swift */; };
|
||||
NF0900000000000000000001 /* LoadFactorService.swift in Sources */ = {isa = PBXBuildFile; fileRef = NF0900000000000000000002 /* LoadFactorService.swift */; };
|
||||
NF1000000000000000000001 /* OnTimePerformanceService.swift in Sources */ = {isa = PBXBuildFile; fileRef = NF1000000000000000000002 /* OnTimePerformanceService.swift */; };
|
||||
NF1100000000000000000001 /* SisterFlightService.swift in Sources */ = {isa = PBXBuildFile; fileRef = NF1100000000000000000002 /* SisterFlightService.swift */; };
|
||||
NF1200000000000000000001 /* StandbyStatsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = NF1200000000000000000002 /* StandbyStatsService.swift */; };
|
||||
NF1400000000000000000001 /* WeatherClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = NF1400000000000000000002 /* WeatherClient.swift */; };
|
||||
NHB00000000000000000001 /* HubLoadsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = NHB00000000000000000002 /* HubLoadsView.swift */; };
|
||||
NSV00000000000000000001 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = NSV00000000000000000002 /* SettingsView.swift */; };
|
||||
NR0100000000000000000001 /* aircraft_seats.json in Resources */ = {isa = PBXBuildFile; fileRef = NR0100000000000000000002 /* aircraft_seats.json */; };
|
||||
NR0200000000000000000001 /* bts_bundle.json in Resources */ = {isa = PBXBuildFile; fileRef = NR0200000000000000000002 /* bts_bundle.json */; };
|
||||
NF1600000000000000000001 /* DataIntegrityMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = NF1600000000000000000002 /* DataIntegrityMonitor.swift */; };
|
||||
NR0700000000000000000001 /* bts_bundle_meta.json in Resources */ = {isa = PBXBuildFile; fileRef = NR0700000000000000000002 /* bts_bundle_meta.json */; };
|
||||
TN0100000000000000000001 /* AirframeHistoryStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = TN0100000000000000000002 /* AirframeHistoryStoreTests.swift */; };
|
||||
TN0300000000000000000001 /* DataIntegrityMonitorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = TN0300000000000000000002 /* DataIntegrityMonitorTests.swift */; };
|
||||
TN0400000000000000000001 /* DelayCascadePredictorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = TN0400000000000000000002 /* DelayCascadePredictorTests.swift */; };
|
||||
TN0500000000000000000001 /* EquipmentSwapServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = TN0500000000000000000002 /* EquipmentSwapServiceTests.swift */; };
|
||||
TN0600000000000000000001 /* HistoryFlightModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = TN0600000000000000000002 /* HistoryFlightModelTests.swift */; };
|
||||
TN0800000000000000000001 /* LoadFactorServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = TN0800000000000000000002 /* LoadFactorServiceTests.swift */; };
|
||||
TN0900000000000000000001 /* SelftestRemovalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = TN0900000000000000000002 /* SelftestRemovalTests.swift */; };
|
||||
TN1000000000000000000001 /* SisterFlightServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = TN1000000000000000000002 /* SisterFlightServiceTests.swift */; };
|
||||
TN1100000000000000000001 /* StandbyStatsServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = TN1100000000000000000002 /* StandbyStatsServiceTests.swift */; };
|
||||
TN1300000000000000000001 /* WeatherClientTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = TN1300000000000000000002 /* WeatherClientTests.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
@@ -134,12 +172,22 @@
|
||||
BB2200002222000022220002 /* JSXWebViewFetcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSXWebViewFetcher.swift; sourceTree = "<group>"; };
|
||||
RE1100001111000011110002 /* RouteExplorerModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RouteExplorerModels.swift; sourceTree = "<group>"; };
|
||||
RE2200002222000022220002 /* RouteExplorerClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RouteExplorerClient.swift; sourceTree = "<group>"; };
|
||||
FA9911119911119911119922 /* FlightAwareScheduleClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlightAwareScheduleClient.swift; sourceTree = "<group>"; };
|
||||
BL0011110011110011110022 /* BlobRouteClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlobRouteClient.swift; sourceTree = "<group>"; };
|
||||
DL0011110011110011110022 /* DiagnosticLogger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DiagnosticLogger.swift; sourceTree = "<group>"; };
|
||||
LD0011110011110011110022 /* LoggingURLSessionDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoggingURLSessionDelegate.swift; sourceTree = "<group>"; };
|
||||
DV0011110011110011110022 /* DiagnosticsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DiagnosticsView.swift; sourceTree = "<group>"; };
|
||||
RT0011110011110011110022 /* RouteExplorerTokenStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RouteExplorerTokenStore.swift; sourceTree = "<group>"; };
|
||||
RS0011110011110011110022 /* RouteExplorerSetupView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RouteExplorerSetupView.swift; sourceTree = "<group>"; };
|
||||
RB0011110011110011110022 /* RouteExplorerBrowserView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RouteExplorerBrowserView.swift; sourceTree = "<group>"; };
|
||||
RE3300003333000033330002 /* RoutePlannerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoutePlannerView.swift; sourceTree = "<group>"; };
|
||||
REGT00000000000000000002 /* RouteExplorerGateSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RouteExplorerGateSheet.swift; sourceTree = "<group>"; };
|
||||
RE5500005555000055550002 /* IATAAirportPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IATAAirportPicker.swift; sourceTree = "<group>"; };
|
||||
RE6600006666000066660002 /* ConnectionRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectionRow.swift; sourceTree = "<group>"; };
|
||||
RE7700007777000077770002 /* ConnectionLoadDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectionLoadDetailView.swift; sourceTree = "<group>"; };
|
||||
RE8800008888000088880002 /* SearchRoute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchRoute.swift; sourceTree = "<group>"; };
|
||||
T1000000000000000000001B /* AirlineLoadIntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AirlineLoadIntegrationTests.swift; sourceTree = "<group>"; };
|
||||
FATEST00FATEST00FATEST02 /* FlightAwareScheduleClientTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlightAwareScheduleClientTests.swift; sourceTree = "<group>"; };
|
||||
T1000000000000000000003A /* FlightsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FlightsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
LV1100001111000011110002 /* LiveAircraft.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LiveAircraft.swift; sourceTree = "<group>"; };
|
||||
LV2200002222000022220002 /* OpenSkyClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenSkyClient.swift; sourceTree = "<group>"; };
|
||||
@@ -183,6 +231,34 @@
|
||||
HX1900001900000019000002 /* AircraftStatsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AircraftStatsView.swift; sourceTree = "<group>"; };
|
||||
HX2000002000000020000002 /* EnrichAircraftTypesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnrichAircraftTypesView.swift; sourceTree = "<group>"; };
|
||||
HX2100002100000021000002 /* FlightAwareLookup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlightAwareLookup.swift; sourceTree = "<group>"; };
|
||||
NF0100000000000000000002 /* AircraftRotationTracker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AircraftRotationTracker.swift; sourceTree = "<group>"; };
|
||||
NF0200000000000000000002 /* AirframeHistoryStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AirframeHistoryStore.swift; sourceTree = "<group>"; };
|
||||
NF0300000000000000000002 /* BTSDataStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BTSDataStore.swift; sourceTree = "<group>"; };
|
||||
NF0500000000000000000002 /* DelayCascadePredictor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DelayCascadePredictor.swift; sourceTree = "<group>"; };
|
||||
NF0600000000000000000002 /* EquipmentSwapService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EquipmentSwapService.swift; sourceTree = "<group>"; };
|
||||
NF0700000000000000000002 /* HubLoadHeatmapService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HubLoadHeatmapService.swift; sourceTree = "<group>"; };
|
||||
NF0900000000000000000002 /* LoadFactorService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadFactorService.swift; sourceTree = "<group>"; };
|
||||
NF1000000000000000000002 /* OnTimePerformanceService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnTimePerformanceService.swift; sourceTree = "<group>"; };
|
||||
NF1100000000000000000002 /* SisterFlightService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SisterFlightService.swift; sourceTree = "<group>"; };
|
||||
NF1200000000000000000002 /* StandbyStatsService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StandbyStatsService.swift; sourceTree = "<group>"; };
|
||||
NF1400000000000000000002 /* WeatherClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeatherClient.swift; sourceTree = "<group>"; };
|
||||
NHB00000000000000000002 /* HubLoadsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HubLoadsView.swift; sourceTree = "<group>"; };
|
||||
TS0011110011110011110022 /* TurnstileDebugView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TurnstileDebugView.swift; sourceTree = "<group>"; };
|
||||
NSV00000000000000000002 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; };
|
||||
NR0100000000000000000002 /* aircraft_seats.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = aircraft_seats.json; sourceTree = "<group>"; };
|
||||
NR0200000000000000000002 /* bts_bundle.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = bts_bundle.json; sourceTree = "<group>"; };
|
||||
NF1600000000000000000002 /* DataIntegrityMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataIntegrityMonitor.swift; sourceTree = "<group>"; };
|
||||
NR0700000000000000000002 /* bts_bundle_meta.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = bts_bundle_meta.json; sourceTree = "<group>"; };
|
||||
TN0100000000000000000002 /* AirframeHistoryStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AirframeHistoryStoreTests.swift; sourceTree = "<group>"; };
|
||||
TN0300000000000000000002 /* DataIntegrityMonitorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataIntegrityMonitorTests.swift; sourceTree = "<group>"; };
|
||||
TN0400000000000000000002 /* DelayCascadePredictorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DelayCascadePredictorTests.swift; sourceTree = "<group>"; };
|
||||
TN0500000000000000000002 /* EquipmentSwapServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EquipmentSwapServiceTests.swift; sourceTree = "<group>"; };
|
||||
TN0600000000000000000002 /* HistoryFlightModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HistoryFlightModelTests.swift; sourceTree = "<group>"; };
|
||||
TN0800000000000000000002 /* LoadFactorServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadFactorServiceTests.swift; sourceTree = "<group>"; };
|
||||
TN0900000000000000000002 /* SelftestRemovalTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelftestRemovalTests.swift; sourceTree = "<group>"; };
|
||||
TN1000000000000000000002 /* SisterFlightServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SisterFlightServiceTests.swift; sourceTree = "<group>"; };
|
||||
TN1100000000000000000002 /* StandbyStatsServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StandbyStatsServiceTests.swift; sourceTree = "<group>"; };
|
||||
TN1300000000000000000002 /* WeatherClientTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeatherClientTests.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -215,6 +291,7 @@
|
||||
15676B4BD35745D1BD1DC947 /* AirportBrowserSheet.swift */,
|
||||
BB1100001111000011110006 /* FlightLoadDetailView.swift */,
|
||||
RE3300003333000033330002 /* RoutePlannerView.swift */,
|
||||
REGT00000000000000000002 /* RouteExplorerGateSheet.swift */,
|
||||
RE7700007777000077770002 /* ConnectionLoadDetailView.swift */,
|
||||
LV4400004444000044440002 /* LiveFlightsView.swift */,
|
||||
LV5500005555000055550002 /* LiveFlightDetailSheet.swift */,
|
||||
@@ -236,6 +313,12 @@
|
||||
HX1800001800000018000002 /* PassportView.swift */,
|
||||
HX1900001900000019000002 /* AircraftStatsView.swift */,
|
||||
HX2000002000000020000002 /* EnrichAircraftTypesView.swift */,
|
||||
NHB00000000000000000002 /* HubLoadsView.swift */,
|
||||
TS0011110011110011110022 /* TurnstileDebugView.swift */,
|
||||
DV0011110011110011110022 /* DiagnosticsView.swift */,
|
||||
RS0011110011110011110022 /* RouteExplorerSetupView.swift */,
|
||||
RB0011110011110011110022 /* RouteExplorerBrowserView.swift */,
|
||||
NSV00000000000000000002 /* SettingsView.swift */,
|
||||
AA5555555555555555555555 /* Styles */,
|
||||
AA6666666666666666666666 /* Components */,
|
||||
);
|
||||
@@ -269,6 +352,7 @@
|
||||
B6019ED81F39462B92BDC856 /* Services */,
|
||||
6E94DB5F9EB345948E2D5E2A /* ViewModels */,
|
||||
1B20C5393D8F432A93097C2C /* Views */,
|
||||
NRESGROUP00000000000001 /* Resources */,
|
||||
D9E26DCDE2904210ABCA7855 /* Assets.xcassets */,
|
||||
53F457716F0642BDBCBA93EA /* airports.json */,
|
||||
LV9900009999000099990002 /* airlines.json */,
|
||||
@@ -277,6 +361,16 @@
|
||||
path = Flights;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
NRESGROUP00000000000001 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
NR0100000000000000000002 /* aircraft_seats.json */,
|
||||
NR0200000000000000000002 /* bts_bundle.json */,
|
||||
NR0700000000000000000002 /* bts_bundle_meta.json */,
|
||||
);
|
||||
path = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
517CC07B82D949359C6CD4F5 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -290,6 +384,17 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
T1000000000000000000001B /* AirlineLoadIntegrationTests.swift */,
|
||||
FATEST00FATEST00FATEST02 /* FlightAwareScheduleClientTests.swift */,
|
||||
TN0100000000000000000002 /* AirframeHistoryStoreTests.swift */,
|
||||
TN0300000000000000000002 /* DataIntegrityMonitorTests.swift */,
|
||||
TN0400000000000000000002 /* DelayCascadePredictorTests.swift */,
|
||||
TN0500000000000000000002 /* EquipmentSwapServiceTests.swift */,
|
||||
TN0600000000000000000002 /* HistoryFlightModelTests.swift */,
|
||||
TN0800000000000000000002 /* LoadFactorServiceTests.swift */,
|
||||
TN0900000000000000000002 /* SelftestRemovalTests.swift */,
|
||||
TN1000000000000000000002 /* SisterFlightServiceTests.swift */,
|
||||
TN1100000000000000000002 /* StandbyStatsServiceTests.swift */,
|
||||
TN1300000000000000000002 /* WeatherClientTests.swift */,
|
||||
);
|
||||
path = FlightsTests;
|
||||
sourceTree = "<group>";
|
||||
@@ -314,6 +419,11 @@
|
||||
BB1100001111000011110004 /* AirlineLoadService.swift */,
|
||||
BB2200002222000022220002 /* JSXWebViewFetcher.swift */,
|
||||
RE2200002222000022220002 /* RouteExplorerClient.swift */,
|
||||
FA9911119911119911119922 /* FlightAwareScheduleClient.swift */,
|
||||
BL0011110011110011110022 /* BlobRouteClient.swift */,
|
||||
DL0011110011110011110022 /* DiagnosticLogger.swift */,
|
||||
LD0011110011110011110022 /* LoggingURLSessionDelegate.swift */,
|
||||
RT0011110011110011110022 /* RouteExplorerTokenStore.swift */,
|
||||
LV2200002222000022220002 /* OpenSkyClient.swift */,
|
||||
LV3300003333000033330002 /* AircraftRegistry.swift */,
|
||||
LV7700007777000077770002 /* OpenSkyCredentials.swift */,
|
||||
@@ -329,6 +439,18 @@
|
||||
HX1100001100000011000002 /* CSVFlightImporter.swift */,
|
||||
HX1300001300000013000002 /* HistoryFilters.swift */,
|
||||
HX2100002100000021000002 /* FlightAwareLookup.swift */,
|
||||
NF0100000000000000000002 /* AircraftRotationTracker.swift */,
|
||||
NF0200000000000000000002 /* AirframeHistoryStore.swift */,
|
||||
NF0300000000000000000002 /* BTSDataStore.swift */,
|
||||
NF0500000000000000000002 /* DelayCascadePredictor.swift */,
|
||||
NF0600000000000000000002 /* EquipmentSwapService.swift */,
|
||||
NF0700000000000000000002 /* HubLoadHeatmapService.swift */,
|
||||
NF0900000000000000000002 /* LoadFactorService.swift */,
|
||||
NF1000000000000000000002 /* OnTimePerformanceService.swift */,
|
||||
NF1100000000000000000002 /* SisterFlightService.swift */,
|
||||
NF1200000000000000000002 /* StandbyStatsService.swift */,
|
||||
NF1400000000000000000002 /* WeatherClient.swift */,
|
||||
NF1600000000000000000002 /* DataIntegrityMonitor.swift */,
|
||||
);
|
||||
path = Services;
|
||||
sourceTree = "<group>";
|
||||
@@ -446,6 +568,9 @@
|
||||
80D2BC95002A4931B3C10B4C /* airports.json in Resources */,
|
||||
LV9900009999000099990001 /* airlines.json in Resources */,
|
||||
LVCC000CCCC000CCCC000001 /* aircraftDB.json in Resources */,
|
||||
NR0100000000000000000001 /* aircraft_seats.json in Resources */,
|
||||
NR0200000000000000000001 /* bts_bundle.json in Resources */,
|
||||
NR0700000000000000000001 /* bts_bundle_meta.json in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -487,7 +612,17 @@
|
||||
BB2200002222000022220001 /* JSXWebViewFetcher.swift in Sources */,
|
||||
RE1100001111000011110001 /* RouteExplorerModels.swift in Sources */,
|
||||
RE2200002222000022220001 /* RouteExplorerClient.swift in Sources */,
|
||||
FA9911119911119911119911 /* FlightAwareScheduleClient.swift in Sources */,
|
||||
BL0011110011110011110011 /* BlobRouteClient.swift in Sources */,
|
||||
TS0011110011110011110011 /* TurnstileDebugView.swift in Sources */,
|
||||
DL0011110011110011110011 /* DiagnosticLogger.swift in Sources */,
|
||||
LD0011110011110011110011 /* LoggingURLSessionDelegate.swift in Sources */,
|
||||
DV0011110011110011110011 /* DiagnosticsView.swift in Sources */,
|
||||
RT0011110011110011110011 /* RouteExplorerTokenStore.swift in Sources */,
|
||||
RS0011110011110011110011 /* RouteExplorerSetupView.swift in Sources */,
|
||||
RB0011110011110011110011 /* RouteExplorerBrowserView.swift in Sources */,
|
||||
RE3300003333000033330001 /* RoutePlannerView.swift in Sources */,
|
||||
REGT00000000000000000001 /* RouteExplorerGateSheet.swift in Sources */,
|
||||
RE5500005555000055550001 /* IATAAirportPicker.swift in Sources */,
|
||||
RE6600006666000066660001 /* ConnectionRow.swift in Sources */,
|
||||
RE7700007777000077770001 /* ConnectionLoadDetailView.swift in Sources */,
|
||||
@@ -531,6 +666,20 @@
|
||||
HX1900001900000019000001 /* AircraftStatsView.swift in Sources */,
|
||||
HX2000002000000020000001 /* EnrichAircraftTypesView.swift in Sources */,
|
||||
HX2100002100000021000001 /* FlightAwareLookup.swift in Sources */,
|
||||
NF0100000000000000000001 /* AircraftRotationTracker.swift in Sources */,
|
||||
NF0200000000000000000001 /* AirframeHistoryStore.swift in Sources */,
|
||||
NF0300000000000000000001 /* BTSDataStore.swift in Sources */,
|
||||
NF0500000000000000000001 /* DelayCascadePredictor.swift in Sources */,
|
||||
NF0600000000000000000001 /* EquipmentSwapService.swift in Sources */,
|
||||
NF0700000000000000000001 /* HubLoadHeatmapService.swift in Sources */,
|
||||
NF0900000000000000000001 /* LoadFactorService.swift in Sources */,
|
||||
NF1000000000000000000001 /* OnTimePerformanceService.swift in Sources */,
|
||||
NF1100000000000000000001 /* SisterFlightService.swift in Sources */,
|
||||
NF1200000000000000000001 /* StandbyStatsService.swift in Sources */,
|
||||
NF1400000000000000000001 /* WeatherClient.swift in Sources */,
|
||||
NHB00000000000000000001 /* HubLoadsView.swift in Sources */,
|
||||
NSV00000000000000000001 /* SettingsView.swift in Sources */,
|
||||
NF1600000000000000000001 /* DataIntegrityMonitor.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -539,6 +688,17 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
T1000000000000000000001A /* AirlineLoadIntegrationTests.swift in Sources */,
|
||||
FATEST00FATEST00FATEST01 /* FlightAwareScheduleClientTests.swift in Sources */,
|
||||
TN0100000000000000000001 /* AirframeHistoryStoreTests.swift in Sources */,
|
||||
TN0300000000000000000001 /* DataIntegrityMonitorTests.swift in Sources */,
|
||||
TN0400000000000000000001 /* DelayCascadePredictorTests.swift in Sources */,
|
||||
TN0500000000000000000001 /* EquipmentSwapServiceTests.swift in Sources */,
|
||||
TN0600000000000000000001 /* HistoryFlightModelTests.swift in Sources */,
|
||||
TN0800000000000000000001 /* LoadFactorServiceTests.swift in Sources */,
|
||||
TN0900000000000000000001 /* SelftestRemovalTests.swift in Sources */,
|
||||
TN1000000000000000000001 /* SisterFlightServiceTests.swift in Sources */,
|
||||
TN1100000000000000000001 /* StandbyStatsServiceTests.swift in Sources */,
|
||||
TN1300000000000000000001 /* WeatherClientTests.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -552,7 +712,7 @@
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CODE_SIGN_ENTITLEMENTS = Flights/Flights.entitlements;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
CURRENT_PROJECT_VERSION = 4;
|
||||
DEVELOPMENT_TEAM = V3PF3M6B6U;
|
||||
GENERATE_INFOPLIST_FILE = NO;
|
||||
INFOPLIST_FILE = Flights/Info.plist;
|
||||
@@ -578,7 +738,7 @@
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CODE_SIGN_ENTITLEMENTS = Flights/Flights.entitlements;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
CURRENT_PROJECT_VERSION = 4;
|
||||
DEVELOPMENT_TEAM = V3PF3M6B6U;
|
||||
GENERATE_INFOPLIST_FILE = NO;
|
||||
INFOPLIST_FILE = Flights/Info.plist;
|
||||
@@ -651,7 +811,7 @@
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
CURRENT_PROJECT_VERSION = 4;
|
||||
DEVELOPMENT_TEAM = V3PF3M6B6U;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
|
||||
@@ -670,7 +830,7 @@
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
CURRENT_PROJECT_VERSION = 4;
|
||||
DEVELOPMENT_TEAM = V3PF3M6B6U;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
|
||||
|
||||
Reference in New Issue
Block a user