Deploying shft with Mosyle

This guide covers deploying the shft app and configuration profile through Mosyle Business and Mosyle Fuse.

Prerequisites

  • Mosyle Business or Mosyle Fuse account
  • The shft .pkg installer
  • The shft configuration profile (see Configuration profile reference)
  • Target Macs enrolled in Mosyle

Step 1: Upload the shft package

  1. In Mosyle, navigate to Management → Apps → Custom Apps for macOS
  2. Click Add Custom App
  3. Configure the app:
FieldValue
App Nameshft
TypePackage (.pkg)
InstallSelect Immediately or Self-Service
  1. Upload the shft-<version>.pkg file
  2. Set the uninstall script (optional but recommended):
#!/bin/bash
rm -rf /Applications/shft.app
rm -rf ~/Library/Application\ Support/shft
  1. Click Save

Step 2: Create the configuration profile

  1. Navigate to Management → Profiles → Custom Profiles
  2. Click Add new profile
  3. Set the profile details:
FieldValue
Nameshft Configuration
DescriptionAdmin policy for shft migration tool
  1. Upload the .mobileconfig file

Build the profile using the example in Configuration profile reference. Set the PayloadScope to User.

  1. Click Save

Step 3: Assign to device groups

Assigning the app

  1. In the Custom App settings for shft, scroll to Assignment
  2. Select the target:
    • All Devices — for broad deployment
    • Specific Groups — for targeted deployment
    • Specific Devices — for individual Macs

Assigning the profile

  1. In the Custom Profile settings, scroll to Assignment
  2. Assign to the same scope as the app deployment

Using tags for targeting

Mosyle's tag system is useful for migration workflows:

  1. Create a tag called Device Refresh or Migration Active
  2. Apply the tag to source and destination Macs
  3. Assign both the shft app and profile to devices with this tag
  4. Remove the tag after migration completes

Step 4: Verify deployment

  1. On a target Mac, click the Mosyle agent icon and select Check for updates
  2. Verify shft is installed: ls /Applications/shft.app
  3. Verify the profile is applied: defaults read com.shft.config
  4. Open shft and confirm your organisation branding appears

Mosyle-specific notes

Mosyle Fuse vs Mosyle Business

shft deploys the same way on both Mosyle products. The only difference is the management console UI — the steps are functionally identical.

Custom Commands

You can use Mosyle Custom Commands to automate pre-migration setup:

#!/bin/bash
# Ensure shft is installed and profile is applied
if [ ! -d "/Applications/shft.app" ]; then
    echo "shft not installed — triggering install"
    # Mosyle will handle installation via the Custom App assignment
fi
 
# Verify profile
if ! defaults read com.shft.config shft.brandingName &>/dev/null; then
    echo "shft profile not yet applied"
fi

Compliance rules

Create a compliance rule to verify shft is installed on devices tagged for migration:

  1. Navigate to Management → Compliance
  2. Create a rule:
    • Condition: App shft.app is not installed
    • Action: Send notification to admin
    • Scope: Devices tagged Device Refresh

Integration with Mosyle AutoApps

If Mosyle adds shft to their AutoApps catalog, you can switch from Custom App to AutoApp deployment for automatic version management.