EAS Expo development build succeeds, but production build fails

1.4k Views Asked by At

I am able to build a "development" build using eas build --profile development --platform ios and equally eas build --profile development --platform ios --local

However, production fails using eas build --profile production --platform ios and equally eas build --profile production --platform ios --local

I am using a managed workflow (custom development client) and eas-cli/2.8.0 darwin-arm64 node-v16.15.0, expo version 46

eas.json

{
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal",
      "ios": {
        "simulator": true
      },
      "android": {
        "buildType": "apk"
      }
    },
    "production": {},
    "dev-device": {
      "developmentClient": true,
      "distribution": "internal",
      "android": {
        "buildType": "apk"
      }
    },
    "build": {}
  },
  "cli": {
    "version": ">= 0.48.2"
  }
}

The error message unfortunately doesn't help - the actual error seems to be omitted, as the output is blank right after This must be a bug with

[RUN_FASTLANE]
⚠️  (/Users/michael/Library/Developer/Xcode/DerivedData/<projectname>-gcqxmmzlobuldzayqgevdgwkkbet/Build/Intermediates.noindex/ArchiveIntermediates/<projectname>/BuildProductsPath/Release-iphoneos/ExpoModulesCore/ExpoModulesCore.framework/Headers/EXNativeModulesProxy.h:35:161)

  33 | - (nonnull instancetype)initWithCustomModuleRegistry:(nonnull EXModuleRegistry *)moduleRegistry;
  34 |
> 35 | - (void)callMethod:(NSString *)moduleName methodNameOrKey:(id)methodNameOrKey arguments:(NSArray *)arguments resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject;
     |                                                                                                                                                                 ^ block pointer is missing a nullability type specifier [-Wnullability-completeness]
  36 |
  37 | @end
  38 |

[RUN_FASTLANE] › Linking   <projectname> » <projectname>
[RUN_FASTLANE] ⚠️  ld: method '+moduleName' in category from /Users/michael/Library/Developer/Xcode/DerivedData/<projectname>-gcqxmmzlobuldzayqgevdgwkkbet/Build/Intermediates.noindex/ArchiveIntermediates/<projectname>/BuildProductsPath/Release-iphoneos/ExpoModulesCore/ExpoModulesCore.framework/ExpoModulesCore(ExpoBridgeModule-80aa35da68a4e1df6bb30c3c482a2b01.o) overrides method from class in /Users/michael/Library/Developer/Xcode/DerivedData/<projectname>-gcqxmmzlobuldzayqgevdgwkkbet/Build/Intermediates.noindex/ArchiveIntermediates/<projectname>/BuildProductsPath/Release-iphoneos/ExpoModulesCore/ExpoModulesCore.framework/ExpoModulesCore(ExpoBridgeModule-5220cf34e840cf7b0d23a3f2cb8765f5.o)
[RUN_FASTLANE] ⚠️  ld: method '+UIStatusBarAnimation:' in category from /Users/michael/Library/Developer/Xcode/DerivedData/<projectname>-gcqxmmzlobuldzayqgevdgwkkbet/Build/Intermediates.noindex/ArchiveIntermediates/<projectname>/BuildProductsPath/Release-iphoneos/RNScreens/RNScreens.framework/RNScreens(RNSScreen.o) conflicts with same method from another category
[RUN_FASTLANE] › Generating debug <projectname> » <projectname>.app.dSYM
[RUN_FASTLANE] › Executing <projectname> » Bundle React Native code and images
[RUN_FASTLANE]     the transform cache was reset.
[RUN_FASTLANE]
❌  error: File /Users/michael/Library/Developer/Xcode/DerivedData/<projectname>-gcqxmmzlobuldzayqgevdgwkkbet/Build/Intermediates.noindex/ArchiveIntermediates/<projectname>/BuildProductsPath/Release-iphoneos/<projectname>.app/main.jsbundle does not exist. This must be a bug with


[RUN_FASTLANE]     Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'fmt' from project 'Pods')
[RUN_FASTLANE]     Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'abseil' from project 'Pods')
[RUN_FASTLANE]     Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'Libuv-gRPC' from project 'Pods')
[RUN_FASTLANE]     Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'BoringSSL-GRPC' from project 'Pods')
[RUN_FASTLANE]     Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'RCT-Folly' from project 'Pods')
[RUN_FASTLANE]     Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-bridging' from project 'Pods')
[RUN_FASTLANE]     Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'gRPC-Core' from project 'Pods')
[RUN_FASTLANE]     Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-Codegen' from project 'Pods')
[RUN_FASTLANE]     Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'gRPC-C++' from project 'Pods')
[RUN_FASTLANE]     Run script build phase '[CP-User] Generate app.config for prebuilt Constants.manifest' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'EXConstants' from project 'Pods')
[RUN_FASTLANE] ▸ ** ARCHIVE FAILED **
[RUN_FASTLANE] ▸ The following build commands failed:
[RUN_FASTLANE] ▸    PhaseScriptExecution Bundle\ React\ Native\ code\ and\ images /Users/michael/Library/Developer/Xcode/DerivedData/<projectname>-gcqxmmzlobuldzayqgevdgwkkbet/Build/Intermediates.noindex/ArchiveIntermediates/<projectname>/IntermediateBuildFilesPath/<projectname>.build/Release-iphoneos/<projectname>.build/Script-00DD1BFF1BD5951E006B06BC.sh (in target '<projectname>' from project '<projectname>')
[RUN_FASTLANE] ▸ (1 failure)
[RUN_FASTLANE] ** ARCHIVE FAILED **
[RUN_FASTLANE]
[RUN_FASTLANE]
[RUN_FASTLANE] The following build commands failed:
[RUN_FASTLANE]  PhaseScriptExecution Bundle\ React\ Native\ code\ and\ images /Users/michael/Library/Developer/Xcode/DerivedData/<projectname>-gcqxmmzlobuldzayqgevdgwkkbet/Build/Intermediates.noindex/ArchiveIntermediates/<projectname>/IntermediateBuildFilesPath/<projectname>.build/Release-iphoneos/<projectname>.build/Script-00DD1BFF1BD5951E006B06BC.sh (in target '<projectname>' from project '<projectname>')
[RUN_FASTLANE] (1 failure)
[RUN_FASTLANE] Exit status: 65
[RUN_FASTLANE]
[RUN_FASTLANE] +-------------+-------------------------+
[RUN_FASTLANE] |           Build environment           |
[RUN_FASTLANE] +-------------+-------------------------+
[RUN_FASTLANE] | xcode_path  | /Applications/Xcode.app |
[RUN_FASTLANE] | gym_version | 2.211.0                 |
[RUN_FASTLANE] | sdk         | iPhoneOS16.1.sdk        |
[RUN_FASTLANE] +-------------+-------------------------+
[RUN_FASTLANE]
[RUN_FASTLANE] Looks like fastlane ran into a build/archive error with your project
[RUN_FASTLANE] It's hard to tell what's causing the error, so we wrote some guides on how
[RUN_FASTLANE] to troubleshoot build and signing issues: https://docs.fastlane.tools/codesigning/getting-started/
[RUN_FASTLANE] Before submitting an issue on GitHub, please follow the guide above and make
[RUN_FASTLANE] sure your project is set up correctly.
[RUN_FASTLANE] fastlane uses `xcodebuild` commands to generate your binary, you can see the
[RUN_FASTLANE] the full commands printed out in yellow in the above log.
[RUN_FASTLANE] Make sure to inspect the output above, as usually you'll find more error information there
[RUN_FASTLANE]
[RUN_FASTLANE] [!] Error building the application - see the log above
[RUN_FASTLANE] Error: Fastlane build failed with unknown error. See logs for the "Run fastlane" and "Xcode Logs" phases for more information.
Fastlane errors in most cases are not printed at the end of the output, so you may not find any useful information in the last lines of output when looking for an error message.
[CLEAN_UP_CREDENTIALS] Destroying keychain - /var/folders/lz/vn3ps0t51nv5q2g7q4kppt1r0000gn/T/turtle-v2-8afb540c-5bfc-4d59-886b-a08cb4540d11.keychain
[CLEAN_UP_CREDENTIALS] Removing provisioning profile

Build failed
Fastlane build failed with unknown error. See logs for the "Run fastlane" and "Xcode Logs" phases for more information.
Fastlane errors in most cases are not printed at the end of the output, so you may not find any useful information in the last lines of output when looking for an error message.
    Error: npx exited with non-zero code: 1
❯ eas build --profile production --platform ios --local
1

There are 1 best solutions below

0
On
  1. Turns out, for the build to consider the latest code changes, they need to be committed. Local changes are not sufficient
  2. Buried in some XCode logs an import was missing; the actual error wasn't showing in the logs outputted on the CLI (in my case it was a faulty import, which was fixed, but not committed to git)