Features
- Apps can be updated as part of a call to package. (#473)
- The Android emulator can now be used on Apple M1 hardware. (#616)
- Names that are reserved words in Python (or other common programming languages) are now prevented when creating apps. (#617)
- Names that are invalid on Windows as filenames (such as CON and LPT0) are now invalid as app names. (#685)
- Verbose logging via -v and -vv now includes the return code, output, and environment variables for shell commands (#704)
- When the output of a wrapped command cannot be parsed, full command output, and failure reason is now logged. (#728)
- The iOS emulator will now run apps natively on M1 hardware, rather than through Rosetta emulation. (#739)
Bugfixes
- Bundle identifiers are now validated to ensure they don't contain reserved words. (#460)
- The error reporting when the user is on an unsupported platform or Python version has been improved. (#541)
- When the formal name uses non-Latin characters, the suggested Class and App names are now valid. (#612)
- The code signing process for macOS apps has been made more robust. (#652)
- macOS app binaries are now adhoc signed by default, ensuring they can run on M1 hardware. (#664)
- Xcode version checks are now more robust. (#668)
- Android projects that have punctuation in their formal names can now build without error. (#696)
- Bundle name validation no longer excludes valid country identifiers (like
in.example
). (#709) - Application code and dist-info is now fully replaced during an update. (#720)
- Errors related to Java JDK detection now properly contain the value of JAVA_HOME instead of the word None (#727)
- All log entries will now be displayed for the run command on iOS and macOS; previously, initial log entries may have been omitted. (#731)
- Using CTRL+C to stop showing Android emulator logs while running the app will no longer cause the emulator to shutdown. (#733)