如何添加 iOS 键盘扩展以响应本机?
How to add iOS keyboard extension to react native?
从默认的 React Native 项目开始,我遵循了创建键盘扩展的指南,并且默认的 Apple 代码可以正常工作。但是当我将 #import <RCTRootView.h>
添加到我的文件时,以下是扩展 ViewController 文件中唯一的代码:
- (void)loadView {
NSURL *jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"ReactAGKeyboard"
initialProperties:nil
launchOptions:nil];
self.view = rootView;
}
构建将失败并出现错误:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_RCTRootView", referenced from: objc-class-ref in KeyboardViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我从这个类似的问题
添加 Other Linker Flags -ObjC
到扩展目标构建设置
我的代码在这里:
https://github.com/jeremyhicks/react-native-keyboard-extension
您似乎没有将您的扩展链接到 react-native。您需要将目前位于容器应用程序目标 (ReactAGKeyboard) Linked Frameworks and Libraries
中的 .a 文件添加到您的扩展目标 (AGKeyboard)。
从默认的 React Native 项目开始,我遵循了创建键盘扩展的指南,并且默认的 Apple 代码可以正常工作。但是当我将 #import <RCTRootView.h>
添加到我的文件时,以下是扩展 ViewController 文件中唯一的代码:
- (void)loadView {
NSURL *jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"ReactAGKeyboard"
initialProperties:nil
launchOptions:nil];
self.view = rootView;
}
构建将失败并出现错误:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_RCTRootView", referenced from: objc-class-ref in KeyboardViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我从这个类似的问题
Other Linker Flags -ObjC
到扩展目标构建设置
我的代码在这里: https://github.com/jeremyhicks/react-native-keyboard-extension
您似乎没有将您的扩展链接到 react-native。您需要将目前位于容器应用程序目标 (ReactAGKeyboard) Linked Frameworks and Libraries
中的 .a 文件添加到您的扩展目标 (AGKeyboard)。