【发布时间】:2020-12-11 13:18:25
【问题描述】:
我正在尝试构建一个 react-native IOS 应用程序。我在 Android 上完成了所有工作,但现在我想在 IOS 上进行测试。当我尝试在 xcode 中构建项目时。我在 2 行收到以下错误:
AppDelegate.m 中的第 7 行 Token is not a valid binary operator in a preprocessor subexpression
AppDelegate.m 中的第 30 行 Token is nog a valig binary operator in a preprocessor subexpressio
我的问题是:我该如何解决这个错误?
我的 AppDelegate.m 的内容
#import "AppDelegate.h"
#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
#if def FB_SONARKIT_ENABLED
#import <FlipperKit/FlipperClient.h>
#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h>
#import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h>
#import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h>
#import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h>
#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>
static void InitializeFlipper(UIApplication *application) {
FlipperClient *client = [FlipperClient sharedClient];
SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];
[client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]];
[client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]];
[client addPlugin:[FlipperKitReactPlugin new]];
[client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];
[client start];
}
#endif
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
#if def FB_SONARKIT_ENABLED
InitializeFlipper(application);
#endif
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
moduleName:@"Copaan"
initialProperties:nil];
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [UIViewController new];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
return YES;
}
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
}
@end
信息
React-native 版本:0.36.4
反应版本:16.13.1
我尝试过的事情
- 我已经删除了 ios 文件夹并安装了从与我的项目同名的新 react-nativev 应用中复制了一个新文件夹。
- 我已尝试使用
react-native upgrade进行升级
【问题讨论】:
-
swift标签是干什么用的?
-
不确定,stackoverflow 推荐了它,我想这可能与 swift 有关?但我假设这不是因为你的问题。
-
您的问题中没有 Swift 代码,只有 Objective-C。为什么也用了C++标签,好像也没有涉及到任何C++代码。
-
和以前一样的答案,我确实删除了不相关的标签。
-
您的
FB_SONARKIT_ENABLED预处理器表达式有问题。您需要向我们展示FB_SONARKIT_ENABLED的定义。可能您没有将其设置为0或1而是其他无法解析的表达式。
标签: ios objective-c react-native cocoapods