İbrahim Halil Sertkaya — ana sayfa

Expo iOS “Connection Offline” Hatası ve Çözümü

Expo Go’nun iPhone’da offline görünmesinin nedenini ve iOS yerel ağ izniyle nasıl çözüleceğini anlatıyorum.

· 1 dk okuma

Masa lambası altında iPhone ve kod açık bir laptop

React Native ile uygulama geliştirirken testlerimi genelde Android emülatör veya fiziksel bir Android cihaz üzerinde yapıyorum. Projeyi iPhone üzerinde açmak istediğimde Android tarafında sorunsuz çalışan uygulamanın iOS’ta açılmadığını gördüm.

Karşılaştığım ekran tam olarak şuydu:

There was a problem running the requested app. Unknown error: The Internet connection appears to be offline. exp://192.168.1.101:8081

Sorunun tespiti

İlk başta interneti veya Metro sunucusunu suçladım. Modem arayüzü ve bilgisayar tarafında kesinti yoktu. Aynı saniyede Android cihaz QR kodu okutup sunucuya bağlanabiliyordu.

Sorun kodda değildi, sunucuda değildi. iPhone, makinemdeki yerel sunucuyu (8081) göremiyordu.

iOS 14 ve sonrasında Apple, uygulamaların kullanıcı izni olmadan yerel ağdaki diğer cihazları taramasını kısıtlıyor. Expo Go bu izni almazsa “internet yok” gibi yanıltıcı bir hata üretebiliyor.

Çözüm: yerel ağ iznini açmak

Bilgisayar veya kod tarafında değişiklik gerekmez. Adımlar:

  1. iPhone’da Ayarlar uygulamasını açın.
  2. Uygulama listesinde Expo Go’yu bulun.
  3. Yerel Ağ / Local Network kapalıysa açın.
  4. Expo Go’yu uygulama değiştiriciden tamamen kapatıp yeniden açın.
  5. QR kodu tekrar okutun.

Alternatif: tünel bağlantısı

Kurumsal ağ, misafir Wi-Fi veya yerel ağ kısıtı varsa Expo trafiğini internet üzerinden dolaştırabilirsiniz:

npx expo start --tunnel

Tünel, yerel ağ sorununu bypass eder; bağlantı yerel LAN’a göre daha yavaş olabilir. Mümkünse önce yerel ağ iznini deneyin.

Sonuç

“Connection appears to be offline” mesajı Expo + iOS’ta çoğu zaman gerçek bir internet kesintisi değildir. Aynı ağdaki Android cihaz çalışıyorsa ilk bakılacak yer iPhone’un Expo Go yerel ağ iznidir.

Kaynaklar

İlgili yazılar