Seems like for some applications, double-packaging is required
There are 2 different installers now, 1. Intel, 2. M1 (Apple Silicon)
You can yous this script to deploy and update zoom I have tested it on all my M1
!/bin/sh
#########################################################################################
# ABOUT THIS PROGRAM
NAME
ZoomInstall.sh -- Installs or updates Zoom
SYNOPSIS
sudo ZoomInstall.sh
########################################################################################
###################################################################################################
Script to download and install Zoom.
Only works on Intel systems.
Set preferences
hdvideo="true"
ssodefault="true"
ssohost="xxx.zoom.us"
choose language (en-US, fr, de)
lang=""
CHECK TO SEE IF A VALUE WAS PASSED IN PARAMETER 1 AND, IF SO, ASSIGN TO "lang"
if [ "$4" != "" ] && [ "$lang" == "" ]; then
lang=$4
else
lang="en-US"
fi
pkgfile="ZoomInstallerIT.pkg"
plistfile="us.zoom.config.plist"
logfile="/Library/Logs/ZoomInstallScript.log"
processname="zoom.us"
killall "$processname" &> /dev/null
if [ $? -eq 0 ]; then
echo "Killing $processname"
fi
Are we running on Intel?
if [ '/usr/bin/uname -p
'="i386" -o '/usr/bin/uname -p
'="x86_64" ]; then
## Get OS version and adjust for use with the URL string
OSvers_URL=$( sw_vers -productVersion | sed 's/[.]/_/g' )
## Set the User Agent string for use with curl
userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X ${OSvers_URL}) AppleWebKit/535.6.2 (KHTML, like Gecko) Version/5.2 Safari/535.6.2"
# Get the latest version of Reader available from Zoom page.
latestver=$(/usr/bin/curl -s -A "$userAgent" https://zoom.us/download | grep 'ZoomInstallerIT.pkg' | awk -F'/' '{print $3}')
echo "Latest Version is: $latestver"
# Get the version number of the currently-installed Zoom, if any.
if [ -e "/Applications/zoom.us.app" ]; then
currentinstalledver=$(/usr/bin/defaults read /Applications/zoom.us.app/Contents/Info CFBundleVersion)
echo "Current installed version is: $currentinstalledver"
if [ ${latestver} = ${currentinstalledver} ]; then
echo "Zoom is current. Exiting"
exit 0
fi
else
currentinstalledver="none"
echo "Zoom is not installed"
fi
url="https://zoom.us/client/${latestver}/ZoomInstallerIT.pkg"
echo "Latest version of the URL is: $url"
echo "date
: Download URL: $url" >> ${logfile}
# Compare the two versions, if they are different or Zoom is not present then download and install the new version.
if [ "${currentinstalledver}" != "${latestver}" ]; then
# Construct the plist file for preferences
echo "<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>google</key>
<string>1</string>
<key>nofacebook</key>
<string>1</string>
<key>ZDisableVideo</key>
<true/>
<key>ZAutoJoinVoip</key>
<true/>
<key>ZDualMonitorOff</key>
<ZDisableVideo/>
<true>" > /tmp/${plistfile}
if [ "${ssohost}" != "" ]; then
echo "
<key>ZAutoSSOLogin</key>
<false/>
<key>ZSSOHost</key>
<string>$ssohost</string>" >> /tmp/${plistfile}
fi
echo "<key>ZAutoFullScreenWhenViewShare</key>
<true/>
<key>ZAutoFitWhenViewShare</key>
<true/>" >> /tmp/${plistfile}
if [ "${hdvideo}" == "true" ]; then
echo "<key>ZUse720PByDefault</key>
<true/>" >> /tmp/${plistfile}
else
echo "<key>ZUse720PByDefault</key>
<false/>" >> /tmp/${plistfile}
fi
echo "<key>ZRemoteControlAllApp</key>
<true/>
</dict>
</plist>" >> /tmp/${plistfile}
# Download and install new version
/bin/echo "date
: Current Zoom version: ${currentinstalledver}" >> ${logfile}
/bin/echo "date
: Available Zoom version: ${latestver}" >> ${logfile}
/bin/echo "date
: Downloading newer version." >> ${logfile}
/usr/bin/curl -sLo /tmp/${pkgfile} ${url}
/bin/echo "date
: Installing PKG..." >> ${logfile}
/usr/sbin/installer -allowUntrusted -pkg /tmp/${pkgfile} -target /
/bin/sleep 20
/bin/echo "date
: Deleting downloaded PKG." >> ${logfile}
/bin/rm /tmp/${pkgfile}
#double check to see if the new version got updated
newlyinstalledver=$(/usr/bin/defaults read /Applications/zoom.us.app/Contents/Info CFBundleVersion)
echo "Version on Mac is ${newlyinstalledver}"
if [ "${latestver}" = "${newlyinstalledver}" ]; then
/bin/echo "date
: SUCCESS: Zoom has been updated to version ${newlyinstalledver}" >> ${logfile}
echo "Zoom updated successfully"
# /Library/Application Support/JAMF/bin/jamfHelper.app/Contents/MacOS/jamfHelper -windowType hud -title "Zoom Installed" -description "Zoom has been updated." &
else
/bin/echo "date
: ERROR: Zoom update unsuccessful, version remains at ${currentinstalledver}." >> ${logfile}
/bin/echo "--" >> ${logfile}
echo "Zoom not updated - Installation error"
exit 1
fi
# If Zoom is up to date already, just log it and exit.
else
/bin/echo "date
: Zoom is already up to date, running ${currentinstalledver}." >> ${logfile}
/bin/echo "--" >> ${logfile}
fi
else
/bin/echo "date
: ERROR: This script is for Intel Macs only." >> ${logfile}
fi
exit 0
I found that the regular Zoom install package includes a Universal binary now, so you can use that on both platforms.
I’m really not sure why they’ve released a separate “M1 Only” package at all. I checked both and they seem to install the same app on Apple Silicon Macs.
Like @UESCDurandal stated just use the Zoom IT Installer (Universal package):
https://zoom.us/client/latest/ZoomInstallerIT.pkg
Using the ZoomInstallerIT.pkg in script still gets me the Rosetta 2 requirement as of 08January.
Script result: installer: This package requires Rosetta 2 to be installed.
Please install Rosetta 2 and then try again.
sudo softwareupdate --install-rosetta
installer: Error - Zoom can’t be installed on this computer.
Just confirming that the IT installer (ZoomInstallerIT.pkg) that Fernando mentioned above also works for me. The installed binary is a universal binary.
# file /Applications/zoom.us.app/Contents/MacOS/zoom.us
/Applications/zoom.us.app/Contents/MacOS/zoom.us: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64]
/Applications/zoom.us.app/Contents/MacOS/zoom.us (for architecture x86_64): Mach-O 64-bit executable x86_64
/Applications/zoom.us.app/Contents/MacOS/zoom.us (for architecture arm64): Mach-O 64-bit executable arm64
Just create two smart groups, once for Intel Macs w/o Zoom and one for M1 Macs w/o Zoom. Scope two different packages to two different sets of machines.