React Native 世博EAS大楼使用未声明的标识符"Promise"

but5z9lq  于 2022-11-30  发布在  React
关注(0)|答案(1)|浏览(139)

我正在迁移我的管理世博会React原生项目到EAS构建生态系统,并得到一个奇怪的错误,我没有看到任何其他地方时,谷歌周围。
执行组建的Fastlane部分时发生下列错误:

❌  (node_modules/expo-modules-core/ios/JSI/ExpoModulesProxySpec.mm:12:118)

10 | using PromiseInvocationBlock = void (^)(RCTPromiseResolveBlock resolveWrapper, RCTPromiseRejectBlock rejectWrapper);
11 | 
> 12 | static void callPromiseSetupWithBlock(jsi::Runtime &runtime, std::shared_ptr<CallInvoker> jsInvoker, std::shared_ptr<Promise> promise, PromiseInvocationBlock setupBlock)
    |                                                                                                                      ^ use of undeclared identifier 'Promise'
13 | {
14 |   auto weakResolveWrapper = CallbackWrapper::createWeak(promise->resolve_.getFunction(runtime), runtime, jsInvoker);
15 |   auto weakRejectWrapper = CallbackWrapper::createWeak(promise->reject_.getFunction(runtime), runtime, jsInvoker);
2543

❌  (node_modules/expo-modules-core/ios/JSI/ExpoModulesProxySpec.mm:14:29)

12 | static void callPromiseSetupWithBlock(jsi::Runtime &runtime, std::shared_ptr<CallInvoker> jsInvoker, std::shared_ptr<Promise> promise, PromiseInvocationBlock setupBlock)
13 | {
> 14 |   auto weakResolveWrapper = CallbackWrapper::createWeak(promise->resolve_.getFunction(runtime), runtime, jsInvoker);
    |                             ^ incomplete type 'facebook::react::CallbackWrapper' named in nested name specifier
15 |   auto weakRejectWrapper = CallbackWrapper::createWeak(promise->reject_.getFunction(runtime), runtime, jsInvoker);
16 | 
17 |   __block BOOL resolveWasCalled = NO;
2544

❌  (node_modules/expo-modules-core/ios/JSI/ExpoModulesProxySpec.mm:15:28)

13 | {
14 |   auto weakResolveWrapper = CallbackWrapper::createWeak(promise->resolve_.getFunction(runtime), runtime, jsInvoker);
> 15 |   auto weakRejectWrapper = CallbackWrapper::createWeak(promise->reject_.getFunction(runtime), runtime, jsInvoker);
    |                            ^ incomplete type 'facebook::react::CallbackWrapper' named in nested name specifier
16 | 
17 |   __block BOOL resolveWasCalled = NO;
18 |   __block BOOL rejectWasCalled = NO;
2545

❌  (node_modules/expo-modules-core/ios/JSI/ExpoModulesProxySpec.mm:95:91)

93 | 
94 |   // The function that is invoked as a setup of the JS `Promise`.
> 95 |   auto promiseSetupFunc = [expoModulesProxy, args](jsi::Runtime &runtime, std::shared_ptr<Promise> promise) {
    |                                                                                           ^ use of undeclared identifier 'Promise'
96 |     callPromiseSetupWithBlock(runtime, expoModulesProxy->jsInvoker_, promise, ^(RCTPromiseResolveBlock resolver, RCTPromiseRejectBlock rejecter) {
97 |       NSString *moduleName = convertJSIStringToNSString(runtime, args[0].getString(runtime));
98 |       NSString *methodName = convertJSIStringToNSString(runtime, args[1].getString(runtime));
2546

❌  error:

正如你所看到的,它告诉我承诺是未定义的。调用栈看起来像是试图加载承诺,而它打破了,但我不太确定。
这是我的包裹. json:

{
"scripts": {
  "start": "expo start --dev-client",
  "android": "expo run:android",
  "ios": "expo run:ios",
  "web": "expo start --web",
  "eject": "expo eject",
  "test": "jest"
},
"dependencies": {
  "@expo/config-plugins": "^5.0.1",
  "@expo/match-media": "0.3.0",
  "@expo/webpack-config": "^0.17.0",
  "@react-native-async-storage/async-storage": "~1.17.3",
  "@react-native-community/datetimepicker": "6.3.2",
  "@react-native-community/viewpager": "5.0.11",
  "@react-native-firebase/app": "^15.4.0",
  "@react-native-picker/picker": "2.4.4",
  "@react-navigation/bottom-tabs": "^6.1.0",
  "@react-navigation/drawer": "^6.4.2",
  "@react-navigation/native": "^6.0.10",
  "@react-navigation/stack": "^6.2.1",
  "@stripe/react-stripe-js": "^1.10.0",
  "@stripe/stripe-js": "^1.35.0",
  "@stripe/stripe-react-native": "0.18.1",
  "eas-cli": "^2.1.0",
  "expo": "~46.0.9",
  "expo-auth-session": "~3.7.1",
  "expo-av": "~12.0.4",
  "expo-calendar": "~10.3.0",
  "expo-checkbox": "~2.2.0",
  "expo-dev-client": "~1.2.1",
  "expo-device": "~4.3.0",
  "expo-facebook": "~12.2.0",
  "expo-google-sign-in": "~11.0.0",
  "expo-image-manipulator": "~10.4.0",
  "expo-image-picker": "~13.3.1",
  "expo-linear-gradient": "~11.4.0",
  "expo-modules-autolinking": "^0.10.3",
  "expo-notifications": "~0.16.1",
  "expo-random": "~12.3.0",
  "expo-screen-orientation": "~4.3.0",
  "expo-splash-screen": "~0.16.2",
  "expo-status-bar": "~1.4.0",
  "expo-updates": "~0.14.5",
  "express": "^4.17.1",
  "firebase": "^9.6.7",
  "firebase-functions": "^3.13.1",
  "google-map-react": "^2.1.10",
  "google-maps-react": "^2.0.6",
  "idb": "^7.0.1",
  "modal-enhanced-react-native-web": "^0.2.0",
  "modal-react-native-web": "^0.2.0",
  "ngeohash": "^0.6.3",
  "react": "18.0.0",
  "react-calendar": "^3.1.0",
  "react-collapsible": "^2.10.0",
  "react-dom": "18.1.0",
  "react-dropdown": "^1.10.0",
  "react-google-autocomplete": "^2.6.1",
  "react-helmet": "^6.1.0",
  "react-native": "0.69.1",
  "react-native-anchor-point": "^1.0.1",
  "react-native-calendar-strip": "^2.0.9",
  "react-native-calendars": "^1.1285.0",
  "react-native-collapsible": "^1.6.0",
  "react-native-date-picker": "^4.2.1",
  "react-native-dropdown-picker": "^5.4.2",
  "react-native-elements": "^3.0.0-alpha.1",
  "react-native-gesture-handler": "~2.6.0",
  "react-native-gifted-chat": "^1.0.4",
  "react-native-google-places-autocomplete": "^2.4.1",
  "react-native-keyboard-aware-scroll-view": "^0.9.5",
  "react-native-maps": "1.3.1",
  "react-native-material-ripple": "^0.9.1",
  "react-native-modal": "^13.0.1",
  "react-native-paypal": "^4.1.0",
  "react-native-ratings": "^8.0.3",
  "react-native-read-more-text": "^1.1.2",
  "react-native-reanimated": "^2.2.1",
  "react-native-render-html": "^6.3.4",
  "react-native-responsive-ui": "^2.1.1",
  "react-native-screens": "~3.17.0",
  "react-native-svg": "13.1.0",
  "react-native-uuid": "^2.0.1",
  "react-native-video": "^5.2.0",
  "react-native-web": "~0.18.7",
  "react-native-web-hover": "^0.2.9",
  "react-native-web-maps": "^0.3.0",
  "react-native-webview": "11.23.1",
  "react-number-format": "^4.4.1",
  "react-paypal-button-v2": "^2.6.2",
  "react-pro-sidebar": "^0.7.1",
  "react-responsive": "^8.1.0",
  "react-ripples": "^2.2.1",
  "react-select": "^5.4.0",
  "react-time-picker": "^4.5.0",
  "save": "^2.4.0",
  "expo-build-properties": "~0.3.0"
},
"devDependencies": {
  "@babel/cli": "^7.12.10",
  "@babel/core": "^7.18.6",
  "babel-preset-expo": "~9.2.0",
  "jest": "^29.0.3",
  "typescript": "^4.6.3"
},
"private": true,
"name": "React",
"version": "1.0.0"
}

cocopods似乎安装成功了。有人知道是什么导致了这个错误吗?

2nc8po8w

2nc8po8w1#

我可以通过从我的apps.json文件的plugins部分删除@react-native-firebase/app并将useFrameworks标志更改为dynamic来修复此问题:

"plugins": [
  "@react-native-firebase/app", //remove this
  [
    "expo-build-properties",
      {
        "ios": {
           //change this from static to dynamic
           "useFrameworks": "dynamic"
         }
      }
   ]
]

相关问题