【发布时间】:2019-02-17 08:20:59
【问题描述】:
我正在开发我的第一个 React Native NativeModule。一个简单的“你好,世界!” Objective-C 函数只是为了了解它是如何工作的。事情进展得相对顺利,然而,xcode 似乎失去了对所有 React Native 文件的引用。我认为这个问题可能是特定于项目的,所以我使用react-native init TestApp 启动了一个新的TestApp,但是当我打开那个.xcodeproj 文件时,我遇到了同样的问题。
这个新的 TestApp 中的第一个错误出现在 AppDelegate.m 文件中:'React/RCTBundleURLProvider.h' file not found,但正如您所料,它会从那里雪崩。
我昨天大部分时间都在尝试各种可能的解决方案,但无济于事。
这可能是一个错误的线索,但也许不是,但是我注意到每当我在新初始化的项目上第一次打开 .xcodeproj 时,Header Search Paths 是空的。话虽如此,我已经根据我在 StackOverflow、GitHub 等上找到的答案尝试了许多搜索路径,最新的是 $(SRCROOT)/../node_modules/react-native/React
我知道这个问题可能有点含糊,但我们将不胜感激。作为一名 iOS 开发人员,我正在尽我最大的努力对 React Native 持开放态度,但不断遇到诸如此类的问题确实会阻碍这一点。
谢谢!
ps。在这一点上,我想知道重新安装 xcode、node、npm 和 react native 是否是最可靠的解决方案。
为清晰起见进行编辑
首先我运行react-native init TestApp 和cd TestApp,然后运行npm install。此时我也尝试过运行react-native link。
然后我打开ios/TestApp.xcodeproj。在 xcode 执行其通常的索引之后,我将不可避免地在 AppDelegate 中看到红色的'React/RCTBundleURLProvider.h' file not found。有时'React/RCTRootView.' file not found' 也会发生。大多数情况下,即使没有发生第二个警告,didFinishLaunchingWithOptions 中的 RCTRootView * 也不会着色。
如果我尝试像这样创建本机模块:
#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 中列出,并且由于某种原因,其他教程也没有涉及。我在另一台电脑上尝试了同样的结果。
【问题讨论】:
标签: ios objective-c node.js xcode react-native