Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
60 lines
2.0 KiB
Diff
60 lines
2.0 KiB
Diff
Fix for macOS build issue in Flutter >= 3.35
|
|
|
|
Since version 3.35, the behavior of macos_assemble.sh and xcode_backend.sh
|
|
is almost identical. This caused the same error for macOS that previously
|
|
occurred for iOS.
|
|
|
|
Derived from the iOS patch: ./fix-ios-build-xcode-backend-sh.patch
|
|
|
|
Example error:
|
|
```
|
|
$ flutter run -d macos
|
|
Launching lib/main.dart on macOS in debug mode...
|
|
Target debug_unpack_macos failed: Error: Flutter failed to create a directory at "/<nix-store>/XXXX-flutter-3.35.1-unwrapped/bin/cache/artifacts".
|
|
Please ensure that the SDK and/or project is installed in a location that has read/write permissions for the current user.
|
|
Failed to copy Flutter framework.
|
|
** BUILD FAILED **
|
|
```
|
|
|
|
---
|
|
|
|
diff --git a/packages/flutter_tools/bin/macos_assemble.sh b/packages/flutter_tools/bin/macos_assemble.sh
|
|
index 28acf8842..d0f2923df 100644
|
|
--- a/packages/flutter_tools/bin/macos_assemble.sh
|
|
+++ b/packages/flutter_tools/bin/macos_assemble.sh
|
|
@@ -13,29 +13,13 @@
|
|
# exit on error, or usage of unset var
|
|
set -euo pipefail
|
|
|
|
-# Needed because if it is set, cd may print the path it changed to.
|
|
-unset CDPATH
|
|
-
|
|
-function follow_links() (
|
|
- cd -P "$(dirname -- "$1")"
|
|
- file="$PWD/$(basename -- "$1")"
|
|
- while [[ -h "$file" ]]; do
|
|
- cd -P "$(dirname -- "$file")"
|
|
- file="$(readlink -- "$file")"
|
|
- cd -P "$(dirname -- "$file")"
|
|
- file="$PWD/$(basename -- "$file")"
|
|
- done
|
|
- echo "$file"
|
|
-)
|
|
-
|
|
-PROG_NAME="$(follow_links "${BASH_SOURCE[0]}")"
|
|
-BIN_DIR="$(cd "${PROG_NAME%/*}" ; pwd -P)"
|
|
-FLUTTER_ROOT="$BIN_DIR/../../.."
|
|
-DART="$FLUTTER_ROOT/bin/dart"
|
|
+# Run `dart ./xcode_backend.dart` with the dart from $FLUTTER_ROOT.
|
|
+dart="${FLUTTER_ROOT}/bin/dart"
|
|
+xcode_backend_dart="$(dirname "${BASH_SOURCE[0]}")/xcode_backend.dart"
|
|
|
|
# Main entry point.
|
|
if [[ $# == 0 ]]; then
|
|
- "$DART" "$BIN_DIR/xcode_backend.dart" "build" "macos"
|
|
+ exec "${dart}" "${xcode_backend_dart}" "build" "macos"
|
|
else
|
|
- "$DART" "$BIN_DIR/xcode_backend.dart" "$@" "macos"
|
|
+ exec "${dart}" "${xcode_backend_dart}" "$@" "macos"
|
|
fi
|