Re: How do I prohibit installation based on current software version?
site_archiver@lists.apple.com Delivered-To: installer-dev@lists.apple.com On mardi, septembre 19, 2006, at 10:29 PM, Chris Waldrip wrote: Usage is: Hope it helps. _______________________________________________ Do not post admin requests to the list. They will be ignored. Installer-dev mailing list (Installer-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/installer-dev/site_archiver%40lists.a... I've made an installer for some easy presets for Final Cut Pro, but they're specific to FCP5. In Iceberg I've added a requirement in the appropriate section to require that the CFBundleVersion of /Applications/Final Cut Pro.app/Contents/Resources/AELicensingAquaPro.bundle be at least 1.2. Looking at an install of 4.5 that seemed like a good choice since that Bundle doesn't exist (at least on the install I tested). But when installed on a system running an earlier build of FCP 4 it didn't stop the installer. How can I identify the version of a target application, and if that target application doesn't exist or is an incorrect/earlier version, keep the installer from running. The Requirements section in Iceberg looks to be the perfect place, but I can't find a unique identifier for FCP5. OK, I coded a little tool which is available at: http://s.sudre.free.fr/files/checkversion.zip It needs to be compiled with XCode 2.3 or later and should work from 10.2.8 to 10.4.x (PPC/Intel). checkappversion [-c creator] [-b bundle_identifier] [-n bundle_name] [-f default_app_path] comparator version comparator can be >,>=,==,<=,< Just be sure to set a "" around the comparator to avoid redirecting the standard input/output. It returns 1 if the result is OK, 0 if it's not. If the bundle does not exist or can't be found, it returns 0. So to solve your problem, you can probably just call it like this in an InstallerCheck script: checkappversion -f /Applications/Final Cut Pro.app/Contents/Resources/AELicensingAquaPro.bundle ">=" 1.2 It's using the LaunchServices API to locate applications (only default path will work with bundle). This email sent to site_archiver@lists.apple.com
participants (1)
-
Stéphane Sudre