Skip to content

# Frequently Asked Questions

## What versions of Python are supported?

Python 3.10 or higher.

## What platforms does Briefcase support?

Briefcase currently has support for:

- macOS (producing DMG files, or raw .app files)
- Linux (producing system packages, AppImage files or Flatpaks)
- Windows (producing MSI installers)
- iOS (producing Xcode projects)
- Android (producing Gradle projects)

Support for other some other operating systems (e.g., tvOS, watchOS, WearOS, and the web) are on our road map.

Briefcase's platform support is built on a plugin system, so if you want to add support for a custom platform, you can do so; or, you can contribute the backend to Briefcase itself.

## How do I detect if my app is running in a Briefcase-packaged container?

Briefcase adds a PEP566 metadata file when it installs your app's code. The metadata can be retrieved at runtime as described in the Accessing Briefcase packaging metadata at runtime how-to. You can determine if your app was packaged with Briefcase by testing for the existence of the `Briefcase-Version` tag:

    in_briefcase = 'Briefcase-Version' in metadata

## Can I use third-party Python packages in my app?

Yes! Briefcase uses `pip` to install third-party packages into your app bundle. As long as the package is available on PyPI, or you can provide a wheel file for the package, it can be added to the `requires` declaration in your `pyproject.toml` file and used by your app at runtime.

If the package is pure-Python (i.e., it does not contain a binary library), that's all you need to do.

If the package contains a binary component, you'll need to ensure that a binary wheel is available for the platform you're targeting:

- macOS, Linux, Windows: Binary wheels are hosted on PyPI.
- Android: See the Android platform documentation.
- iOS: See the iOS platform documentation.
- Web: Binary wheel support is currently limited to those provided by the Pyodide project.