Skip to content

Frequently Asked Questions

How do I use Briefcase?

Briefcase is an installable Python package, with an executable entry point named briefcase. You can install Briefcase into a standard Python virtual environment, or use Python runner tools such as uvx or pip. See our How to run Briefcase guide for more details.

What versions of Python are supported?

Briefcase supports Python 3.11 or higher.

What platforms does Briefcase support?

Briefcase currently has support for:

  • macOS (producing DMG files, raw .app bundles, or PKG installers)
  • Linux (producing system packages, AppImage files or Flatpaks)
  • Windows (producing MSI installers or .ZIP bundles)
  • iOS (producing Xcode projects)
  • Android (producing Gradle projects)
  • Web (producing a .ZIP file of self-contained web content)

Support for other some other operating systems (e.g., tvOS, watchOS, and WearOS) 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: