Проект React-Native (не удалось подключиться к серверу разработки) - PullRequest
0 голосов
/ 28 января 2020

Первый!

☁  wonder  react-native --version
react-native-cli: 2.0.1
react-native: 0.58.6
☁  wonder  node --version
v13.6.0
☁  wonder  npm --version
6.13.4

При попытке построить и запустить на симуляторе локально я получаю;

Simulator

несмотря на на этом порте ничего не работает, и это готовый порт для проектов RN, но я вставлю свой файл AppDelagate и версии инструментов. Может кто-нибудь объяснить, как это работает, чтобы я мог устранить неполадки.

> react-native run-ios

Found Xcode project wonder.xcodeproj
Building using "xcodebuild -project wonder.xcodeproj -configuration Debug -scheme wonder -destination id=C9362944-1FDD-4D6E-A6BB-8E758F427 -derivedDataPath build"
User defaults from command line:

    IDEDerivedDataPathOverride = /Users/{NAME}/Documents/Projects/wonderService/wonder/ios/build


note: Using new build system

note: Planning build

note: Using build description from disk

PhaseScriptExecution Start\ Packager /Users/{NAME}/Documents/Projects/wonderService/wonder/ios/build/Build/Intermediates.noindex/React.build/Debug-iphonesimulator/React.build/Script-006B79A01A781F3800
6873D1.sh (in target 'React' from project 'React')
    cd /Users/{NAME}/Documents/Projects/wonderService/wonder/node_modules/react-native/React
    /bin/sh -c /Users/{NAME}/Documents/Projects/wonderService/wonder/ios/build/Build/Intermediates.noindex/React.build/Debug-iphonesimulator/React.build/Script-006B79A01A781F38006873D1.sh

Connection to localhost port 8081 [tcp/sunproxyadmin] succeeded!

Файл AppDelegate.h

#import "AppDelegate.h"

#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  NSURL *jsCodeLocation;

  jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"];

  jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];

  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
                                                      moduleName:@"wonder"
                                               initialProperties:nil
                                                   launchOptions:launchOptions];
  rootView.backgroundColor = [UIColor blackColor];

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];
  return YES;
}

@end

Выше я помню, что мне пришлось добавить

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"];

, это можно изменить на обратное. Я не верю, что это ошибка

Я также понимаю, что при настройке ПОРТА для проектов это можно сделать здесь

node_modules/react-native/React/React.xcodeproj/project.pbxproj

, но никаких других признаков нет В данном случае используется PORT.

Наконец, я переключился между использованием 127.0.0.1 && localhost ... ЖЕ РЕЗУЛЬТАТ

Ответы [ 2 ]

1 голос
/ 09 февраля 2020

Обновление!

Вы пробовали следующее:

rm -rf node_modules 
npm clean cache
watchman watch-del-all
npm i
npm start -- --reset-cache

Возможно, у вас npm проблемы с путями.

== ================================

Есть три основные проблемы, которые я мог видеть, которые могут вызвать это :

  1. Вы на самом деле что-то запускаете на 8081, не осознавая этого
  2. Ваш сервер узлов на самом деле не работает
  3. Вы неправильно настроили iOS симулятор для подключения к нужной сети

Port Issue

Вы можете попробовать: react-native start --port=8088. Затем запустите react-native run-ios --port=8088 в другом окне терминала, чтобы запустить приложение iOS.

Если оно работает нормально, возможно, что-то работает на: 8081, вы можете проверить дважды, выполнив следующие действия:

sudo lsof -i :8081

Если что-то не так, как ваш сервер узла, то вы можете kill -9 <PID> убить любые дополнительные процессы.

Примечание: 8081 - это популярный сервер для антивирусного программного обеспечения, поэтому вам следует либо убить свое вирусное программное обеспечение (не рекомендуется), либо указать другой порт для запуска активного ключа в вашей команде react-native run-ios в вашем пакете. json

Запуск сервера узла

Убедитесь, что ваш сервер npm действительно работает. Я бы предложил запустить react-native start в вашем каталоге root -level. Затем попробуйте react-native run-ios в отдельном окне терминала. Если он работает нормально, значит ваш сервер узлов просто не работал.

Дважды проверьте сеть симулятора

Запустите yarn start в своем проекте root, затем откройте http://localhost:8081/debugger-ui и посмотрите, загружается ли страница. Если страница не загружается, то ваш симулятор, вероятно, не подключен к правильной сети. Вы можете изменить эти настройки на странице настроек симулятора.

Примечание: есть причина, по которой iOS называется "симулятором", а не "эмулятором" Android, "* 1083" * "то, что XCode работает, не соответствует c аппаратным и программным возможностям устройства iOS, а только программному обеспечению, поэтому вы можете столкнуться со странными проблемами при запуске React Native на iOS из-за ограниченных возможностей симулятор, вот связанное переполнение стека

Если none из этого работает, приложение работает нормально в Android? У вас может быть проблема iOS -specifi c, которая, по крайней мере, может сузить ваш поиск для устранения этой проблемы.

Для дальнейшего использования React Native GitHub Issues действительно полезно для поиска людей в сообществе, которые сталкивались с подобными проблемами.

0 голосов
/ 20 февраля 2020

@ Magg ie

Проблема с портом

Ничего не работает;

enter image description here

Узловой сервер

Это имело некоторую тягу;

  • Серверный терминал читает это

Error: Unable to resolve module "./index.ios" from "/Users/chris/Documents/Projects/wonderService/wonderFront/.": The module "./index.ios" could not be found from "/Users/chris/Documents/Projects/wonderService/wonderFront/.". Indeed, none of these files exist: * "/Users/chris/Documents/Projects/wonderService/wonderFront/index.ios(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx)" * "/Users/chris/Documents/Projects/wonderService/wonderFront/index.ios/index(.native||.ios.js|.native.js|.js|.ios.json|.native.json|.json|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx)" at ModuleResolver.resolveDependency (/Users/chris/Documents/Projects/wonderService/wonderFront/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:163:15)

enter image description here

...