You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo 48升级至49后iOS EAS构建报错:无法解析autolinking JSON

Expo 48升级至49后iOS Pod安装失败(JSON解析错误)

升级执行步骤

expo upgrade
npx expo install --fix
expo prebuild
eas build --profile development --platform ios

项目依赖清单

"@config-plugins/react-native-blob-util": "^5.0.0",
"@config-plugins/react-native-pdf": "^5.0.0",
"@gorhom/bottom-sheet": "^4.4.5",
"@react-native-async-storage/async-storage": "1.18.2",
"@react-native-community/netinfo": "9.3.10",
"@react-native-community/slider": "4.4.2",
"@react-navigation/material-bottom-tabs": "^6.2.4",
"@react-navigation/material-top-tabs": "^6.4.0",
"@react-navigation/native": "^6.1.6",
"@react-navigation/native-stack": "^6.9.12",
"@react-navigation/stack": "^6.3.7",
"@shopify/flash-list": "1.4.3",
"bad-words": "^3.0.4",
"dotenv": "^16.0.3",
"expo": "^49.0.0",
"expo-av": "~13.4.1",
"expo-build-properties": "~0.8.3",
"expo-camera": "~13.4.2",
"expo-checkbox": "~2.4.0",
"expo-constants": "~14.4.2",
"expo-dev-client": "~2.4.6",
"expo-document-picker": "~11.5.4",
"expo-image-manipulator": "~11.3.0",
"expo-image-picker": "~14.3.2",
"expo-linear-gradient": "~12.3.0",
"expo-linking": "~5.0.2",
"expo-media-library": "~15.4.1",
"expo-modules-autolinking": "^1.5.0",
"expo-notifications": "~0.20.1",
"expo-screen-capture": "~5.3.0",
"expo-secure-store": "~12.3.1",
"expo-speech": "~11.3.0",
"expo-splash-screen": "~0.20.5",
"expo-status-bar": "~1.6.0",
"expo-store-review": "~6.4.0",
"expo-updates": "~0.18.11",
"expo-video-thumbnails": "~7.4.0",
"expo-web-browser": "~12.3.2",
"fbjs": "^3.0.4",
"firebase": "^9.21.0",
"js-sha256": "^0.9.0",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-native": "0.72.3",
"react-native-blob-util": "^0.17.3",
"react-native-circular-progress-indicator": "^4.4.2",
"react-native-compressor": "^1.6.1",
"react-native-fast-image": "^8.6.3",
"react-native-gesture-handler": "~2.12.0",
"react-native-mmkv": "^2.8.0",
"react-native-pager-view": "6.2.0",
"react-native-paper": "^4.12.5",
"react-native-pdf": "^6.6.2",
"react-native-purchases": "^5.13.0",
"react-native-reanimated": "~3.3.0",
"react-native-redash": "^18.1.0",
"react-native-safe-area-context": "4.6.3",
"react-native-screens": "~3.22.0",
"react-native-svg": "13.9.0",
"react-native-tab-view": "^3.3.2",
"react-native-vector-icons": "^9.2.0",
"react-native-web": "~0.19.6",
"react-query": "^3.39.2",
"react-redux": "^8.0.5",
"redux": "^4.2.0",
"redux-thunk": "^2.4.2",
"throttle-debounce": "^5.0.0",
"tus-js-client": "^3.0.1",
"uuid-random": "^1.3.2"

错误详情

执行EAS Build时,iOS Pod安装环节报错,错误指向Podfile第43行的use_expo_modules!语句:

[!] Invalid Podfile file: Couldn't parse JSON coming from expo-modules-autolinking command:***
{"extraDependencies":{"androidMavenRepos":[],"iosPods":{}},"modules":[{"packageName":"expo","packageVersion":"49.0.7","pods":[{"podName":"Expo","podspecDir":"/Users/expo/workingdir/build/node_modules/expo"}],"swiftModuleNames":["Expo"],"modules":[],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-application","packageVersion":"5.3.0","pods":[{"podName":"EXApplication","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-application/ios"}],"swiftModuleNames":["EXApplication"],"modules":[],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-av","packageVersion":"13.4.1","pods":[{"podName":"EXAV","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-av/ios"}],"swiftModuleNames":["EXAV"],"modules":["VideoViewModule"],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-camera","packageVersion":"13.4.2","pods":[{"podName":"EXCamera","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-camera/ios"}],"swiftModuleNames":["EXCamera"],"modules":["CameraViewModule"],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-constants","packageVersion":"14.4.2","pods":[{"podName":"EXConstants","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-constants/ios"}],"swiftModuleNames":["EXConstants"],"modules":["ConstantsModule"],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-dev-client","packageVersion":"2.4.6","pods":[{"podName":"expo-dev-client","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-dev-client/ios"}],"swiftModuleNames":["expo_dev_client"],"modules":[],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-dev-launcher","packageVersion":"2.4.8","pods":[{"podName":"expo-dev-launcher","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-dev-launcher"}],"swiftModuleNames":["EXDevLauncher"],"modules":["DevLauncherInternal","DevLauncherAuth","RNCSafeAreaProviderManager"],"appDelegateSubscribers":["ExpoDevLauncherAppDelegateSubscriber"],"reactDelegateHandlers":["ExpoDevLauncherReactDelegateHandler"],"debugOnly":true},{"packageName":"expo-dev-menu","packageVersion":"3.1.8","pods":[{"podName":"expo-dev-menu","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-dev-menu"}],"swiftModuleNames":["EXDevMenu"],"modules":["DevMenuModule","DevMenuInternalModule","DevMenuPreferences","RNCSafeAreaProviderManager"],"appDelegateSubscribers":[],"reactDelegateHandlers":["ExpoDevMenuReactDelegateHandler"],"debugOnly":true},{"packageName":"expo-dev-menu-interface","packageVersion":"1.3.0","pods":[{"podName":"expo-dev-menu-interface","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-dev-menu-interface/ios"}],"swiftModuleNames":["expo_dev_menu_interface"],"modules":[],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-document-picker","packageVersion":"11.5.4","pods":[{"podName":"ExpoDocumentPicker","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-document-picker/ios"}],"swiftModuleNames":["ExpoDocumentPicker"],"modules":["DocumentPickerModule"],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-eas-client","packageVersion":"0.6.0","pods":[{"podName":"EASClient","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-eas-client/ios"}],"swiftModuleNames":["EASClient"],"modules":["EASClientModule"],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-file-system","packageVersion":"15.4.3","pods":[{"podName":"EXFileSystem","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-file-system/ios"}],"swiftModuleNames":["EXFileSystem"],"modules":[],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-font","packageVersion":"11.4.0","pods":[{"podName":"EXFont","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-font/ios"}],"swiftModuleNames":["EXFont"],"modules":[],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-image-loader","packageVersion":"4.3.0","pods":[{"podName":"EXImageLoader","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-image-loader/ios"}],"swiftModuleNames":["EXImageLoader"],"modules":[],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-image-manipulator","packageVersion":"11.3.0","pods":[{"podName":"ExpoImageManipulator","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-image-manipulator/ios"}],"swiftModuleNames":["ExpoImageManipulator"],"modules":["ImageManipulatorModule"],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-image-picker","packageVersion":"14.3.2","pods":[{"podName":"ExpoImagePicker","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-image-picker/ios"}],"swiftModuleNames":["ExpoImagePicker"],"modules":["ImagePickerModule"],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-json-utils","packageVersion":"0.7.1","pods":[{"podName":"EXJSONUtils","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-json-utils/ios"}],"swiftModuleNames":["EXJSONUtils"],"modules":[],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-keep-awake","packageVersion":"12.3.0","pods":[{"podName":"ExpoKeepAwake","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-keep-awake/ios"}],"swiftModuleNames":["ExpoKeepAwake"],"modules":["KeepAwakeModule"],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-linear-gradient","packageVersion":"12.3.0","pods":[{"podName":"ExpoLinearGradient","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-linear-gradient/ios"}],"swiftModuleNames":["ExpoLinearGradient"],"modules":["LinearGradientModule"],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-manifests","packageVersion":"0.7.1","pods":[{"podName":"EXManifests","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-manifests/ios"}],"swiftModuleNames":["EXManifests"],"modules":[],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-media-library","packageVersion":"15.4.1","pods":[{"podName":"EXMediaLibrary","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-media-library/ios"}],"swiftModuleNames":["EXMediaLibrary"],"modules":[],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-modules-core","packageVersion":"1.5.9","pods":[{"podName":"ExpoModulesCore","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-modules-core"}],"swiftModuleNames":["ExpoModulesCore"],"modules":[],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-notifications","packageVersion":"0.20.1","pods":[{"podName":"EXNotifications","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-notifications/ios"}],"swiftModuleNames":["EXNotifications"],"modules":[],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-screen-capture","packageVersion":"5.3.0","pods":[{"podName":"EXScreenCapture","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-screen-capture/ios"}],"swiftModuleNames":["EXScreenCapture"],"modules":[],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-secure-store","packageVersion":"12.3.1","pods":[{"podName":"ExpoSecureStore","podspecDir":"/Users/expo/workingdir/build/node_modules/expo-secure-store/ios"}],"swiftModuleNames":["ExpoSecureStore"],"modules":["SecureStoreModule"],"appDelegateSubscribers":[],"reactDelegateHandlers":[],"debugOnly":false},{"packageName":"expo-speech","packageVersion":"11.3.0","pods":[{"podName":"ExpoSpeech","podspecDir":"/Users/expo/worki
'.
from /Users/expo/workingdir/build/ios/Podfile:43
target 'appname' do
use_expo_modules! !!! error here !!!
config = use_native_modules!

从日志可见,expo-modules-autolinking返回的JSON数据被截断,导致解析失败。


解决方法

  • 清理依赖缓存并重装
    rm -rf node_modules package-lock.json yarn.lock
    npm install
    
  • 重置预构建文件
    rm -rf ios android
    expo prebuild --clean
    
  • 匹配expo-modules-autolinking版本
    将package.json中expo-modules-autolinking的版本锁定为1.5.9(与项目中expo-modules-core版本一致),然后重新执行依赖安装。
  • 检查第三方插件兼容性
    确认@config-plugins/react-native-blob-util、@config-plugins/react-native-pdf等第三方配置插件是否支持Expo 49,若存在版本兼容问题,更新至最新兼容版本。
  • 本地排查错误
    在本地执行cd ios && pod install,复现错误后可更直观地定位具体模块的问题。

内容的提问来源于stack exchange,提问作者vana22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 02:58:11