#ios #react-native #docker #docker-compose #metro-bundler
Вопрос:
У меня есть docker-compose.yml
, который запускает сервер
version: '3.3'
services:
backend:
image: ***
ports:
- '8080:80'
environment:
BASE_URL: http://localhost:8080
DB_URL: jdbc:postgresql://db/project
WEB_BASE_URL: http://localhost:3000
restart: always
db:
***
restart: always
Теперь я хочу, чтобы приложение React native, запущенное на iPhone через xCode, связывалось с этим сервером
iPhone подключен через USB, Xcode запускает приложение на iPhone.
Но подобный звонок await axios.post<LoginResponse>('http://localhost:8080/v1/auth', loginData);
сделать невозможно.
То, что я пробовал, не увенчалось успехом
в докере-составьте
ports: - '0.0.0.0:8080:80' with/without BASE_URL: my.machine.ip.address:8080
И в приложении RN совершайте звонки (вместо localhost) на
my.machine.ip.address:8080
Также в Mac
system prefrences
/sharing
/internet sharing
(НЕ помечено галочкой) -> >share your connection from Wi-Fi
иiPhone USB
опция Отмечена галочкой в блокчейне
Примечание: эта начальная настройка с вызовами localhost и без изменения порта в docker-compose отлично работает в Android (как в эмуляторе, так и на устройстве) и в симуляторе iOS. Проблема только в реальном устройстве iPhone
Комментарии:
1. Всякий раз, когда мне приходилось тестировать на реальном устройстве ios с локальным сервером, я использовал ngrok ( ngrok.com/docs ). Насколько я знаю, такое решение-единственное, которое работает