D'API äntwert am Safari um selwechten Telefon, während d'Ufro vun der App an eng Zäitüberschreidung leeft. Dës Lück ass meeschtens net den Tunnel: eng App, déi en internen Déngscht opruft, mécht eng gewéinlech HTTPS-Ufro, an de bestehende VPN um Apparat entscheet just, ob dës Ufro e Wee huet. En zweeten Tunnel an d'App schreiwen ass eng Produktentscheedung, keng Reparatur fir eng Zäitüberschreidung. Wat hei duerno kënnt, klassifizéiert de Feeler no sengem Optriedensort, a benotzt d'Feelerfläch, déi d'App schonn huet.

Fänkt mam Feeler un, net mam Tunnel

URLSession mellt Transportfeeler als NSError Wäerter an NSURLErrorDomain, an de Code ass dee bëllegsten Beweis deen et gëtt. Ier Dir eng Konfiguratioun ännert, loggt dee Code zesumme mam feelschlagenden Hostnumm an der verstrachen Zäit vun der Aufgab. Eng Zäitüberschreidung, en Nummfeeler an e Vertrauensfeeler gesinn um Bildschierm gläich aus an erfuerderen dräi verschidde Reparaturen. Klassifizéiert als éischt, liest duerno d'Rubrik fir déi Klass.

Aufgabmetrike beäntweren déi nächst Fro, ob iwwerhaapt eng Verbindung opgebaut gouf, wat eng Ufro ouni Wee vun enger trennt, op déi de Server ze laang gewaart huet. Nichts dovun brauch den Tunnel geännert; et brauch d'Diagnostik vun der Ufro selwer op enger Plaz, wou Dir se liese kënnt.

D'Nimmoploesung feelt ier eppes anescht ka geschéien

En kuerzen Büro-Numm wéi api.corp.example hänkt meeschtens vun enger Sichdomän of, déi den Telefon net huet, sou datt d'App en Numm opléist, deen et just am Gebai gëtt. NSURLErrorCannotFindHost ass d'Signatur. Den vollstännegen Hostnumm muss iwwer dee Resolver opléist ginn, deen de VPN installéiert, an d'App soll déi voll qualifizéiert Form ufroen, wann d'Sichdomän net garantéiert ass. Den Numm duerch eng Adress ersetzen an d'Zertifikatskontrolle ausschalten verréckelt de Feeler, amplaz en ze reparéieren.

En private DNS-Record an en Zertifikat, dat fir genee dësen Numm ausgestallt gouf, sinn dee ënnerstëtzte Puer. Alles anescht ass en Ëmwee, deen zu de Benotzer kënnt.

Eng Zäitüberschreidung ass eng Fro vum Wee, net vum Numm

NSURLErrorTimedOut bedeit, datt den Numm opgeléist gouf an näischt geäntwert huet, wat op d'Route, d'Paketpolitik oder den Déngscht weist. Wann den Tunnel pro Applikatioun zougedeelt gëtt, seet eng aner App, déi deen eege Server erreecht, näischt iwwer Äre Build, well dës Zoustellung net gedeelt gëtt. Kontrolléiert, ob de Bundle, deen Dir ausféiert, bannent dëser Zoustellung läit, a kontrolléiert duerno, ob de Wee vum Déngscht dofir erlaabt ass. En Entwécklungsbuild, deen ausserhalb vun der Zoustellung installéiert ass, ka komplett ausserhalb vum Tunnel leien an ausgesinn wéi eng futti API.

En Browserverglach weist, datt irgendeng App um Apparat e Wee huet. Et beweist ni, datt Äre Build een huet, a dofir mussen déi zwou Tester getrennt lafen.

Vertrauensfeeler betreffen den Numm um Zertifikat

NSURLErrorServerCertificateUntrusted zesumme mam TLS-Feeler dorënner bedeit, datt d'Kette oder d'Identitéitskontroll feelgeschloen ass. Eng intern CA muss um Apparat vertraut sinn, an en Zertifikat, dat fir en aneren Hostnumm ausgestallt gouf, bleift no all mengelechster Netzwierk-Neikonfiguratioun falsch. Dem Apple seng App Transport Security-Uweisung gëllt weider fir dës URL-luedend Verbindungen, an en Tunnel ëm en einfachen HTTP-Déngscht mécht dësen Déngscht net vun engem Enn bis zum aneren sécher.

Reparéiert d'Identitéit oder den Vertrauensanker a haalt d'Ausname-Lëscht eidel. Eng allgemeng Ausnam fir arbiträr Luet versteet de Feeler während der Entwécklung a léisst en duerno fir all Benotzer op der Plaz.

Eng HTTP-Oflehnung gehéiert zur App, net zum Netz

En 401 oder 403 no engem fäerdege Handshake bedeit, datt d'Ufro ukomm ass an den Déngscht se ofgewisen huet, sou datt déi reschtlech Fro en Kont, eng Token-Audienz, en Ëmfang oder e Schlëssel ass. Loggt de Statuscode an den Hostnumm, ni de Bearer-Token oder de Äntwertkierper. Zu deem Zäitpunkt mécht den Tunnel seng Aarbecht, a weider Netzwierkännerungen hale just déi richteg Reparatur op.

D'Tabell ass d'Klassifikatioun, déi een niewent dem Terminal hält: eng Zeil pro Feeler, deen d'App wierklech melle kann. Dréckt de Code aus, ier Dir en liest, well d'Zeil, déi Dir wielt, entscheet, wat fir eng Rubrik Dir duerchschafft.

Where it failsWhat the app seesFirst check
name resolutionNSURLErrorCannotFindHost (-1003)resolve the fully qualified name from the device itself
no path, or no answerNSURLErrorTimedOut (-1001)is this bundle inside the per-app mapping, and is the service path allowed
TLS trustNSURLErrorServerCertificateUntrusted (-1202)does the certificate name match the host, and is the internal CA trusted
service refusalHTTP 401 or 403 after a completed handshakeaccount, token audience, scope or key

All Zeil ass bëlleg ze testen wéi déi drënner, an all schléisst eng aner Schicht vun der selwechter Ufro aus. Gitt d'Tabell erof, bis eng Zeil passt, a stoppt duerno d'Netz ze änneren.

Ähnlech Artikelen