Monday, August 20, 2012

Suppress iCloud dialog at first login

Greg Neagle writes about it here, using MCX. But for me this didn't work (tried it as a local MCX and a profile).
This is how I do it: The information that the iCloud panel has been shown is stored inside ~/Library/Preferences/com.apple.SetupAssistant.plist and the keys is the same as you find in Greg's article, namely:

 "DidSeeCloudSetup"
and
"LastSeenCloudProductVersion"

"DidSeeCloudSetup" should be set to "true" (boolean) and "LastSeenCloudProductVersion" to 10.8 (string). This is what I put in my firstboot.sh for this to work:


OSVERS=$(sw_vers | awk -F. '/ProductVersion/  {print $2}')
USERTEMPLATES=$(find "/System/Library/User Template" -type d -maxdepth 1)
USERHOMES=$(find "/Users" -type d -maxdepth 1 | grep -v Shared)



if [ "$OSVERS" = "8" ]; then
echo "This is OS X 10.8, running specific tasks for 10.8"
#Suppress iCloud dialog when logging in
echo "Suppressing iCloud dialog at login"
for templates in $USERTEMPLATES; do
defaults write "$templates/Library/Preferences/com.apple.SetupAssistant" DidSeeCloudSetup -bool true
defaults write "$templates/Library/Preferences/com.apple.SetupAssistant" LastSeenCloudProductVersion -string 10.8
done
for userhome in $USERHOMES; do
defaults write "$userhome/Library/Preferences/com.apple.SetupAssistant" DidSeeCloudSetup -bool true
defaults write "$userhome/Library/Preferences/com.apple.SetupAssistant" LastSeenCloudProductVersion -string 10.8
done
fi
The first for loop takes care of the user templates so any new user that is created gets this preference. The second loop writes the preference to any existing home directory. Quite ugly, but it works...

No comments: