Features
- Windows apps can now be packaged as simple ZIP files. (#457)
- An Android SDK specified in
ANDROID_HOME
is respected now and will take precedence over the setting ofANDROID_SDK_ROOT
. (#463) - Android support was upgraded to use Java 17 for builds. (#1065)
- On Linux, Docker Desktop and rootless Docker are now supported. (#1083)
- The company/author name in the installation path for Windows MSI installers is now optional. (#1199)
- macOS code signing is now multi-threaded (and therefore much faster!) (#1201)
- Briefcase will now honor PEP-621 project fields where they map to Briefcase configuration items. (#1203)
Bugfixes
- XML compatibility warnings generated by the Android build have been cleaned up. (#827)
- Non ASCII characters provided in the
briefcase new
wizard are quoted before being put intopyproject.toml
. (#1011) - Requests to the web server are now recorded in the log file. (#1090)
- An "Invalid Keystore format" error is no longer raised when signing an app if the local Android keystore was generated with a recent version of Java. (#1112)
- Content before a closing square bracket (
]
) or.so)
is no longer stripped by the macOS and iOS log filter. (#1179) - The option to run Linux system packages through Docker was removed. (#1207)
- Error handling for incomplete or corrupted Github clones of templates has been improved. (#1210)
- Application/Bundle IDs are normalized to replace underscores with dashes when possible (#1234)
- Filenames and directories in RPM package definitions are quoted in order to include filenames that include white space. (#1236)
- Briefcase will no longer display progress bars if the
FORCE_COLOR
environment variable is set. (#1267) - When creating a new Briefcase project, the header line in
pyproject.toml
now contains the version of Briefcase instead of "Unknown". (#1276) - Android logs no longer include timestamp and PID, making them easier to read on narrow screens. (#1286)
- An warning is no longer logged if the Java identified by macOS is not usable by Briefcase. (#1305)
- Incompatibilities with Cookiecutter 2.2.0 have been resolved. (#1347)
Backward Incompatible Changes
- Names matching modules in the Python standard library, and
main
, can no longer be used as an application name. (#853) - The
--no-sign
option for packaging was removed. Briefcase will now prompt for a signing identity during packaging, falling back to adhoc/no signing as a default where possible. (#865) - The version of OpenJDK for Java was updated from 8 to 17. Any Android apps generated on previous versions of Briefcase must be re-generated by running
briefcase create android gradle
. If customizations were made to files within the generated app, they will need to be manually re-applied after re-running the create command. (#1065) - Flatpak apps no longer default to using the Freedesktop runtime and SDK version 21.08 when a runtime is not specified. Instead, the runtime now must be explicitly defined in the application configuration. (#1272)
Documentation
- All code blocks were updated to add a button to copy the relevant contents on to the user's clipboard. (#1213)
- The limitations of using WebKit2 in AppImage were documented. (#1322)
Misc
- #856, #1093, #1178, #1181, #1186, #1187, #1191, #1192, #1193, #1195, #1197, #1200, #1204, #1205, #1206, #1215, #1226, #1228, #1232, #1233, #1239, #1241, #1242, #1243, #1244, #1246, #1248, #1249, #1253, #1254, #1255, #1257, #1258, #1262, #1263, #1264, #1265, #1273, #1274, #1279, #1282, #1283, #1284, #1293, #1294, #1295, #1299, #1300, #1301, #1310, #1311, #1316, #1317, #1323, #1324, #1333, #1334, #1335, #1336, #1339, #1341, #1350, #1351