You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 using requirement_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 updated pyproject.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 standard zip 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 the indygreg 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 of build-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, adding finish_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 a py3-none-any wheel. Briefcase's iOS platform documentation contains details on how to provide a py3-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 a project_overrides argument. (#2114)