expo: Upgrading to SDK44 breaks EAS build

Summary

After upgrading to the EAS Build I’ getting the following errors:

`› Compiling expo-cellular Pods/ExpoCellular » CellularModule.swift 1455

❌ (node_modules/expo-cellular/ios/CellularModule.swift:12:5)

10 | } 11 |

12 | function(“getCellularGenerationAsync”) { () -> Int in | ^ cannot find ‘function’ in scope 13 | Self.currentCellularGeneration().rawValue 14 | } 15 | 1456▸ ** ARCHIVE FAILED ** 1457▸ The following build commands failed: 1458▸ CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler (in target ‘ExpoLocalization’ from project ‘Pods’) 1459▸ CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler (in target ‘ExpoLinearGradient’ from project ‘Pods’) 1460▸ CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler (in target ‘ExpoCellular’ from project ‘Pods’) 1461▸ CompileSwift normal arm64 /Users/expo/workingdir/build/node_modules/expo-cellular/ios/CellularModule.swift (in target ‘ExpoCellular’ from project ‘Pods’) 1462▸ (4 failures) 1463 ** ARCHIVE FAILED ** 1464 1465 1466The following build commands failed: 1467 CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler (in target ‘ExpoLocalization’ from project ‘Pods’) 1468 CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler (in target ‘ExpoLinearGradient’ from project ‘Pods’) 1469 CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler (in target ‘ExpoCellular’ from project ‘Pods’) 1470 CompileSwift normal arm64 /Users/expo/workingdir/build/node_modules/expo-cellular/ios/CellularModule.swift (in target ‘ExpoCellular’ from project ‘Pods’) 1471 (4 failures) 1472 Exit status: 65 1473 1474 ±------------±------------------------+ 1475 | Build environment | 1476 ±------------±------------------------+ 1477 | xcode_path | /Applications/Xcode.app | 1478 | gym_version | 2.185.1 | 1479 | sdk | iPhoneOS15.0.sdk | 1480 ±------------±------------------------+`

I have also tried to switch back to older library version for these libraries, but the I’m getting a different error:

` ❌ (node_modules/expo/ios/EXAppDefinesLoader.m:13:4)

11 | { 12 | BOOL APP_DEBUG;

13 | [EXAppDefines load:@{ | ^ use of undeclared identifier ‘EXAppDefines’ 14 | #if DEBUG 15 | @“APP_DEBUG”: @(YES), 16 | #else 1464 › Packaging @unimodules/core Pods/UMCore » libUMCore.a 1465 › Compiling expo-web-browser Pods/EXWebBrowser » EXWebBrowser.m 1466 › Compiling expo-web-browser Pods/EXWebBrowser » EXWebBrowser-dummy.m 1467 › Executing expo-updates Pods/EXUpdates » [CP-User] Generate app.manifest for expo-updates 1468 ▸ ** ARCHIVE FAILED ** 1469 ▸ The following build commands failed: 1470 ▸ CompileC /Users/expo/Library/Developer/Xcode/DerivedData/DEC11220-fqdkxzkzmkywembpwxlxsmfzxxxr/Build/Intermediates.noindex/ArchiveIntermediates/DEC11220/IntermediateBuildFilesPath/Pods.build/Debug-iphoneos/Expo.build/Objects-normal/arm64/EXAppDefinesLoader.o /Users/expo/workingdir/build/node_modules/expo/ios/EXAppDefinesLoader.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target ‘Expo’ from project ‘Pods’) 1471 ▸ (1 failure) 1472 ** ARCHIVE FAILED ** 1473 1474 1475 The following build commands failed: 1476 CompileC /Users/expo/Library/Developer/Xcode/DerivedData/DEC11220-fqdkxzkzmkywembpwxlxsmfzxxxr/Build/Intermediates.noindex/ArchiveIntermediates/DEC11220/IntermediateBuildFilesPath/Pods.build/Debug-iphoneos/Expo.build/Objects-normal/arm64/EXAppDefinesLoader.o /Users/expo/workingdir/build/node_modules/expo/ios/EXAppDefinesLoader.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target ‘Expo’ from project ‘Pods’) 1477 (1 failure) 1478 Exit status: 65`

Managed or bare workflow? If you have ios/ or android/ directories in your project, the answer is bare!

managed

What platform(s) does this occur on?

Android, iOS

SDK Version (managed workflow only)

44

Environment

Expo CLI 5.0.1 environment info: System: OS: macOS 12.0.1 Shell: 5.8 - /bin/zsh Binaries: Node: 14.17.5 - /usr/local/opt/nvm/versions/node/v14.17.5/bin/node Yarn: 1.22.4 - /usr/local/bin/yarn npm: 8.3.0 - /usr/local/opt/nvm/versions/node/v14.17.5/bin/npm Watchman: 2021.09.13.00 - /usr/local/bin/watchman Managers: CocoaPods: 1.10.1 - /usr/local/bin/pod SDKs: iOS SDK: Platforms: DriverKit 21.2, iOS 15.2, macOS 12.1, tvOS 15.2, watchOS 8.3 Android SDK: API Levels: 26, 27, 29, 30 Build Tools: 27.0.3, 28.0.3, 29.0.2, 29.0.3, 30.0.2 System Images: android-29 | Intel x86 Atom_64, android-29 | Google APIs Intel x86 Atom, android-29 | Google Play Intel x86 Atom, android-31 | Intel x86 Atom_64 IDEs: Android Studio: 4.0 AI-193.6911.18.40.6514223 Xcode: 13.2/13C90 - /usr/bin/xcodebuild npmPackages: babel-preset-expo: 9.0.1 => 9.0.1 expo: ^44.0.0 => 44.0.0 react: 17.0.1 => 17.0.1 react-dom: 17.0.1 => 17.0.1 react-native: 0.64.3 => 0.64.3 react-native-web: 0.17.1 => 0.17.1 npmGlobalPackages: eas-cli: 0.41.1 expo-cli: 5.0.1 Expo Workflow: managed

Reproducible demo

eas build --profile development --platform android or eas build --profile development --platform iOS

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 26 (11 by maintainers)

Most upvoted comments

yeah, I’m not sure what’s wrong TBH, but I’ll keep debugging, thank you.

Strange. What I did was creating a new project and transferring files

yeah, I’m not sure what’s wrong TBH, but I’ll keep debugging, thank you.

Ah maybe I forgot to mention that you also need the latest eas-cli

uninstall expo & eas globally and installing them back fixed that issue.

it’s failed again eas, I’ve updated my package.json to have 44.0.1 as the expo package version & will try again.

EAS Build also has the option for --clear-cache

expo upgrade command or change the version in the package.json to 44.0.1

when I switched to SDK44 it seems like it switched somehow to bare workflow.

perhaps you ran expo run:[ios|android]? if you have ios or android directories in your project, which are generated via expo prebuild when you run those commands, your project is “bare”. you can just delete the ios and android directories. https://expo.fyi/prebuild-cleanup