This article explains how to deploy Android apps to your managed devices using Swif. You’ll learn:
Prerequisites for Android app deployment
The two ways to add Android apps:
Import Android Play apps (recommended, requires Android Enterprise)
Create a custom Android app manually
How install types work (FORCE_INSTALLED, PREINSTALLED, AVAILABLE)
How to assign apps to devices or groups
Note: This guide focuses on app deployment. For details on setting up Android Enterprise and Web Tokens, see your Swif Android Enterprise setup documentation.
1. Prerequisites
Before you can deploy Android apps, make sure:
Devices are enrolled in Swif MDM
Your Android devices must be enrolled and visible in Swif.
Devices should be in Device Management with a supported Android enrollment mode (e.g., Work Profile, Fully Managed, or Dedicated).
(Recommended) Android Enterprise is configured
To import apps directly from Google Play via the embedded Play Store experience (iframe / Managed Play iFrame), your team must have Android Enterprise registered and connected to Swif.
If Android Enterprise is not configured, you can still deploy Android apps, but you will need to create apps manually and enter the Package ID yourself.
Permissions
You must have the appropriate admin or app management role in Swif to create and edit applications.
2. Ways to Add Android Apps
Swif supports two main flows for adding Android apps to your application catalog:
Import Android Play apps (recommended; requires Android Enterprise)
Create a custom Android app manually (for teams without Android Enterprise, or for special cases)
Regardless of how the app is created, once it is in your catalog:
The app can be assigned to devices and groups.
Some fields (especially Package ID and installType) are critical to correct deployment behavior.
3. Import Android Play Apps (Recommended)
When your team has Android Enterprise configured, you can import apps directly from Google Play using the Managed Play iFrame in Swif.
3.1 What this flow does
Opens a Google Play catalog in an embedded dialog (iframe) inside Swif.
Lets you search and select a Play Store app.
After you select an app, Swif receives a callback from Google containing:
packageName(e.g.com.google.android.gm)productIdaction(e.g."selected")
Swif uses the
packageNameas the Package ID for the custom app and creates the necessary Web Token configuration behind the scenes.This is the preferred way to create Android apps because:
The Package ID is guaranteed correct (cannot be edited later).
Admins do not have to look up or type the Package ID manually.
Important: Google’s callback event does not contain fields like name or description, so you may need to provide those inside Swif after the app is created.
3.2 How to import an Android Play app
In Swif, go to Application Management (or Applications → Catalog).
Click Add Application (or Add App to Catalog) and choose Android.
Select Import Android Play Apps.
Swif opens the Google Play iframe:
If your Android Enterprise connection is missing or misconfigured, you may see an error like “Data Not Found”. In that case, check that:
Android Enterprise is registered for your team.
The Web Token domain restrictions include your Swif app domain(s).
In the iframe:
Use the search box to find the desired app.
Click Add or Select on the app.
The iframe triggers a callback and closes.
Swif automatically:
Populates the Package ID (from
packageName).Creates the Web Token configuration for this app and sends it to MDM.
You are then taken to the app details form where you can:
Confirm or edit the App Name and Description (if shown).
Configure deployment options (see Install Type below).
Save the app.
3.3 Edit restrictions for Play Store–imported apps
For apps created via Import Android Play Apps:
Package ID:
Set automatically from Google Play.
Cannot be changed on the edit page.
Install type:
For some flows, the install type may be locked to a specific value (e.g.
FORCE_INSTALLED) depending on your configuration.Generally, you should not allow editing
installTypefor Play Store apps if your policy is to enforce a specific deployment behavior.
4. Create a Custom Android App Manually
If you don’t have Android Enterprise configured, or if you need to add a custom entry that isn’t being imported from the Android Play iframe, you can create an Android app manually.
4.1 When to use manual creation
Your organization has not set up Android Enterprise yet.
You want to add an app with a known Package ID without going through the Play Store iframe.
You are aligning with other custom OS app flows (e.g. macOS, Windows, Linux) and want a consistent experience.
4.2 How to create a custom Android app
In Swif, go to Application Management (or Applications → Catalog).
Click Add Application and select Android.
Choose the option to create a custom Android app (not “Import Android Play Apps”).
Fill in the required fields, including:
Name: Internal display name for the app in Swif.
Package ID (critical):
This must be the Android package name (e.g.
com.example.myapp).Swif uses this identifier to manage installation on devices.
If the Package ID is wrong, the app will not install correctly.
Install Type (see section 5):
REQUIRED field.
Controls how the app is delivered and enforced on devices.
(Optional) Domain / other fields:
If your backend or policy design supports a
domainfield or similar metadata, you may see it here.Only use fields that are supported in your current Swif build and backend API (as described in your internal doc at
https://swifteam.atlassian.net/wiki/x/BIDuMQ).
Save the app.
4.3 Edit behavior for manually created apps
For manually created Android apps:
Package ID:
Initially entered by the admin.
In many cases, you may allow editing on the edit page, but some teams prefer to lock it once created to avoid accidental breakage.
Install Type:
You can allow editing on the edit page so admins can adjust how the app is deployed over time.
Recommendation: Regardless of creation method, treat Package ID as extremely sensitive. If you allow editing it for manual apps, consider restricting this to advanced admins.
5. Understanding Install Types
The installType field is a required property for Android apps in Swif. It tells Swif (and the underlying MDM) how to deploy the app to devices.
Common install types include:
FORCE_INSTALLED
The app is installed automatically on devices.
The user cannot remove the app.
Use this for security-critical or mandatory apps (e.g. security agents, productivity tools required by policy).
PREINSTALLED
The app is installed automatically once.
The user may be allowed to remove it later, depending on your policies.
Good for recommended apps that should be present initially, but not strictly enforced forever.
AVAILABLE
The app is not auto-installed.
Instead, it appears in the device’s managed Play Store / app catalog.
The user can choose to install it on demand.
Good for optional or self-service apps.
5.1 Install type for Play Store vs custom apps
Apps imported from the Play Store
Often treated as “GENERAL” or a fully managed scenario.
installTypemay be set toFORCE_INSTALLEDby default or enforced by your policy.In many implementations, admins cannot change
installTypeorPackage IDfor these apps after creation.
Custom manually created apps
Treated as “CUSTOM” in Swif.
Admins can choose the appropriate
installType(FORCE_INSTALLED, PREINSTALLED, AVAILABLE).This gives you flexibility: e.g., an internal tool might be AVAILABLE first, then later switched to FORCE_INSTALLED once stable.
6. Assigning Android Apps to Devices
Once your Android app is in the catalog, you can deploy it by assigning it to devices or groups.
6.1 Assign the app
Go to Applications → Catalog.
Find your Android app (use the Android Applications filter if available).
Open the app details page.
Go to the Assignments (or Targets) section.
Choose how to target:
Devices (individual devices)
Groups (e.g., Smart Groups, organizational units, or user groups)
Select the desired devices or groups.
Confirm and save.
6.2 What happens on devices
Behavior depends on the installType:
FORCE_INSTALLED
The app is pushed and must stay installed.
PREINSTALLED
The app is installed, but users may be able to remove it.
AVAILABLE
The app appears in the device’s managed app catalog / Play Store for self-service installation.
7. Troubleshooting
7.1 “Data Not Found” when opening the Play Store iframe
If you see “Data Not Found” when Swif tries to open the Google Play iFrame:
Verify that your Android Enterprise connection is properly configured.
Check that:
A valid Web Token exists for your team.
The allowed domain list includes your Swif webapp domain(s), not just
https://swif.aibut also any subdomains you use (such ashttps://app.dev.swif.ai).
Re-run the Android connection / registration steps if necessary.
7.2 App not installing on devices
If an app doesn’t appear or install:
Confirm the device is:
Enrolled, online, and compliant.
Verify the app:
Has a correct Package ID.
Has a valid installType set.
Check assignments:
The device or its group is included in the app’s Assignments.
Review any MDM logs or activity within Swif for errors.
7.3 Users can’t remove an app
If an app is set to FORCE_INSTALLED, users ordinarily cannot uninstall it.
If you want to allow removal, change the app’s installType to PREINSTALLED or AVAILABLE (for custom apps where editing installType is allowed).
8. Summary
Use Import Android Play Apps when Android Enterprise is configured. This is the safest, most automated path and ensures the Package ID is correct.
Use manual custom Android apps when Android Enterprise is not available or when you need full manual control.
Treat Package ID and installType as critical fields:
Package ID must be correct and is usually locked for Play Store apps.
installType controls how aggressively the app is deployed (FORCE_INSTALLED, PREINSTALLED, AVAILABLE).
After adding apps to the catalog, assign them to devices or groups to deploy.


