Я работал над своим первым React Native NativeModule.Простое «Привет, мир!»Функция Objective-C просто чтобы понять, как это работает.Все шло относительно гладко, однако, похоже, xcode потерял ссылку на все файлы React Native.Я подумал, что эта проблема, вероятно, связана с конкретным проектом, поэтому я запустил новое TestApp, используя react-native init TestApp
, но когда я открываю этот файл .xcodeproj
, у меня возникает та же проблема.
Первая ошибка в этом новом TestApp - в файле AppDelegate.m
: 'React/RCTBundleURLProvider.h' file not found
, но, как и следовало ожидать, оттуда происходит лавина.
Я потратил большую часть вчера, пробуя все видыпотенциальных решений безрезультатно.
Это может быть ложное указание, но, возможно, нет, однако я заметил, что Header Search Paths
пусто всякий раз, когда я впервые открываю .xcodeproj
в недавно инициализированном проекте.При этом я пробовал многочисленные пути поиска, основанные на ответах, которые я нашел здесь, на StackOverflow, GitHub и т. Д., Последнее из которых $(SRCROOT)/../node_modules/react-native/React
Я знаю, что эта проблема может быть немного расплывчатой, но любая помощьс благодарностью.Как разработчик iOS, я изо всех сил стараюсь быть открытым для React Native, но постоянно сталкиваюсь с такими проблемами, как это, на самом деле мешает.
Спасибо!
пс.На данный момент я задаюсь вопросом, будет ли переустановка xcode, узла, npm и самого нативного решения полностью верным решением.
Редактирует для ясности
Сначала я запускаю react-native init TestApp
и cd TestApp
, за которым следует npm install
.Я также попытался запустить react-native link
на этом этапе.
Затем я открываю ios/TestApp.xcodeproj
.После того, как xcode выполнит свою обычную индексацию, меня неизбежно встретит красный 'React/RCTBundleURLProvider.h' file not found
в AppDelegate.Иногда 'React/RCTRootView.' file not found'
тоже бывает.В большинстве случаев, даже если это второе предупреждение не появляется, RCTRootView *
в didFinishLaunchingWithOptions
не окрашивается.
Если я пытаюсь создать собственный модуль, например, так:
#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"
@interface Test : NSObject <RCTBridgeModule>
@end
Я получаю немедленный 'RCTBridgeModule.h' file not found
.
Другими словами, Xcode не находит ничего RCT.Автозаполнение ничего не предлагает RCT.
Даже с этими предупреждениями я могу запустить приложение из Xcode или с помощью react-native run-ios
.
Этот дополнительный бит может иметь или не иметь значение:
Если в моем App.js есть import { NativeModules } from 'react-native'
, NativeModules
окажется неопределенным.
В настоящее время у меня такое ощущение, что в настройке есть важный шаг, которого нет в RN Docs, и почему-то другие учебники тоже не затрагиваются.Я пытался на другом компьютере к тому же результату.