сборка: APK (Android) + Linux Desktop

- Исправлены ошибки Flutter анализа (withOpacity, pbkdf2, импорты)
- Упрощён pubspec.yaml (только нужные зависимости)
- Android APK собран: build/app/outputs/flutter-apk/app-release.apk (22MB)
- Linux Desktop собран: build/linux/x64/release/bundle/jam_client

Для Windows: кросс-компиляция невозможна с Linux.
Нужен Windows хост для flutter build windows.
This commit is contained in:
SashegDev
2026-06-06 23:07:57 +00:00
parent 04230fa7f0
commit 2347f382c6
50 changed files with 877 additions and 122 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 917 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

+30 -54
View File
@@ -1,62 +1,38 @@
<!DOCTYPE html>
<html lang="en">
<html>
<head>
<!--
If you are serving your web app in a path other than the root, change the
href value below to reflect the base path you are serving from.
The path provided below has to start and end with a slash "/" in order for
it to work correctly.
For more details:
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
This is a placeholder for base href that will be replaced by the value of
the `--base-href` argument provided to `flutter build`.
-->
<base href="$FLUTTER_BASE_HREF">
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
<title>JustAMessenger</title>
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<meta name="description" content="A new Flutter project.">
<!-- iOS meta tags & icons -->
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-title" content="jam_client">
<link rel="apple-touch-icon" href="icons/Icon-192.png">
<!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png"/>
<title>jam_client</title>
<link rel="manifest" href="manifest.json">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background: #313338; color: #F2F3F5; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; overflow: hidden; }
#loading {
display: flex; flex-direction: column; align-items: center; justify-content: center;
height: 100vh; width: 100vw;
}
.jam-logo {
width: 80px; height: 80px; background: #5865F2; border-radius: 20px;
display: flex; align-items: center; justify-content: center;
font-size: 32px; font-weight: 800; color: white; letter-spacing: 2px;
box-shadow: 0 0 40px rgba(88, 101, 242, 0.4);
margin-bottom: 24px;
}
.spinner {
width: 32px; height: 32px; border: 3px solid #3F4147;
border-top-color: #5865F2; border-radius: 50%;
animation: spin 0.8s linear infinite; margin-top: 16px;
}
@keyframes spin { to { transform: rotate(360deg); } }
.subtitle { color: #80848E; font-size: 14px; margin-top: 8px; }
.version { color: #5865F2; font-size: 12px; margin-top: 24px; }
flutter-view { height: 100vh; width: 100vw; }
</style>
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/flutter_service_worker.js');
});
}
</script>
</head>
<body>
<div id="loading">
<div class="jam-logo">JAM</div>
<div class="spinner"></div>
<div class="subtitle">JustAMessenger</div>
<div class="version">v0.1.0</div>
</div>
<script src="flutter.js" defer></script>
<script>
window.addEventListener('load', function() {
const loading = document.getElementById('loading');
_flutter.loader.loadEntryPoint({
onEntryPointLoaded: function(engineInitializer) {
loading.style.display = 'none';
engineInitializer.initializeEngine().then(function(appRunner) {
appRunner.runApp();
});
}
});
});
</script>
<script src="flutter_bootstrap.js" async></script>
</body>
</html>
+33 -19
View File
@@ -1,21 +1,35 @@
{
"name": "JustAMessenger",
"short_name": "JAM",
"start_url": ".",
"display": "standalone",
"background_color": "#313338",
"theme_color": "#5865F2",
"description": "Lightweight Decentralized Messenger",
"icons": [
{
"src": "icons/Icon-192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "icons/Icon-512.png",
"sizes": "512x512",
"type": "image/png"
}
]
"name": "jam_client",
"short_name": "jam_client",
"start_url": ".",
"display": "standalone",
"background_color": "#0175C2",
"theme_color": "#0175C2",
"description": "A new Flutter project.",
"orientation": "portrait-primary",
"prefer_related_applications": false,
"icons": [
{
"src": "icons/Icon-192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "icons/Icon-512.png",
"sizes": "512x512",
"type": "image/png"
},
{
"src": "icons/Icon-maskable-192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "icons/Icon-maskable-512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
]
}