eas build:configure on windows - minor problems

I’m using a mix of osx/wsl/windows during development and I’ve noticed a couple of oddities with eas build:configure under windows.

It seems to not detect whether it has been run successfully, and prompts to re-run unexpectedly.
For android, this causes a duplicate apply from: "./eas-build.gradle" line in the build.gradle, which breaks the build.

For iOS, the build:configure seems to pick up windows-path backslashes in “Bundle React Native code and images” shellScript for expo-updates/scripts/create-manifest-ios.sh
This causes a build failure on the server in fastlane build/archive

Reverting to forward-slashes causes the local error

Error: Path to expo-updates/scripts/create-manifest-ios.sh is missing in a “Bundle React Native code and images” build phase.

Note the build submission process works fine under wsl.

Can you provide diff from the commit created by build:configure?
Are you using the latest cli?

Sure thing, and yes, latest cli.

for the pbxproj problem:

diff --git a/MyApp/ios/MyApp.xcodeproj/project.pbxproj b/MyApp/ios/MyApp.xcodeproj/project.pbxproj
index 2412eaf..3bb39ca 100644
--- a/MyApp/ios/MyApp.xcodeproj/project.pbxproj
+++ b/MyApp/ios/MyApp.xcodeproj/project.pbxproj
@@ -201,7 +201,7 @@
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                        shellPath = /bin/sh;
-                       shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n../node_modules/expo-constants/scripts/get-app-config-ios.sh\n../node_modules/expo-updates/scripts/create-manifest-ios.sh\n";
+                       shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n../node_modules/expo-constants/scripts/get-app-config-ios.sh\n..\node_modules\expo-updates\scripts\create-manifest-ios.sh\n";
                };
                08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {
                        isa = PBXShellScriptBuildPhase;

For the gradle build, I’ve managed to resolve it - I was getting

diff --git a/MyApp/android/app/build.gradle b/MyApp/android/app/build.gradle
index c6bbd5b..110dc9f 100644
--- a/MyApp/android/app/build.gradle
+++ b/MyApp/android/app/build.gradle
@@ -218,3 +218,7 @@ task copyDownloadableDepsToLibs(type: Copy) {

 apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
 apply from: "./eas-build.gradle"
+apply from: "./eas-build.gradle"
+
+// Integration with Expo updates
+apply from: "..\\..\\node_modules\\expo-updates\\scripts\\create-manifest-android.gradle"

However it looks like this was because the apply create-manifest-android.gradle was already present earlier on (around line 88) from the expo eject in an earlier version.
Removing that and tidying up the file has created a stable version as per this diff:

diff --git a/MyApp/android/app/build.gradle b/MyApp/android/app/build.gradle
index c6bbd5b..8ce05b4 100644
--- a/MyApp/android/app/build.gradle
+++ b/MyApp/android/app/build.gradle
@@ -84,7 +84,6 @@ project.ext.react = [
 apply from: '../../node_modules/react-native-unimodules/gradle.groovy'
 apply from: "../../node_modules/react-native/react.gradle"
 apply from: "../../node_modules/expo-constants/scripts/get-app-config-android.gradle"
-apply from: "../../node_modules/expo-updates/scripts/create-manifest-android.gradle"

 /**
  * Set this to true to create two separate APKs instead of one:
@@ -218,3 +217,6 @@ task copyDownloadableDepsToLibs(type: Copy) {

 apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
 apply from: "./eas-build.gradle"
+
+// Integration with Expo updates
+apply from: "..\\..\\node_modules\\expo-updates\\scripts\\create-manifest-android.gradle"

Hope this helps - it’s now just the pbxproj that’s a blocker for me on windows.