objective-c - 将 react-native 应用程序作为另一个应用程序中的视图控制器运行时发送到类的无法识别的选择器
问题描述
我们有一个 react-native 应用程序,我们将其作为独立应用程序开发,然后我们有一个 pod,它使用本机入口点导出应用程序。react-native-awesome-card-io
当我们将应用程序作为独立部分(metro bundler)运行时,我们应用程序的一部分使用效果很好。我们使用可可豆荚来管理 react-native 链接通常为我们做的依赖。我们正在使用react-native: 57.8
但必须升级到59.0
才能将我们的插件集成到 android 应用程序中,而无需添加 32/64 位过滤。无论如何,我们有一个示例应用程序,它只有一个按钮,当按下按钮时,该操作将采用我们创建的视图控制器presentModalViewController
并被触发。升级 react-native 后出现的问题,当我们scanCard
在 react-native js 中调用 press 函数时,出现以下错误
它以前运行良好,如果我们将应用程序作为独立的 react-native 应用程序运行,它可以工作,但是当我们集成它时,问题就出现了。这是我们如何instantiate
使用 react-native 插件。
注意:我们的 Objective-c 和 swift 示例消费者应用程序都失败了。我没有在网上找到任何东西。
我们如何在示例应用程序中加载视图控制器
- (IBAction)launchPaciolanSDKAction:(UIButton *)sender {
printf("Launching PaciolanSDK ...");
UIViewController *viewController = nil;
viewController = [[PaciolanSDKViewController alloc] initWithString::""];
[self presentModalViewController:viewController animated:YES];
}
错误:
Exception 'Please add -ObjC to 'Other Linker Flags' in your project settings. (+[NSObject testForObjCLinkerFlag]: unrecognized selector sent to class 0x1dbbd7eb0)' was thrown while invoking scanCard on target CardIOModule with params (
{
hideCardIOLogo = 1;
requireCardholderName = 1;
suppressManualEntry = 1;
usePaypalActionbarIcon = 0;
},
3544,
3545
)
callstack: (
0 CoreFoundation 0x00000001a1cf5ebc <redacted> + 252
1 libobjc.A.dylib 0x00000001a0ec5a50 objc_exception_throw + 56
2 CoreFoundation 0x00000001a1bfc484 <redacted> + 0
3 RNAwesomeCardIO 0x000000010385bf6c -[CardIOPaymentViewController initWithPaymentDelegate:scanningEnabled:] + 660
4 RNAwesomeCardIO 0x00000001038598bc -[RCTCardIOModule scanCard:resolver:rejecter:] + 236
5 CoreFoundation 0x00000001a1cfd610 <redacted> + 144
6 CoreFoundation 0x00000001a1bdb340 <redacted> + 292
7 CoreFoundation 0x00000001a1bdbf24 <redacted> + 60
8 React 0x0000000103ec3d10 -[RCTModuleMethod invokeWithBridge:module:arguments:] + 2064
9 React 0x0000000103ecfe2c _ZN8facebook5reactL11invokeInnerEP9RCTBridgeP13RCTModuleDatajRKN5folly7dynamicE + 664
10 React 0x0000000103ecf99c _ZZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEiENK3$_0clEv + 144
11 React 0x0000000103ecf900 ___ZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEi_block_invoke + 28
12 libdispatch.dylib 0x000000010494f824 _dispatch_call_block_and_release + 24
13 libdispatch.dylib 0x0000000104950dc8 _dispatch_client_callout + 16
14 libdispatch.dylib 0x000000010495ea78 _dispatch_main_queue_callback_4CF + 1360
15 CoreFoundation 0x00000001a1c85ce4 <redacted> + 12
16 CoreFoundation 0x00000001a1c80bac <redacted> + 1964
17 CoreFoundation 0x00000001a1c800e0 CFRunLoopRunSpecific + 436
18 GraphicsServices 0x00000001a3ef9584 GSEventRunModal + 100
19 UIKitCore 0x00000001cefe0c00 UIApplicationMain + 212
20 sample 0x0000000102f0e1fc main + 124
21 libdyld.dylib 0x00000001a173ebb4 <redacted> + 4
)
解决方案
检查您发送到 api 的参数和标头。此错误主要发生在我们发送错误的参数时。
推荐阅读
- html - 添加大内容时 CSS 网格超出指定大小
- haskell - 在 Polysemy 中运行一次 NonDet 效果
- css - Scss 样式不适用于 Vue 组件
- node.js - 尝试在不受支持的状态下添加数据
- reactjs - 未找到模块 - webpack ts-loader @material-ui
- vue.js - Vue.js 简洁干净的数据语法
- python - 调用 XGBoost .fit 后的 Python sklearn NotFittedError
- r - 如果嵌套列表的双括号在其美元符号之前有什么区别?
- windows - CurveLab 的 Python 包装器?当我尝试在我的python中导入pyct模块时,我得到了这个“AttributeError:模块'pyct'没有属性'fdct2'”
- hive - 无法在没有动态分区的情况下将空分区添加/更新到配置单元外部表