Commit Graph

224 Commits

Author SHA1 Message Date
c5db2cfec2 [.NET] Require net9.0 for Android exports
To ensure Android exports are compatible with the new Play Store
requirement that all `.so` libraries included are aligned to 16k,
we now require C# projects to target `net9.0` which uses the
correct alignment (as opposed to the current one of 4k).

The thirdparty jar library has also been updated to the one from
the 9.0.4 runtime package so it's compatible with non-gradle
builds targeting `net9.0`.

Non-android projects are not affect, the minimum TFM is still
`net8.0`.
2025-09-26 17:11:31 +05:30
8f2ad2eb42 Update to the AAB directory layout
Follow-up to https://github.com/godotengine/godot/pull/106152 to address the regression described in https://github.com/godotengine/godot/issues/106582
2025-09-26 16:26:43 +05:30
0e7b067701 [Android] Store native libraries uncompressed in APK 2025-09-26 16:06:33 +05:30
284d0332dd Annual versions bump for the Android platform
- gradle: 8.2 -> 8.11.1
- androidx.constraintlayout:constraintlayout: 2.1.4 -> 2.2.1
- Android gradle plugin: 8.2.0 -> 8.6.1
- Android compile sdk: 34 -> 35
- Android target sdk: 34 -> 35
- Android build tools: 34.0.0 -> 35.0.0
- kotlin: 1.9.20 -> 2.1.20
- androidx.fragment:fragment: 1.7.1 -> 1.8.6
- OpenXR vendors plugin: 3.1.2-stable -> 4.0.0-stable
2025-09-26 16:04:19 +05:30
9622b4b681 Update the zipalign implementation to properly align APKs with uncompressed .so libraries 2025-05-12 15:54:50 -07:00
6ef29a0e55 Convert compress_native_libraries to a basic export option
(cherry picked from commit f3155412af)
2025-03-18 14:06:16 +01:00
28d1dccf63 Android: Fix export and runtime logic to check if using Vulkan
Also fix iOS export logic that would force a min target of iOS 14.0 (for Metal)
even when targeting the Compatibility renderer.

Co-authored-by: Pāvels Nadtočajevs <7645683+bruvzg@users.noreply.github.com>
2025-02-23 12:28:59 +01:00
70ff213de5 C#: Validate project TFM for Android template exports
The C# Android export template includes `.jar` dependencies from .NET 8.0, so other TFMs are not supported.
2025-02-10 17:19:05 +01:00
9e4365f1a7 Export the rendering/renderer/rendering_method.mobile project setting to the AndroidManifest
The AndroidManifest already stores the Godot editor and library versions. The addition of this meta-data allows to identify Godot Android apps that may be subject to renderer specific issues addressed in future versions of the engine.
2025-02-04 21:11:56 -08:00
b3f7c8f5d3 [Export] Respect icon/splash screen import settings. 2025-01-31 07:45:16 +02:00
b238fe25e1 Merge pull request #101996 from syntaxerror247/fix-swipe-to-dismiss
Android: Keep swipe-to-dismiss disabled by default
2025-01-28 09:03:30 -06:00
6df21a8fdc Android: Keep swipe-to-dismiss disabled by default 2025-01-27 23:45:58 +05:30
4c4f29a490 Fix several i18n issues in editor 2025-01-26 16:41:10 +08:00
b4f25b1863 Clean up the XR editor logic
- Coalesce common logic into the `main` flavor to avoid duplication
- Code cleanup
2025-01-16 09:40:30 -08:00
17279cdf45 Use implicit launch when running a Godot Android project from the editor
This allows developers to override the default launching activity (`com.godot.game.GodotApp`) with a custom one if desired.
Logic is added to fallback to the default launching activity if the implicit launch fails.
2025-01-13 08:52:17 -08:00
34d8255947 Force build editor with regex module, remove checking code.
Fix include.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-07 19:43:23 +08:00
d15e559355 Merge pull request #100103 from Summersay415/idsig
Android: Delete `.idsig` on One Click Deploy
2025-01-06 22:47:29 +01:00
bb76e721e9 Respect system user setting for (un)installing APK 2024-12-30 17:37:24 +01:00
3d8ecc452a Delete .idsig on One Click Deploy 2024-12-29 13:53:17 +07:00
96c6dec9a7 Android Code Cleanup: Rename constants to uppercase 2024-12-23 14:14:41 +05:30
5d8e2cd63f Add option to disable Swipe-to-Dismiss for Wear OS 2024-12-20 23:21:50 +05:30
2d3f6963b2 Update the visibility for the custom templates for all platforms
Hide the custom template options behind the `Advanced Options` toggle
2024-12-17 13:08:47 -08:00
00a791f04e Use temp dirs instead of cache dirs for export
Fixes #95897
During CI scenarios $HOME may be set to an invalid value (such as
`/var/empty`).
Using temp dirs fits better with godot's usage of these paths and is
independent from the user's $HOME.
2024-12-08 12:07:17 +00:00
1719f8ed3d Merge pull request #99834 from kiroxas/passLengthToParseUTF8
Ensure `parse_utf8` has length of string passed in when available
2024-12-03 14:41:06 -06:00
6e8c0a43c3 Merge pull request #99378 from syntaxerror247/optional_monochrome_icon
Android: Refactor icon logic and make monochrome icon optional
2024-12-03 14:40:52 -06:00
f767cf00fd Android: Make monochrome icon optional 2024-12-02 22:04:38 +05:30
83d4bde0a2 When calling code has length of string, pass it to parse_utf8 2024-12-01 08:31:22 +01:00
796d943f14 Fix missing space after period in error message. 2024-11-24 02:46:42 +01:00
650e96b768 Merge pull request #99353 from syntaxerror247/some_uid_issues
Fix Android boot splash and gradle build issue
2024-11-19 15:20:23 -06:00
5e09d747e8 Revert "Add warning when monochrome icon is not specified"
This reverts commit a84292e835.
2024-11-19 21:27:56 +05:30
728927425f Fix Android boot splash and gradle build issue 2024-11-18 21:12:22 +05:30
68f638cf02 Use (r)find_char instead of (r)find for single characters 2024-11-17 10:02:18 +01:00
45593d45b3 Allow setting custom initialization vector for FileAccessEncrypted. Add export setting to set static seed for PCK encryption initialization vectors. 2024-11-13 08:16:12 +02:00
a73e2d459e Merge pull request #98604 from Summersay415/read-music
Android: Add various media permissions
2024-11-12 12:13:08 -06:00
b6bbd4034e Merge pull request #98971 from syntaxerror247/new_appCategory
Add `CATEGORY_UNDEFINED` option in Android export
2024-11-12 09:27:45 -06:00
2ac562cdf8 Add ability for PCK patches to remove files
Co-authored-by: Mikael Hermansson <mikael@hermansson.io>
2024-11-11 16:34:37 +01:00
b2cb858572 Android: Add app_category "Undefined" 2024-11-08 23:37:27 +05:30
b00e1cbf74 Merge pull request #97631 from m4gr3d/prompt_apk_install_after_generation
[Android editor] Enable automatic install of exported apks for the Android editor
2024-11-04 21:52:08 -06:00
a84292e835 Add warning when monochrome icon is not specified 2024-10-29 21:19:21 +07:00
af2423ba4d Enable automatic install of export apks for the Android editor 2024-10-28 16:12:16 -07:00
4fd53eb128 Add media permissions 2024-10-28 19:14:20 +07:00
4587d14796 Add logic to automatically pick up jar/aar library dependencies in the res://addons directory 2024-09-29 14:32:10 -07:00
dbcc7f3051 Add support for Android Themed Icons (monochrome) 2024-09-27 13:56:34 +02:00
0aa46e19c5 C#: Fallback to CoreCLR/MonoVM hosting APIs when hostfxr/NativeAOT fails
Some platforms don't support hostfxr but we can use the coreclr/monosgen library directly to initialize the runtime.

Android exports now use the `android` runtime identifier instead of `linux-bionic`, this removes the restrictions we previously had:
- Adds support for all Android architectures (arm32, arm64, x32, and x64), previously only the 64-bit architectures were supported.
- Loads `System.Security.Cryptography.Native.Android` (the .NET library that binds to the Android OS crypto functions).
2024-09-16 17:07:03 +02:00
e064efccbc Fix editor_doc_cache locked on editor startup 2024-09-14 09:37:04 -04:00
2c991a727b [Windows] Only use long executable path when necessary, fix broken apksigner detection. 2024-09-10 10:34:44 +03:00
b128e71383 Merge pull request #96208 from m4gr3d/cleanup_immersive_logic
Restore fullscreen toggle menu for the Android editor and clean up the immersive mode logic
2024-08-30 09:59:27 +02:00
923b0f2e56 Restore 'Toggle fullscreen' menu for the Android editor and clean up the immersive mode logic 2024-08-28 09:50:34 -07:00
07e986f728 Allow adding custom export platforms using scripts / GDExtension. 2024-08-28 10:29:01 +03:00
a5897d579b Update the GodotHost interface to support signing and verifying Android apks
Update the export logic to enable apk generation and signing for Android editor builds

Note: Only legacy builds are supported. Gradle builds are not supported at this point in time.
2024-08-26 11:16:38 -07:00