Solutions
Device management
Remotely manage, and protect laptops and mobile devices.
Orchestration
Automate tasks across devices, from app installs to scripts.
Software management
Inventory, patch, and manage installed software.
Extend Fleet
Integrate your favorite tools with Fleet.
Customers
Fintech + Fleet
Fintech giant consolidates multiple tools with Fleet.
Foursquare + Fleet
Foursquare quickly migrates to Fleet for device management.
What people are saying
Stories from the Fleet community.
More
macOS | 25.08.10
Citrix Workspace is a managed desktop virtualization solution that delivers secure access to information, apps, and content.
To install Citrix Workspace on your work computer:
Don’t see Citrix Workspace or the Fleet Desktop icon? Send a link to this page to your IT team.
Run the following command in your terminal to uninstall Citrix Workspace:
LOGGED_IN_USER=$(scutil <<< "show State:/Users/ConsoleUser" | awk '/Name :/ { print $3 }') && expand_pkgid_and_map() { local PKGID="$1"; local FUNC="$2"; if [[ "$PKGID" == *"*" ]]; then local prefix="${PKGID%\*}"; echo "Expanding wildcard for PKGID: $PKGID"; for receipt in $(pkgutil --pkgs | grep "^${prefix}"); do echo "Processing $receipt"; "$FUNC" "$receipt"; done else "$FUNC" "$PKGID"; fi } && forget_pkg() { local PKGID="$1"; expand_pkgid_and_map "$PKGID" forget_receipt } && forget_receipt() { local PKGID="$1"; sudo pkgutil --forget "$PKGID" } && quit_application() { local bundle_id="$1"; local timeout_duration=10; if ! osascript -e "application id \"$bundle_id\" is running" 2>/dev/null; then return fi; local console_user; console_user=$(stat -f "%Su" /dev/console); if [[ $EUID -eq 0 && "$console_user" == "root" ]]; then echo "Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'."; return fi; echo "Quitting application '$bundle_id'..."; local quit_success=false; SECONDS=0; while (( SECONDS < timeout_duration )); do if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then echo "Application '$bundle_id' quit successfully."; quit_success=true; break; fi; fi; sleep 1; done if [[ "$quit_success" = false ]]; then echo "Application '$bundle_id' did not quit."; fi } && remove_launchctl_service() { local service="$1"; local booleans=("true" "false"); local plist_status; local paths; local should_sudo; echo "Removing launchctl service ${service}"; for should_sudo in "${booleans[@]}"; do plist_status=$(launchctl list "${service}" 2>/dev/null); if [[ $plist_status == \{* ]]; then if [[ $should_sudo == "true" ]]; then sudo launchctl remove "${service}"; else launchctl remove "${service}"; fi; sleep 1; fi; paths=(; "/Library/LaunchAgents/${service}.plist"; "/Library/LaunchDaemons/${service}.plist"; ); if [[ $should_sudo == "false" ]]; then for i in "${!paths[@]}"; do paths[i]="${HOME}${paths[i]}"; done fi; for path in "${paths[@]}"; do if [[ -e "$path" ]]; then if [[ $should_sudo == "true" ]]; then sudo rm -f -- "$path"; else rm -f -- "$path"; fi; fi; done done } && remove_pkg_files() { local PKGID="$1"; expand_pkgid_and_map "$PKGID" remove_receipt_files } && remove_receipt_files() { local PKGID="$1"; local PKGINFO VOLUME INSTALL_LOCATION FULL_INSTALL_LOCATION; echo "pkgutil --pkg-info-plist \"$PKGID\""; PKGINFO=$(pkgutil --pkg-info-plist "$PKGID"); VOLUME=$(echo "$PKGINFO" | awk '/<key>volume<\/key>/ {getline; gsub(/.*<string>|<\/string>.*/, ""); print}'); INSTALL_LOCATION=$(echo "$PKGINFO" | awk '/<key>install-location<\/key>/ {getline; gsub(/.*<string>|<\/string>.*/, ""); print}'); if [ -z "$INSTALL_LOCATION" ] || [ "$INSTALL_LOCATION" = "/" ]; then FULL_INSTALL_LOCATION="$VOLUME"; else FULL_INSTALL_LOCATION="$VOLUME/$INSTALL_LOCATION"; FULL_INSTALL_LOCATION=$(echo "$FULL_INSTALL_LOCATION" | sed 's|//|/|g'); fi; echo "sudo pkgutil --only-files --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | tr '\\\\n' '\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf"; sudo pkgutil --only-files --files "$PKGID" | sed "s|^|/${INSTALL_LOCATION}/|" | tr '\n' '\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf; echo "sudo pkgutil --only-dirs --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | grep '\\.app$' | tr '\\\\n' '\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf"; sudo pkgutil --only-dirs --files "$PKGID" | sed "s|^|${FULL_INSTALL_LOCATION}/|" | grep '\.app$' | tr '\n' '\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf; root_app_dir=$(; sudo pkgutil --only-dirs --files "$PKGID" \; | sed "s|^|${FULL_INSTALL_LOCATION}/|" \; | grep 'Applications' \; | awk '{ print length, $0 }' \; | sort -n \; | head -n1 \; | cut -d' ' -f2-; ); if [ -n "$root_app_dir" ]; then echo "sudo rmdir -p \"$root_app_dir\" 2>/dev/null || :"; sudo rmdir -p "$root_app_dir" 2>/dev/null || :; fi } && trash() { local logged_in_user="$1"; local target_file="$2"; local timestamp="$(date +%Y-%m-%d-%s)"; local rand="$(jot -r 1 0 99999)"; if [[ "$target_file" == ~* ]]; then target_file="/Users/$logged_in_user${target_file:1}"; fi; local trash="/Users/$logged_in_user/.Trash"; local file_name="$(basename "${target_file}")"; if [[ -e "$target_file" ]]; then echo "removing $target_file."; mv -f "$target_file" "$trash/${file_name}_${timestamp}_${rand}"; else echo "$target_file doesn't exist."; fi } && remove_launchctl_service 'com.citrix.AuthManager_Mac' && remove_launchctl_service 'com.citrix.ctxusbd' && remove_launchctl_service 'com.citrix.CtxWorkspaceHelperDaemon' && remove_launchctl_service 'com.citrix.ctxworkspaceupdater' && remove_launchctl_service 'com.citrix.devicetrust.launchagent' && remove_launchctl_service 'com.citrix.ReceiverHelper' && remove_launchctl_service 'com.citrix.ReceiverUninstallHelper' && remove_launchctl_service 'com.citrix.safariadapter' && remove_launchctl_service 'com.citrix.ServiceRecords' && remove_launchctl_service 'com.citrix.UninstallMonitor' && quit_application 'Citrix.ServiceRecords' && quit_application 'com.citrix.CitrixReceiverLauncher' && quit_application 'com.citrix.receiver.nomas' && quit_application 'com.citrix.ReceiverHelper' && remove_pkg_files 'com.citrix.common' && forget_pkg 'com.citrix.common' && remove_pkg_files 'com.citrix.devicetrust.client' && forget_pkg 'com.citrix.devicetrust.client' && remove_pkg_files 'com.citrix.devicetrust.client.ica' && forget_pkg 'com.citrix.devicetrust.client.ica' && remove_pkg_files 'com.citrix.enterprisebrowserinstaller' && forget_pkg 'com.citrix.enterprisebrowserinstaller' && remove_pkg_files 'com.citrix.ICAClient' && forget_pkg 'com.citrix.ICAClient' && remove_pkg_files 'com.citrix.ICAClientcwa' && forget_pkg 'com.citrix.ICAClientcwa' && remove_pkg_files 'com.citrix.ICAClienthdx' && forget_pkg 'com.citrix.ICAClienthdx' && trash $LOGGED_IN_USER '~/Library/Application Support/Citrix Receiver' && trash $LOGGED_IN_USER '~/Library/Application Support/Citrix Workspace' && trash $LOGGED_IN_USER '~/Library/Application Support/Citrix' && trash $LOGGED_IN_USER '~/Library/Application Support/com.citrix.CitrixReceiverLauncher' && trash $LOGGED_IN_USER '~/Library/Application Support/com.citrix.HdxRtcEngine' && trash $LOGGED_IN_USER '~/Library/Application Support/com.citrix.receiver*' && trash $LOGGED_IN_USER '~/Library/Application Support/com.citrix.ReceiverUpdater' && trash $LOGGED_IN_USER '~/Library/Caches/com.citrix.receiver*' && trash $LOGGED_IN_USER '~/Library/HTTPStorages/com.citrix.CitrixReceiverLauncher' && trash $LOGGED_IN_USER '~/Library/HTTPStorages/com.citrix.receiver*' && trash $LOGGED_IN_USER '~/Library/Logs/Citrix Workspace' && trash $LOGGED_IN_USER '~/Library/Preferences/com.citrix.AuthManager.plist' && trash $LOGGED_IN_USER '~/Library/Preferences/com.citrix.CitrixReceiverLauncher.plist' && trash $LOGGED_IN_USER '~/Library/Preferences/com.citrix.HdxRtcEngine.plist' && trash $LOGGED_IN_USER '~/Library/Preferences/com.citrix.receiver*.plist' && trash $LOGGED_IN_USER '~/Library/Preferences/com.citrix.Receiver*.plist' && trash $LOGGED_IN_USER '~/Library/Saved Application State/com.citrix.receiver.nomas.savedState' && trash $LOGGED_IN_USER '~/Library/WebKit/com.citrix.receiver.nomas'
Run this query in Fleet to find old versions of Citrix Workspace across all your computers:
SELECT 1 FROM apps WHERE bundle_identifier = 'com.citrix.receiver.nomas' AND bundle_short_version <= '25.08.10';