Features
- Briefcase will now surface git's error messages if an error occurs when cloning a template repository. (#1118)
- Briefcase now supports per-app configuration of
pip install
command line arguments usingrequirement_installer_args
. (#1270) - If macOS app notarization is interrupted, the notarization attempt can now be resumed. (#1472)
- When a macOS notarization attempt fails, Briefcase now displays the cause of the notarization failure. (#1472)
- When an existing project uses the
convert
wizard to add a Briefcase configuration, the updatedpyproject.toml
now includes a stub configuration for all platforms. (#1899) - The
briefcase convert
command can now be used to configure a console-based applications. (#1900) - If Briefcase receives an error invoking a system tool, it will now surface the raw error message to the user in addition to logging the error. (#1907)
- The project wizard now generates a more complete configuration file when no GUI framework is selected. (#2006)
- The web template now targets PyScript version 2024.11.1. In addition, the web template can provide a base
pyscript.toml
that Briefcase will update as required during the build process. (#2080) - Briefcase now uses native pip handling for iOS installs. (#2101)
- When a verbosity level of 3 (i.e.,
-vvv
) is selected, any tasks that would normally be performed in parallel will now be performed serially. (#2110) - Linux on arm64 is now a fully supported platform. (#2113)
- Project bootstraps now have access to the Briefcase console and the overrides specified with
-Q
options at the command line. (#2114) - Project bootstraps can now define a
post_generate()
extension point. This will be invoked after the new project template has been generated, providing a way for bootstraps to add additional files to the generated project. (#2119)
Bugfixes
- Briefcase now uses
ditto
to archive apps for submission to the notarization service, rather than standardzip
tooling. This ensures that UTF-8 encoding and file system resources are preserved. (#1218) - The Gradle file generated for Android projects now correctly escapes single quotes. (#1876)
- Pre-release Python interpreter versions are no longer rejected as matching candidates in PEP 621
requires-python
checks. (#2034) - Briefcase no longer fails to create projects or builds because it cannot update the Git configuration for the relevant template. (#2077)
- Support packages for Linux Flatpak and AppImage builds are now downloaded from the
astral-sh
repository, rather than theindygreg
repository. This reflect the recent transfer of ownership of the project. (#2087) - A Debian-based system that does not have
build-essential
installed, but does have the constituent packages ofbuild-essential
installed, can now build Briefcase system packages. (#2096) - The arguments passed to
xcodebuild
when compiling an iOS app have been modified to avoid a warning about an ignored argument. (#2102) - The hints displayed to the user when an identity has been selected now more accurately reflect the context in which they have been invoked. (#2110)
Backward Incompatible Changes
- Flatpak apps no longer request D-Bus session access by default. Most apps have no need to access the D-Bus session, unless they're a development tool that is inspecting D-Bus messages at runtime. If you experience errors related to this change, it is likely caused by an inconsistency between the
bundle
definition in your app configuration, and the way the app describes its bundle ID at runtime. If you do require D-Bus access, addingfinish_arg."socket=session-bus" = true
to the Flatpak configuration for your app will restore D-Bus session access. (#2074) - Briefcase can no longer install pure Python iOS packages from a source archive (i.e., a
.tar.gz
file published on PyPI). If a package is pure Python, it must be provided as apy3-none-any
wheel. Briefcase's iOS platform documentation contains details on how to provide apy3-none-any
wheel when PyPI does not provide one. (#2101) - The API for project bootstraps has been slightly modified. The constructor for a bootstrap must now accept a console argument; the
extra_context()
method must now accept aproject_overrides
argument. (#2114)