Apple Profiles & Dependencies Description FileWave dependencies are useful when one Fileset must install before another. Apple MDM profile Filesets need extra care because profile delivery depends on APNs and the device's MDM check-in timing, not just the FileWave Client sequence. Fileset Activation Quick Re-cap Standard Fileset The client checks in. The client receives its manifest. New items are downloaded and activated. Apple MDM Fileset (Profiles) FileWave sends an APNs request to Apple. The device receives the queued APNs notification. The device contacts the FileWave Server for the MDM command. The device checks in. FileWave sends the queued MDM command, such as InstallProfile. Profile installs. For standard Filesets, FileWave controls the client communication sequence. For Apple MDM profiles, the install time depends on APNs delivery, device connectivity, and the device's next MDM check-in. The Issue Filesets install sequentially. If a standard Fileset could depend directly on an Apple MDM profile Fileset, the client could wait indefinitely for the profile to finish, which would delay other Filesets and configuration. For this reason, Apple MDM Filesets can depend on other Fileset types, but standard Filesets should not depend directly on Apple MDM Filesets. Requirement Scripts Requirement Scripts let a Fileset fail its requirement check, allow the client to continue, and try the requirement again 2 minutes later. The requirement keeps retrying while the script returns a non-zero exit code. Use this pattern to delay a Fileset until the required Apple profiles are installed. Ingredients Fileset designed to use a Requirement Script to ensure Profile is installed prior to activation Associated Profile ID(s) Profile Dependency Fileset Template.fileset.zip Directions Download the Fileset, import it into FileWave, and edit it to match your requirements. Select the check_for_profile.sh script and click Get Info: The Launch Arguments will initially appear empty. For each Profile that must be installed before this Fileset, add the Profile ID to the Launch Arguments list. Use one launch argument per Profile ID. You can find the Profile ID in the payload details of the Profile Fileset. For each Profile that must be installed, open the Profile for editing, highlight the Identifier, and copy it. Copy these IDs into the Launch Arguments of the Fileset. The example below shows 5 Profile IDs added for a Microsoft Defender installer. The script supports either matching behavior through the all_or_one environment variable. Set the value that matches your deployment: all All of the listed Profiles must be installed prior to the Fileset becoming active. one At least one of the included Profiles must be installed prior to the Fileset becoming active. The example below shows a Fileset that requires all Profiles to be installed before Fileset activation for the same Microsoft Defender deployment: With this set, add the installers that should run after the required Profiles are installed. Create a Fileset Group and add this Fileset plus the required Profiles to the same group. This is optional, but it keeps the deployment easier to manage. For example: Associate the Fileset Group, test on a small scope, and then roll it out to more devices when the result is correct. This Fileset is particularly useful with Apple TCC Privacy Settings Profiles. Privacy settings give software the access permissions it needs to function. These Profiles usually need to be installed before the protected app or service starts. If the software installs first, the software process may need to be restarted after the Profile installs. With this Fileset, the installer waits until the required Profile is in place before it downloads and installs.