expo / expo/eas-cli

sh: eas-cli-local-build-plugin: command not found

Open
#2,787 1 comment 1 reaction 0 assignees View on GitHub
eas build needs review
Dominant language
TypeScript
Stars
1.4k
Forks
236
Avg merge
3d 1h
Merged PRs (30d)
91

Description

### Build/Submit details page URL

_No response_

### Summary

When building my app with `eas build --platform ios --local`, the command fails with the following error:

```
sh: eas-cli-local-build-plugin: command not found
```

### Managed or bare?

Managed

### Environment

Environment

jonas@Jonass-Air expo-31875-repro % npx expo-env-info

expo-env-info 1.2.1 environment info:
System:
OS: macOS 14.6
Shell: 5.9 - /bin/zsh
Binaries:
Node: 21.6.0 - ~/.nvm/versions/node/v21.6.0/bin/node
Yarn: 1.22.22 - /opt/homebrew/bin/yarn
npm: 10.2.4 - ~/.nvm/versions/node/v21.6.0/bin/npm
Watchman: 2024.12.02.00 - /opt/homebrew/bin/watchman
Managers:
CocoaPods: 1.15.2 - /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 24.2, iOS 18.2, macOS 15.2, tvOS 18.2, visionOS 2.2, watchOS 11.2
IDEs:
Android Studio: 2021.3 AI-213.7172.25.2113.9123335
Xcode: 16.2/16C5032a - /usr/bin/xcodebuild
npmPackages:
expo: ~52.0.20 => 52.0.21
expo-router: ~4.0.14 => 4.0.14
react: 18.3.1 => 18.3.1
react-dom: 18.3.1 => 18.3.1
react-native: 0.76.5 => 0.76.5
react-native-web: ~0.19.13 => 0.19.13
npmGlobalPackages:
eas-cli: 14.2.0
Expo Workflow: managed

jonas@Jonass-Air expo-31875-repro % npx expo-doctor
Enabled experimental React Native Directory checks. Unset the EXPO_DOCTOR_ENABLE_DIRECTORY_CHECK environment variable to disable this check.
✔ Check package.json for common issues
✔ Check Expo config for common issues
✔ Check native tooling versions
✔ Check if the project meets version requirements for submission to app stores
✔ Check for common project setup issues
✔ Check dependencies for packages that should not be installed directly
✔ Check for app config fields that may not be synced in a non-CNG project
✔ Check for issues with Metro config
✔ Check npm/ yarn versions
✔ Validate packages against React Native Directory package metadata
✔ Check for legacy global CLI installed locally
✔ Check that native modules do not use incompatible support packages
✖ Check that native modules use compatible support package versions for installed Expo SDK
✔ Check Expo config (app.json/ app.config.js) schema
✔ Check that packages match versions required by installed Expo SDK

Detailed check results:

Expected package @expo/config-plugins@~9.0.0
Found invalid:
@expo/config-plugins@7.9.2
(for more info, run: npm why @expo/config-plugins)
Advice: Upgrade dependencies that are using the invalid package versions.

One or more checks failed, indicating possible issues with the project.

### Error output

Error output

jonas@Jonass-Air expo-31875-repro % EXPO_DEBUG=true eas build --platform ios --local
(node:26536) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Error: Cannot find module 'expo-dev-client/package.json'
Require stack:
- /Users/jonas/git/tests/expo-31875-repro/noop.js
at Module._resolveFilename (node:internal/modules/cjs/loader:1149:15)
at resolveFileName (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/node_modules/resolve-from/index.js:29:39)
at resolveFrom (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/node_modules/resolve-from/index.js:43:9)
at module.exports (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/node_modules/resolve-from/index.js:46:47)
at isExpoDevClientInstalledAsync (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/build/build/utils/devClient.js:77:36)
at ensureExpoDevClientInstalledForDevClientBuildsAsync (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/build/build/utils/devClient.js:17:15)
at runBuildAndSubmitAsync (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/build/build/runBuildAndSubmit.js:79:79)
at async Build.runAsync (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/build/commands/build/index.js:121:9)
at async Build.run (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/build/commandUtils/EasCommand.js:168:16)
at async Build._run (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/node_modules/@oclif/core/lib/command.js:80:22) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/Users/jonas/git/tests/expo-31875-repro/noop.js' ]
}
We detected that you are building for the "store" distribution. Resolving the environment for environment variables used during the build to "production". Set the "environment" field in the build profile if you want to specify the environment manually.
No environment variables with visibility "Plain text" and "Sensitive" found for the "production" environment on EAS servers.

- Incrementing buildNumber from 3 to 4.
✔ Incremented buildNumber from 3 to 4.
✔ Using remote iOS credentials (Expo server)

If you provide your Apple account credentials we will be able to generate all necessary build credentials and fully validate them.
This is optional, but without Apple account access you will need to provide all the missing values manually and we can only run minimal validation on them.
✔ Do you want to log in to your Apple account? … yes

› Log in to your Apple Developer account to continue
✔ Apple ID: … yolpsoftware@gmail.com
› Restoring session /Users/jonas/.app-store/auth/yolpsoftware@gmail.com/cookie
› Team Yolp Softwaredesign GmbH (DN7WW3HPZ4)
› Provider Yolp Softwaredesign GmbH (1334023)
✔ Logged in Local session
- Linking bundle identifier ch.yolp.expo31875repro
✔ Bundle identifier registered ch.yolp.expo31875repro
- Syncing capabilities
Current remote capabilities:
[
{
"context": {
"providerId": 1334023,
"teamId": "DN7WW3HPZ4"
},
"id": "37Z22BF3FP_IN_APP_PURCHASE",
"attributes": {
"ownerType": "BUNDLE",
"settings": null,
"editable": true,
"inputs": null,
"enabled": true,
"responseId": "4842fcd6-e127-403e-b302-eb828f516501"
}
}
]

Current local entitlements:
{}
Existing to disable: [ '37Z22BF3FP_IN_APP_PURCHASE' ]
✔ Synced capabilities: No updates
- Syncing capabilities identifiers
No capability identifiers need to be updated
✔ Synced capability identifiers: No updates
- Fetching Apple distribution certificates
✔ Fetched Apple distribution certificates
- Fetching Apple provisioning profiles
✔ Fetched Apple provisioning profiles

Project Credentials Configuration

Project @yolpsoftware/expo-31875-repro
Bundle Identifier ch.yolp.expo31875repro

App Store Configuration

Distribution Certificate
Serial Number 56D12A4887337E2CD9D187FEBA422E58
Expiration Date Tue, 17 Jun 2025 12:49:03 GMT+0200
Apple Team DN7WW3HPZ4 (Yolp Softwaredesign GmbH (Company/Organization))
Updated 6 months ago

Provisioning Profile
Developer Portal ID UCMW968BC6
Status active
Expiration Tue, 17 Jun 2025 12:49:03 GMT+0200
Apple Team DN7WW3HPZ4 (Yolp Softwaredesign GmbH (Company/Organization))
Updated 43 minutes ago

All credentials are ready to build @yolpsoftware/expo-31875-repro (ch.yolp.expo31875repro)

- Compressing project files
- Computing project fingerprint
✔ Computed project fingerprint
Running local build, using local-build-plugin {
command: 'npx',
args: [
'-y',
'eas-cli-local-build-plugin@1.0.152',
'eyJqb2IiOnsidHlwZSI6Im1hbmFnZWQiLCJwbGF0Zm9ybSI6ImlvcyIsInByb2plY3RBcmNoaXZlIjp7InR5cGUiOiJQQVRIIiwicGF0aCI6Ii92YXIvZm9sZGVycy9mbi92Nm5oaHh6NTV2emJ2ZDEwMjdnN2o4Y2gwMDAwZ24vVC9lYXMtY2xpLW5vZGVqcy9iOWY1MWEwNi0yNWJkLTRjMzYtODI0NS0yYmZjYzJhOGU5NDgudGFyLmd6In0sInByb2plY3RSb290RGlyZWN0b3J5IjoiLiIsImJ1aWxkZXJFbnZpcm9ubWVudCI6e30sImNhY2hlIjp7ImRpc2FibGVkIjpmYWxzZSwicGF0aHMiOltdLCJjbGVhciI6ZmFsc2V9LCJzZWNyZXRzIjp7ImJ1aWxkQ3JlZGVudGlhbHMiOnsiZXhwbzMxODc1cmVwcm8iOnsicHJvdmlzaW9uaW5nUHJvZmlsZUJhc2U2NCI6Ik1JSXZ2QVlKS29aSWh2Y05BUWNDb0lJdnJUQ0NMNmtDQVFFeEN6QUpCZ1VyRGdNQ0dnVUFNSUlmeVFZSktvWklodmNOQVFjQm9JSWZ1Z1NDSDdZOFAzaHRiQ0IyWlhKemFXOXVQU0l4TGpBaUlHVnVZMjlrYVc1blBTSlZWRVl0T0NJL1BnbzhJVVJQUTFSWlVFVWdjR3hwYzNRZ1VGVkNURWxESUNJdEx5OUJjSEJzWlM4dlJGUkVJRkJNU1ZOVUlERXVNQzh2UlU0aUlDSm9kSFJ3T2k4dmQzZDNMbUZ3Y0d4bExtTnZiUzlFVkVSekwxQnliM0JsY25SNVRHbHpkQzB4TGpBdVpIUmtJajRLUEhCc2FYTjBJSFpsY25OcGIyNDlJakV1TUNJK0NqeGthV04wUGdvSlBHdGxlVDVCY0hCSlJFNWhiV1U4TDJ0bGVUNEtDVHh6ZEhKcGJtYytSWGh3YnlBek1UZzNOU0JTWlhCeWJ6d3ZjM1J5YVc1blBnb0pQR3RsZVQ1QmNIQnNhV05oZEdsdmJrbGtaVzUwYVdacFpYSlFjbVZtYVhnOEwydGxlVDRLQ1R4aGNuSmhlVDRLQ1R4emRISnBibWMrUkU0M1YxY3pTRkJhTkR3dmMzUnlhVzVuUGdvSlBDOWhjbkpoZVQ0S0NUeHJaWGsrUTNKbFlYUnBiMjVFWVhSbFBDOXJaWGsrQ2drOFpHRjBaVDR5TURJMExURXlMVEl4VkRFeU9qTXpPak14V2p3dlpHRjBaVDRLQ1R4clpYaytVR3hoZEdadmNtMDhMMnRsZVQ0S0NUeGhjbkpoZVQ0S0NRazhjM1J5YVc1blBtbFBVend2YzNSeWFXNW5QZ29KQ1R4emRISnBibWMrZUhKUFV6d3ZjM1J5YVc1blBnb0pDVHh6ZEhKcGJtYytkbWx6YVc5dVQxTThMM04wY21sdVp6NEtDVHd2WVhKeVlYaytDZ2s4YTJWNVBrbHpXR052WkdWTllXNWhaMlZrUEM5clpYaytDZ2s4Wm1Gc2MyVXZQZ29KUEd0bGVUNUVaWFpsYkc5d1pYSkRaWEowYVdacFkyRjBaWE04TDJ0bGVUNEtDVHhoY25KaGVUNEtDUWs4WkdGMFlUNU5TVWxHZVhwRFEwSk1UMmRCZDBsQ1FXZEpVVlowUlhGVFNXTjZabWw2V2pCWlppdDFhMGwxVjBSQlRrSm5hM0ZvYTJsSE9YY3dRa0ZSYzBaQlJFSXhUVlZSZDFGbldVUldVVkZFUkVSMFFtTklRbk5hVTBKWVlqTktjMXBJWkhCYVIxVm5Va2RXTWxwWGVIWmpSMVo1U1VaS2JHSkhSakJoVnpsMVkzbENSRnBZU2pCaFYxcHdXVEpHTUdGWE9YVkpSVVl4WkVkb2RtTnRiREJsVkVWTVRVRnJSMEV4VlVWRGQzZERVbnBOZUVWNlFWSkNaMDVXUWtGdlRVTnJSbmRqUjNoc1NVVnNkVmw1TkhoRGVrRktRbWRPVmtKQldWUkJiRlpVVFVJMFdFUlVTVEJOUkZsNFRucEZkMDVFYTNkT1JtOVlSRlJKTVUxRVdYaE9la1YzVGtScmQwMHhiM2RuWVZsNFIycEJXVUpuYjBwcmFXRktheTlKYzFwQlJVSkVRWEJGVkdwa1dGWjZUa2xWUm04d1RWVk5kMUZSV1VSV1VWRkVSRVJ3Y0ZWSGFIWmliVlZuVWtkc2VtUklTbkJaYmxZd1lWYzVkVTlwUWxwaU1uaDNTVVpPZGxwdVVqTlpXRXBzV2tkV2VtRlhaSFZKUldSMFdXdG5aMHRGVWs5T01XUllUVEJvVVZkcVVYQk5VazEzUlZGWlJGWlJVVXhFUVhCRlZHcGtXRlo2VGtsVlJtOHdUVk5GZDBoM1dVUldVVkZMUkVKb1dtSXllSGRKUms1MldtNVNNMWxZU214YVIxWjZZVmRrZFVsRlpIUlphMmQ0UTNwQlNrSm5UbFpDUVZsVVFXeFdWRTFKU1VKSmFrRk9RbWRyY1docmFVYzVkekJDUVZGRlJrRkJUME5CVVRoQlRVbEpRa05uUzBOQlVVVkJlV3g2YnpGdVpuazBXV2xxU1dsMVpXaE1PVlowSzNwdVIxQnhOQzlaTDJFeVlsQlhNRUUwYVM5d0wzSjZTV2R2WlhCb2JHSldRVkpyZDJsRFZXUkhkVlp5UmpCeE0wWlJiVFZKZG5rclVucFZUMjV0WVVOTE4zUlZOVXgyYVVWWk9WUjNhamN3ZHpJNFYwUlRVVEJJVTFWdVowUlZaMVZwUTFwcGNHeEhUR0UwYzI5cVdXSmpTMk01TUZoclExUkNkRFE0VDJRemF6UTFVaXRpSzFRclVXcFpTMWhZT0RkT00wSkNZME5RYW1wME1USm1WSFpEY3k5amREWm9RWGt3ZDBSaGJ6Vk5Oa0Z3YkV0MVpYbDNXalJYZWpsbFJrZGFUazR6Y1ZOUWVVWjJRVlpxWlVsbE0zSmtRVFpLYm1wS1oyRTJaRVk1TkRjMU5XVlNPRnBXYWxvMmJqaFZUR1JJY25od1VGZGpaa0pDV2pCUVFXUXlOMFJPY2tSWk5Ga3dXVmhoY1VoSVpXbHJjSFZFV0ZGMFJEUnpNMGtyTTJ3cldGaHZSaTlSVm5RMFRXMUpPVVIyWmtsQk5rRlBhbWcwYTFGbWExRlJTVVJCVVVGQ2J6UkpRMGw2UTBOQmFEaDNSRUZaUkZaU01GUkJVVWd2UWtGSmQwRkVRV1pDWjA1V1NGTk5SVWRFUVZkblFsRktMM05CVm10UWJYWmFRWEZUUlhKcmJVdEhUVTFzSzNsdWMycENkMEpuWjNKQ1owVkdRbEZqUWtGUlVtdE5SMGwzVEZGWlNVdDNXVUpDVVZWSVRVRkxSMGxYYURCa1NFRTJUSGs1YWxwWVNqQmplVFZvWTBoQ2MxcFROV3BpTWpCMlpETmthMk50WTNwTWJWSnNZMnBCZUVKblozSkNaMFZHUWxGamQwRlpXV3hoU0ZJd1kwUnZka3d5T1dwak0wRjFXVmhDZDJKSFZYVlpNamwwVERJNWFtTXpRWGROZVRFelpESlNlVnA2VFhkTmFrTkRRVkkwUjBFeFZXUkpRVk5EUVZKVmQyZG5SVkpOU1VsQ1JGRlpTa3R2V2tsb2RtUnFXa0ZWUWsxSlNDOU5TVWhFUW1kbmNrSm5SVVpDVVdORFFXcERRblJuZVVKek1VcHNZa2RzYUdKdFRteEpSemwxU1VoU2IyRllUV2RaTWxaNVpFZHNiV0ZYVG1oa1IxVm5XVzVyWjFsWE5UVkpTRUpvWTI1U05VbEhSbnBqTTFaMFdsaE5aMWxYVG1wYVdFSXdXVmMxYWxwVFFuWmFhVUl3WVVkVloyUkhhR3hpYVVKb1kwaENjMkZYVG1oWmJYaHNTVWhPTUZsWE5XdFpXRXByU1VoU2JHTnRNWHBKUjBaMVdrTkNhbUl5Tld0aFdGSndZakkxZWtsSE9XMUpTRlo2V2xOM1oxa3lWbmxrUjJ4dFlWZE9hR1JIVldkalJ6bHpZVmRPTlVsSFJuVmFRMEpxV2xoS01HRlhXbkJaTWtZd1lWYzVkVWxJUW5sWlYwNHdZVmRPYkVsSVRqQlpXRkpzWWxkV2RXUklUWFZOUkdOSFEwTnpSMEZSVlVaQ2QwbENSbWwwYjJSSVVuZGplbTkyVEROa00yUjVOV2hqU0VKeldsTTFhbUl5TUhaWk1sWjVaRWRzYldGWFRtaGtSMVpvWkZoU2IySXpTbkJrU0d0MlRVSlpSMEV4VldSS1VVVkNMM2RSVFUxQmIwZERRM05IUVZGVlJrSjNUVVJOUWpCSFFURlZaRVJuVVZkQ1FsSnNjMnBETDBscGRVc3JUVTl3VmprM1UzYzNWemhaTUhwdlQwUkJUMEpuVGxaSVVUaENRV1k0UlVKQlRVTkNORUYzUlhkWlMwdHZXa2xvZG1ScVdrRlpRa0pCUlVJdmQxRkRRbEZCZDBSUldVcExiMXBKYUhaalRrRlJSVXhDVVVGRVoyZEZRa0ZLTURRcmRrdERNMk5GZUZNelUwOW1SSGRFZGtkM1FVNDFTMHMyVkZFd1dpOVRVazlZZG1WdVoza3pla1UwUWtSR2RsaFdRbmRvV2xkeVowMVJSME1yV25CNWEwbFBVMmRxZDNSalkwdElla3RTVURNd2IydHNiM2Q0WWl0SFVqUlVSbVprYkZodVlrRTJUbmxVVWxSblVITkZiWEIzZUZJNFZtRm1aRXhPVlVremVVcG5LMkYzYTNKWVp6RmtVWFZUY1ZKdE9GaEtiV2x3WlVkd1FVRmxkazFxV25SaGRqRkhkWFJ5Tm05RmFIZFRXV1kzVEhSRlpDdGhlSGhCV0VFdmFUVmhkWFF3U2pocFVXMDRVbGhJV0hNeVIyNUxNREozUWtzMFJ6Rm9iMDVYY21JNGRUTTBaazlzTkZreVJYWlNMM1E1ZVU1MFRuRk5VblI0Wm0xTU9WY3pjVnBUWWt4SFVucFNibEk1WW1oVWEyVkhUREpsY2tkdGNqbFJSa2xhYW14T2RIVnNNa0puUmtaeWR6RjZlWEl2VGxKTVQyODJXWEJ2VTJoT1pXNU1aazVvTTBablJXNTRLekU1U1V0MWIyd3lWalE5UEM5a1lYUmhQZ29KUEM5aGNuSmhlVDRLQ2drOGEyVjVQa1JGVWkxRmJtTnZaR1ZrTFZCeWIyWnBiR1U4TDJ0bGVUNEtDVHhrWVhSaFBrMUpTVTVWWjFsS1MyOWFTV2gyWTA1QlVXTkRiMGxKVGxGNlEwTkVWRGhEUVZGRmVFUjZRVTVDWjJ4bmFHdG5RbHBSVFVWQlowVkdRVVJEUTBGM2QwZERVM0ZIVTBsaU0wUlJSVWhCWVVORFFYWXdSV2RuVERWTldVbERPVlJCVFVSQlpGZGFXRXA2WVZjNWRVRm5SVUpOUWtGTlEyeFNjR0pYVmxWaU1IaHdaRzFWUTBGblEzaE5RazFOUkd0c2VsZEhUblphUjFaT1dWYzFhRm95Vm10QlVVVkJUVUl3VFVOVlJuZGpSV3hGVkcxR2RGcFJkMUZTV0doM1lubEJlazFVWnpOT1UwSlRXbGhDZVdKNlFXUkVRWGhFWTIxV2FHUkhiSFppYTFKb1pFZFZXRVJVU1RCTlZFbDVUVlJGZVUxNlRYcE5WbTkzU0dkM1QxWkhWbWhpVld4cldsYzFNR0ZYV25CYVdFbDNSRUYzUzFKRk5ETldNV042VTBaQ1lVNUVRV1pFUVRWR1pVaENjR050UmpCaFZ6bDFVa2RHTUZwU1kwNU5hbFYzVG1wRk0wMVVRVEJQVkVGNlYycEJaMFJDWkZGamJUbHRZVmQ0YkZKSGJIcGtTRXB3V1c1V01HRlhPWFZXU0d4M1dsRjNSbFV4VWxCVmExVjNTVkYzU1ZWSGVHaGtSMXAyWTIwd2QwWlJkMFJoVlRsVVJFRlNOR05yT1ZSRVFXZ3lZVmhPY0dJeU5WQlZla0ZyUkVGb1ZWcFhSblJVYlVaMFdsRjNXVmRYT1hOalEwSlVZakphTUdReVJubGFWMUpzWXpKc2JtSnBRa2hpVjBwSlRVTnpUVWN3Um5kalIzaHdXVEpHTUdGWE9YVlRWMUpzWW01U2NGcHRiR3hqYkVKNVdsZGFjR1ZFUVUxRVFYQkZWR3BrV0ZaNlRrbFZSbTh3VFVOM1RVSkdWbFpUVlZGTlNrUmFhRTFYU1hoYVYxVjVURmRHYUU1NmEzUk9SR3Q0V1drd05FNHlXbXhNVkZsNldsUlplVnBVVW0xWlZHYzFUMFJCTjBSQ1ZrVmFXRnBzWWtjNWQxcFlTa1JhV0Vvd1lWZGFjRmt5UmpCYVdFMTNTV2RSWnpFeWR6RXZXWGRpVDFGNlJ5OTRMMWxvVEdzek9USkpiRmw0TUVscGFHRnJaRGw2ZUdneGMwcFJNMjkzVTBGM1JWUnRSblJhVVhoQlMyeDBiR1ZJUW5aWVUwSnFZVU0xTldJeWVIZE1iVlkwWTBjNGVrMVVaek5PV0Vwc1kwaEtka2xGUm5kalJrNHdZak5LYkVsRVNYZE5hbEYwVFZSSmRFMXFSbFZOVkVrMlRYcE5OazE2UVhWTmVtdDVWMnBEUWpoUmQwMVNWelV3WVZoU2MxcFhNV3hpYmxKNlkwbElaMEZuUlVKelNVaGhUVVJ6VFVadFJuZGpSM2h3V1RKR01HRlhPWFZNVjJ4cldsYzFNR0ZYV25CYVdFbE5TVlZTVDA0eFpGaE5NR2hSVjJwUmRWa3laM1ZsVnpselkwTTFiR1ZJUW5aTmVrVTBUbnBXZVZwWVFubGlla0ZaUkVKT2FWcFlVbWhNV0Vwc1kwYzVlV1JJVFhSWlYwNHdZVmhhYkVGUlNDOU5SRVZOU1RKT2RtSlROV2hqU0VKeldsTTFhMXBZV214aVJ6bDNXbGhKZFdSSFZtaGlVekZ3V2tkV2RXUkhiRzFoVjFaNVJFRndSVlJxWkZoV2VrNUpWVVp2TUUxQ1RVMUViV1JzWkVNeE1GbFlUbkpNVjBaellrYzVNMEZSUlVGTlJHdE5SbTEwYkdWWFRtOVpWMngxVEZkR2Fsa3lWbnBqZVRGdVkyMDVNV05JVFhkSWQzZE5Va1UwTTFZeFkzcFRSa0poVGtNMGNVUkJPV3BpTWpCMVdWaENkMkpIVlhWa1J6bHlXbGMyWjJkblp6aE5TVWxEVVhwRFEwRmpiV2RCZDBsQ1FXZEpTVXhqV0RocFRreEdVelZWZDBObldVbExiMXBKZW1vd1JVRjNUWGRhZWtWaVRVSnJSMEV4VlVWQmQzZFRVVmhDZDJKSFZXZFZiVGwyWkVOQ1JGRlRRWFJKUldONlRWTlpkMHBCV1VSV1VWRk1SRUl4UW1OSVFuTmFVMEpFV2xoS01HRlhXbkJaTWtZd1lWYzVkVWxGUmpGa1IyaDJZMjFzTUdWVVJWUk5Ra1ZIUVRGVlJVTm5kMHRSV0VKM1lrZFZaMU5YTldwTWFrVk1UVUZyUjBFeFZVVkNhRTFEVmxaTmQwaG9ZMDVOVkZGM1RrUk5kMDFVWjNoUFZFRXlWMmhqVGsxNmEzZE9SRTEzVFZSbmVFOVVRVEpYYWtKdVRWSnpkMGRSV1VSV1VWRkVSRUpLUW1OSVFuTmFVMEpUWWpJNU1FbEZUa0pKUXpCblVucE5lRXBxUVd0Q1owNVdRa0Z6VFVoVlJuZGpSM2hzU1VWT2JHTnVVbkJhYld4cVdWaFNjR0l5TkdkUldGWXdZVWM1ZVdGWVVqVk5VazEzUlZGWlJGWlJVVXRFUVhCQ1kwaENjMXBUUWtwaWJVMTFUVkZ6ZDBOUldVUldVVkZIUlhkS1ZsVjZRakpOUWtGSFFubHhSMU5OTkRsQlowVkhRbE4xUWtKQlFXbEJNa2xCUWtwcWNFeDZNVUZqY1ZSMGEzbEtlV2RTVFdNelVrTldPR05YYWxSdVNHTkdRbUphUkhWWGJVSlRjRE5hU0hSbVZHcHFWSFY0ZUVWMFdDOHhTRGRaZVZsc00wbzJXVkppVkhwQ1VFVldiMEV2Vm1oWlJFdFlNVVI1ZUU1Q01HTlVaR1J4V0d3MVpIWk5WbnAwU3pVeE4wbEVkbGwxVmxSYVdIQnRhMDlzUlV0TllVNURUVVZCZDBoUldVUldVakJQUWtKWlJVWk1kWGN6Y1VaWlRUUnBZWEJKY1ZvemNqWTVOall2WVhsNVUzSk5RVGhIUVRGVlpFVjNSVUl2ZDFGR1RVRk5Ra0ZtT0hkRVoxbEVWbEl3VUVGUlNDOUNRVkZFUVdkRlIwMUJiMGREUTNGSFUwMDBPVUpCVFVSQk1tZEJUVWRWUTAxUlEwUTJZMGhGUm13MFlWaFVVVmt5WlROMk9VZDNUMEZGV2t4MVRpdDVVbWhJUmtRdk0yMWxiM2xvY0cxMlQzZG5VRlZ1VUZkVWVHNVROR0YwSzNGSmVGVkRUVWN4Yldsb1JFc3hRVE5WVkRneVRsRjZOakJwYlU5c1RUSTNhbUprYjFoME1sRm1lVVpOYlN0WmFHbGtSR3RNUmpGMlRGVmhaMDAyUW1kRU5UWkxlVXRFUTBOQmRWbDNaMmRLZEc5QlRVTkJVVWxEUTBSTlRqZDJhUzlVUjJkMVRVRnZSME5EY1VkVFRUUTVRa0ZOUkUxSFkzaEhla0ZhUW1kT1ZrSkJUVTFGYTBaM1kwZDRiRWxHU25aaU0xRm5VVEJGWjB4VFFraE5la1Z0VFVOUlIwRXhWVVZEZDNka1VWaENkMkpIVldkUk1sWjVaRWRzYldGWFRtaGtSMngyWW1sQ1FtUllVbTlpTTBwd1pFaHJlRVY2UVZKQ1owNVdRa0Z2VFVOclJuZGpSM2hzU1VWc2RWbDVOSGhEZWtGS1FtZE9Wa0pCV1ZSQmJGWlVUVUkwV0VSVVJUTk5SRWw1VFdwSmVVMXFUWGxOYkc5WVJGUk5lVTFFU1hoUFJFRjNUVVJCZDAxR2IzZGpha1Z0VFVOUlIwRXhWVVZCZDNka1VWaENkMkpIVldkVk0yeDZaRWRXZEVsRmJIVmtSMVp1WTIxR01HRlhPWFZKUlU1Q1NVUlJlRXBxUVd0Q1owNVdRa0Z6VFVoVlJuZGpSM2hzU1VWT2JHTnVVbkJhYld4cVdWaFNjR0l5TkdkUldGWXdZVWM1ZVdGWVVqVk5VazEzUlZGWlJGWlJVVXRFUVhCQ1kwaENjMXBUUWtwaWJVMTFUVkZ6ZDBOUldVUldVVkZIUlhkS1ZsVjZRbHBOUWsxSFFubHhSMU5OTkRsQlowVkhRME54UjFOTk5EbEJkMFZJUVRCSlFVSkJXbkp3UmxwMlpsbzRiakJqTkRKcWNFbGlWbk14VlU1dFVrdDVXbEp2YldaeVNrbElOMms1Vm1kUU0wOUtjVFo0YkVoTWVUZDJUelpSUW5SQlJWUlNTSGhoU25FeVoyNURhMnhwZFZodFFtMDVVR1pHY1dwblptTjNaMlpSZDBSM1dVUldVakJVUVZGSUwwSkJWWGRCZDBWQ0wzcEJaa0puVGxaSVUwMUZSMFJCVjJkQ1V6ZHpUalpvVjBSUFNXMXhVMHR0WkRZcmRtVjFkakp6YzJ0eGVrSkhRbWRuY2tKblJVWkNVV05DUVZGUk5rMUVaM2RPWjFsSlMzZFpRa0pSVlVoTlFVZEhTMjFvTUdSSVFUWk1lVGwyV1ROT2QweHRSbmRqUjNoc1RHMU9kbUpUT1haWk0wNTNUVVJOZEZsWVFuZGlSMVo1WWpJNU1Ga3lSbTVOZWtFelFtZE9Wa2hTT0VWTlJFRjFUVU41WjB0eFFXOW9hVnB2WkVoU2QwOXBPSFpaTTBwelRHMUdkMk5IZUd4TWJVNTJZbE01YUdOSVFuTmFXRXAyWWpOU2FsbFhZM3BNYlU1NVlrUkJaRUpuVGxaSVVUUkZSbWRSVldWclpUWlBTVzlXU2tW'... 19712 more characters
],
env: {
TERM_PROGRAM: 'Apple_Terminal',
SHELL: '/bin/zsh',
TERM: 'xterm-256color',
TMPDIR: '/var/folders/fn/v6nhhxz55vzbvd1027g7j8ch0000gn/T/',
TERM_PROGRAM_VERSION: '453',
TERM_SESSION_ID: '76138AE4-C860-486B-8127-AA99CDE08D90',
USER: 'jonas',
SSH_AUTH_SOCK: '/private/tmp/com.apple.launchd.TntV8nrRFZ/Listeners',
PATH: '/Users/jonas/.nvm/versions/node/v21.6.0/bin:/opt/homebrew/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/go/bin:/Users/jonas/Library/Android/sdk/platform-tools',
__CFBundleIdentifier: 'com.apple.Terminal',
PWD: '/Users/jonas/git/tests/expo-31875-repro',
XPC_FLAGS: '0x0',
XPC_SERVICE_NAME: '0',
SHLVL: '1',
HOME: '/Users/jonas',
LOGNAME: 'jonas',
OLDPWD: '/Users/jonas/git/tests',
ANDROID_HOME: '/Users/jonas/Library/Android/sdk',
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: 'siab-wckq-lovk-pcwb',
NVM_DIR: '/Users/jonas/.nvm',
NVM_CD_FLAGS: '-q',
NVM_BIN: '/Users/jonas/.nvm/versions/node/v21.6.0/bin',
NVM_INC: '/Users/jonas/.nvm/versions/node/v21.6.0/include/node',
LC_CTYPE: 'UTF-8',
EXPO_DEBUG: 'true',
_: '/Users/jonas/.nvm/versions/node/v21.6.0/bin/eas',
__CF_USER_TEXT_ENCODING: '0x1F5:0x0:0x2',
EAS_LOCAL_BUILD_WORKINGDIR: undefined
}
}
sh: eas-cli-local-build-plugin: command not found
npx -y eas-cli-local-build-plugin@1.0.152 eyJqb2Ii...
exited with non-zero code: 127
Error: npx -y eas-cli-local-build-plugin@1.0.152 eyJqb2Ii...
exited with non-zero code: 127
at ChildProcess.completionListener (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/node_modules/@expo/spawn-async/build/spawnAsync.js:42:23)
at Object.onceWrapper (node:events:634:26)
at ChildProcess.emit (node:events:519:28)
at maybeClose (node:internal/child_process:1105:16)
at ChildProcess._handle.onexit (node:internal/child_process:305:5)
...
at spawnAsync (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/node_modules/@expo/spawn-async/build/spawnAsync.js:7:23)
at runLocalBuildAsync (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/build/build/local.js:60:56)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async /Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/build/build/build.js:95:13
at async startBuildAsync (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/build/build/runBuildAndSubmit.js:305:12)
at async prepareAndStartBuildAsync (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/build/build/runBuildAndSubmit.js:291:19)
at async runBuildAndSubmitAsync (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/build/build/runBuildAndSubmit.js:108:49)
at async Build.runAsync (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/build/commands/build/index.js:121:9)
at async Build.run (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/build/commandUtils/EasCommand.js:168:16)
at async Build._run (/Users/jonas/.nvm/versions/node/v21.6.0/lib/node_modules/eas-cli/node_modules/@oclif/core/lib/command.js:80:22) {
pid: 26715,
output: [ '', '' ],
stdout: '',
stderr: '',
status: 127,
signal: null
}
Error: build command failed.

### Reproducible demo or steps to reproduce from a blank project

1. Create a create-expo-app@latest. I ran this just now, version was create-expo-app@3.2.0.
2. Create a bundle ID and an app in App Store Connect.
3. Run `eas build --platform ios --local` in the project's directory. Confirm everything as proposed, enter the bundle ID just created.

The build will fail with the message

```
sh: eas-cli-local-build-plugin: command not found
```

I'm aware that `expo-doctor` throws an error. However, this is `create-expo-app` at the latest version. Not sure how I can fix this, and I doubt it is related to the present issue.

I had to shorten the base-64-encoded JSONs in the error output, because otherwise the Github issue would have been too big (max. 65536 characters). Contact me if you need those JSONs.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.