In objc tools, refer to the realpath tool using its full embedded tool location. Then, if unavailable, look relative to the workspace.

--
MOS_MIGRATED_REVID=106536282
diff --git a/src/tools/xcode/actoolwrapper/actoolwrapper.sh b/src/tools/xcode/actoolwrapper/actoolwrapper.sh
index 84829aa..1a05fd7 100755
--- a/src/tools/xcode/actoolwrapper/actoolwrapper.sh
+++ b/src/tools/xcode/actoolwrapper/actoolwrapper.sh
@@ -21,7 +21,12 @@
 
 set -eu
 
-OUTZIP=$(tools/objc/realpath "$1")
+REALPATH=$0.runfiles/external/bazel_tools/tools/objc/realpath
+if [ ! -e $REALPATH ]; then
+  REALPATH=tools/objc/realpath
+fi
+
+OUTZIP=$($REALPATH "$1")
 shift 1
 TEMPDIR=$(mktemp -d -t actoolZippingOutput)
 trap "rm -rf \"$TEMPDIR\"" EXIT
@@ -41,7 +46,7 @@
     touch "$i"
   fi
   if [ -e "$i" ]; then
-    ARG=$(tools/objc/realpath "$i")
+    ARG=$($REALPATH "$i")
     TOOLARGS+=("$ARG")
   else
     TOOLARGS+=("$i")
diff --git a/src/tools/xcode/ibtoolwrapper/ibtoolwrapper.sh b/src/tools/xcode/ibtoolwrapper/ibtoolwrapper.sh
index 7b9220d..89faede 100755
--- a/src/tools/xcode/ibtoolwrapper/ibtoolwrapper.sh
+++ b/src/tools/xcode/ibtoolwrapper/ibtoolwrapper.sh
@@ -25,7 +25,12 @@
 
 set -eu
 
-OUTZIP=$(tools/objc/realpath "$1")
+REALPATH=$0.runfiles/external/bazel_tools/tools/objc/realpath
+if [ ! -e $REALPATH ]; then
+  REALPATH=tools/objc/realpath
+fi
+
+OUTZIP=$($REALPATH "$1")
 ARCHIVEROOT="$2"
 shift 2
 TEMPDIR=$(mktemp -d -t ibtoolZippingOutput)
@@ -34,7 +39,7 @@
 FULLPATH="$TEMPDIR/$ARCHIVEROOT"
 PARENTDIR=$(dirname "$FULLPATH")
 mkdir -p "$PARENTDIR"
-FULLPATH=$(tools/objc/realpath "$FULLPATH")
+FULLPATH=$($REALPATH "$FULLPATH")
 
 # IBTool needs to have absolute paths sent to it, so we call realpaths on
 # on all arguments seeing if we can expand them.
@@ -42,7 +47,7 @@
 TOOLARGS=()
 for i in $@; do
   if [ -e "$i" ]; then
-    ARG=$(tools/objc/realpath "$i")
+    ARG=$($REALPATH "$i")
     TOOLARGS+=("$ARG")
   else
     TOOLARGS+=("$i")
diff --git a/src/tools/xcode/momcwrapper/momcwrapper.sh b/src/tools/xcode/momcwrapper/momcwrapper.sh
index 46f578e..29c39d0 100755
--- a/src/tools/xcode/momcwrapper/momcwrapper.sh
+++ b/src/tools/xcode/momcwrapper/momcwrapper.sh
@@ -22,7 +22,12 @@
 
 set -eu
 
-OUTZIP=$(tools/objc/realpath "$1")
+REALPATH=$0.runfiles/external/bazel_tools/tools/objc/realpath
+if [ ! -e $REALPATH ]; then
+  REALPATH=tools/objc/realpath
+fi
+
+OUTZIP=$($REALPATH "$1")
 NAME="$2"
 shift 2
 TEMPDIR=$(mktemp -d -t momcZippingOutput)
diff --git a/src/tools/xcode/swiftstdlibtoolwrapper/swiftstdlibtoolwrapper.sh b/src/tools/xcode/swiftstdlibtoolwrapper/swiftstdlibtoolwrapper.sh
index e2fce6e..90520b5 100755
--- a/src/tools/xcode/swiftstdlibtoolwrapper/swiftstdlibtoolwrapper.sh
+++ b/src/tools/xcode/swiftstdlibtoolwrapper/swiftstdlibtoolwrapper.sh
@@ -21,7 +21,12 @@
 
 set -eu
 
-OUTZIP=$(tools/objc/realpath "$1")
+REALPATH=$0.runfiles/external/bazel_tools/tools/objc/realpath
+if [ ! -e $REALPATH ]; then
+  REALPATH=tools/objc/realpath
+fi
+
+OUTZIP=$($REALPATH "$1")
 shift 1
 TEMPDIR=$(mktemp -d -t swiftstdlibtoolZippingOutput)
 trap "rm -rf \"$TEMPDIR\"" EXIT