我正在迁移我的管理世博会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似乎安装成功了。有人知道是什么导致了这个错误吗?
1条答案
按热度按时间2nc8po8w1#
我可以通过从我的
apps.json
文件的plugins部分删除@react-native-firebase/app
并将useFrameworks
标志更改为dynamic
来修复此问题: