6363readonly src_generated_xcfilelist=" $PWD /%generated_xcfilelist%"
6464readonly src_generated_directories_filelist=" $PWD /%generated_directories_filelist%"
6565readonly src_project_pbxproj=" $PWD /%project_pbxproj%"
66+ readonly src_rsync=" $PWD /%rsync%"
6667readonly src_xcschememanagement=" $PWD /%xcschememanagement%"
6768readonly src_xcschemes=" $PWD /%xcschemes%/"
6869readonly src_xcworkspacedata=" $PWD /%contents_xcworkspacedata%"
@@ -82,13 +83,7 @@ readonly dest_xcschemes="$dest/xcshareddata/xcschemes"
8283
8384mkdir -p " $dest_xcschemes "
8485
85- # NOTE: use `which` to find the path to `rsync`.
86- # In macOS 15.4, the system `rsync` is using `openrsync` which contains some permission issues.
87- # This allows users to workaround the issue by overriding the system `rsync` with a working version.
88- # Remove this once we no longer support macOS versions with broken `rsync`.
89- # shellcheck disable=SC2046
90- PATH=" /opt/homebrew/bin:/usr/local/bin:$PATH " \
91- rsync \
86+ " $src_rsync " \
9287 --archive \
9388 --perms \
9489 --chmod=u+w,F-x \
@@ -124,6 +119,7 @@ mkdir -p "$dest/rules_xcodeproj/bazel"
124119rm -rf " $dest /rules_xcodeproj/bazel" /*
125120$cp_cmd " ${bazel_integration_files[@]} " " $dest /rules_xcodeproj/bazel"
126121$cp_cmd " $xcodeproj_bazelrc " " $dest /rules_xcodeproj/bazel/xcodeproj.bazelrc"
122+ chmod u+rx " $dest /rules_xcodeproj/bazel/rsync"
127123
128124if [[ -s " ${extra_flags_bazelrc:- } " ]]; then
129125 $cp_cmd " $extra_flags_bazelrc " " $dest /rules_xcodeproj/bazel/xcodeproj_extra_flags.bazelrc"
@@ -141,10 +137,10 @@ chmod u+w "$dest_generated_xcfilelist"
141137
142138# - Keep only scripts as runnable
143139find " $dest /rules_xcodeproj/bazel" \
144- -type f \( -name " *.sh" -o -name " *.py" -o -name " ld" -o -name " libtool" \) \
140+ -type f \( -name " *.sh" -o -name " *.py" -o -name " ld" -o -name " libtool" -o -name " rsync " \) \
145141 -print0 | xargs -0 chmod u+x
146142find " $dest /rules_xcodeproj/bazel" \
147- -type f ! \( -name " swiftc" -o -name " ld" -o -name " libtool" -o -name " import_indexstores" -o -name " *.sh" -o -name " *.py" \) \
143+ -type f ! \( -name " swiftc" -o -name " ld" -o -name " libtool" -o -name " import_indexstores" -o -name " rsync " -o -name " *.sh" -o -name " *.py" \) \
148144 -print0 | xargs -0 chmod -x
149145
150146# Copy over `project.xcworkspace/contents.xcworkspacedata` if needed
0 commit comments