Frequently Asked Questions¶
What version of Python does Briefcase support?¶
Python 3.9 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.