diff --git a/README.md b/README.md index ff5c8f44..91b60d53 100644 --- a/README.md +++ b/README.md @@ -14,16 +14,18 @@ A Flutter project which provide charts to display Linu Especially thanks to dartssh2 & xterm.dart.

+## ⬇️ Download +[iOS](https://apps.apple.com/app/id1586449703) / [Android](https://cdn.lolli.tech/serverbox/latest.apk) / [macOS](https://apps.apple.com/app/id1586449703): Full support with my own certificate +[Linux](https://cdn.lolli.tech/serverbox/latest.AppImage) / [Windows](https://cdn.lolli.tech/serverbox/latest.win.zip): Basically tested, with debug certificate + ## 🔖 Feature -- [x] Functions - - [x] `SSH` Terminal, `SFTP`, `Docker & Pkg & Process`, Status chart, Code editor... - - [x] Platform specific: `Bio auth`、`Msg push`、`Home widget`、`watchOS App`... -- [x] Localization +- Status chart, `SSH` Terminal, `SFTP`, `Docker & Pkg & Process`, Code editor... +- Platform specific: `Bio auth`、`Msg push`、`Home widget`、`watchOS App`... +- Localization - English, 简体中文 - Español, Русский язык, Português, 日本語 (Generated by GPT) - - Deutsch (@its-tom) / 繁體中文 (@kalashnikov) / Indonesian (@azkadev) / Français (@FrancXPT) -- [x] Platform support: `iOS / Android / macOS / Windows / Linux` + - Deutsch (@its-tom) / 繁體中文 (@kalashnikov) / Indonesian (@azkadev) / Français (@FrancXPT) / Dutch (@QazCetelic) ## 🏙️ ScreenShots @@ -55,13 +57,6 @@ Especially thanks to dartss -## ⬇️ Download -Platform | Support | Sign ---- | --- | --- -[iOS](https://apps.apple.com/app/id1586449703) / [Android](https://cdn.lolli.tech/serverbox/latest.apk) / [macOS](https://apps.apple.com/app/id1586449703) | Full | My own certificate -[Linux](https://cdn.lolli.tech/serverbox/latest.AppImage) / [Windows](https://cdn.lolli.tech/serverbox/latest.win.zip) | Not tested | Flutter default certificate - - ## 🆘 Help - In order to push server status to your portable device without opening ServerBox app (Such as **message push** and **home widget**), you need to install [ServerBoxMonitor](https://github.com/lollipopkit/server_box_monitor) on your servers, and config it correctly. See [wiki](https://github.com/lollipopkit/server_box_monitor/wiki) for more details. - **Common issues** can be found in [app wiki](https://github.com/lollipopkit/flutter_server_box/wiki). @@ -81,6 +76,12 @@ After you read the above, you can: - [l10n guide](https://blog.lolli.tech/faq/) can be found in my blog. +## 👏🏼 Contributors + + + + + ## 💡 My other apps - [GPT Box](https://github.com/lollipopkit/flutter_gpt_box) - A third-party GPT Client for OpenAI API on all platforms. - [2FA Box](https://github.com/lollipopkit/flutter_2fa) - Open source 2FA app for Android, iOS and the web. diff --git a/README_zh.md b/README_zh.md index fafe82dc..70b45d62 100644 --- a/README_zh.md +++ b/README_zh.md @@ -15,15 +15,18 @@

+## ⬇️ Download +[iOS](https://apps.apple.com/app/id1586449703) / [Android](https://cdn.lolli.tech/serverbox/latest.apk) / [macOS](https://apps.apple.com/app/id1586449703): 经过测试,使用自签名证书 +[Linux](https://cdn.lolli.tech/serverbox/latest.AppImage) / [Windows](https://cdn.lolli.tech/serverbox/latest.win.zip): 经过不完全测试,使用调试证书 + + ## 🔖 特点 -- [x] 功能 - - [x] `SSH` 终端, `SFTP`, `Docker & 包 & 进程` 管理器, 状态图表, 代码编辑器... - - [x] 特殊支持:`生物认证`、`推送`、`桌面小部件`、`watchOS App`、`跟随系统颜色`... -- [x] 本地化 +- 状态图表, `SSH` 终端, `SFTP`, `Docker & 包 & 进程` 管理器, 代码编辑器... +- 特殊支持:`生物认证`、`推送`、`桌面小部件`、`watchOS App`、`跟随系统颜色`... +- 本地化 - English, 简体中文 - Español, Русский язык, Português, 日本語 (Generated by GPT) - - Deutsch (@its-tom) / 繁體中文 (@kalashnikov) / Indonesian (@azkadev) / Français (@FrancXPT) -- [x] 全平台支持(除 `Web`) + - Deutsch (@its-tom) / 繁體中文 (@kalashnikov) / Indonesian (@azkadev) / Français (@FrancXPT) / Dutch (@QazCetelic) ## 🏙️ 截屏 @@ -55,13 +58,6 @@ -## ⬇️ 下载 -平台 | 支持 | 签名 -:-: | :-: | :-: -[iOS](https://apps.apple.com/app/id1586449703) / [Android](https://cdn.lolli.tech/serverbox/latest.apk) / [macOS](https://apps.apple.com/app/id1586449703) | 完整 | 个人可信签名 -[Linux](https://cdn.lolli.tech/serverbox/latest.AppImage) / [Windows](https://cdn.lolli.tech/serverbox/latest.win.zip) | 未测试 | Flutter 默认签名 - - ## 🆘 帮助 - 吹水、参与开发、了解如何使用,QQ群 **762870488** @@ -83,6 +79,12 @@ - [本地化翻译指南](https://blog.lolli.tech/faq/) 可在我的博客中找到。 +## 👏🏼 贡献者 + + + + + ## 💡 我的其它 Apps - [GPT Box](https://github.com/lollipopkit/flutter_gpt_box) - 支持 OpenAI API 的 第三方全平台客户端。 - [2FA Box](https://github.com/lollipopkit/flutter_2fa) - 开源的 2FA 应用。 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 995ec8e3..a86fe19c 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -672,7 +672,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 845; + CURRENT_PROJECT_VERSION = 852; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -682,7 +682,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.845; + MARKETING_VERSION = 1.0.852; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -808,7 +808,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 845; + CURRENT_PROJECT_VERSION = 852; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -818,7 +818,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.845; + MARKETING_VERSION = 1.0.852; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -836,7 +836,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 845; + CURRENT_PROJECT_VERSION = 852; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -846,7 +846,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.845; + MARKETING_VERSION = 1.0.852; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -867,7 +867,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 845; + CURRENT_PROJECT_VERSION = 852; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -880,7 +880,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.845; + MARKETING_VERSION = 1.0.852; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; @@ -906,7 +906,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 845; + CURRENT_PROJECT_VERSION = 852; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -919,7 +919,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.845; + MARKETING_VERSION = 1.0.852; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -942,7 +942,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 845; + CURRENT_PROJECT_VERSION = 852; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -955,7 +955,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.845; + MARKETING_VERSION = 1.0.852; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -978,7 +978,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 845; + CURRENT_PROJECT_VERSION = 852; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -990,7 +990,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.845; + MARKETING_VERSION = 1.0.852; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; @@ -1019,7 +1019,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 845; + CURRENT_PROJECT_VERSION = 852; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -1031,7 +1031,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.845; + MARKETING_VERSION = 1.0.852; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_NAME = ServerBox; @@ -1057,7 +1057,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 845; + CURRENT_PROJECT_VERSION = 852; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -1069,7 +1069,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.845; + MARKETING_VERSION = 1.0.852; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_NAME = ServerBox; diff --git a/lib/core/extension/build.dart b/lib/core/extension/build.dart new file mode 100644 index 00000000..9aac6332 --- /dev/null +++ b/lib/core/extension/build.dart @@ -0,0 +1,5 @@ +import 'package:toolbox/data/res/build_data.dart'; + +extension BuildDataX on BuildData { + static const versionStr = 'v1.0.${BuildData.build}'; +} diff --git a/lib/data/res/build_data.dart b/lib/data/res/build_data.dart index 167f1dfd..17677209 100644 --- a/lib/data/res/build_data.dart +++ b/lib/data/res/build_data.dart @@ -2,9 +2,9 @@ class BuildData { static const String name = "ServerBox"; - static const int build = 845; + static const int build = 852; static const String engine = "3.19.5"; - static const String buildAt = "2024-04-09 16:51:43"; - static const int modifications = 2; + static const String buildAt = "2024-04-10 23:54:34"; + static const int modifications = 5; static const int script = 44; } diff --git a/lib/data/res/github_id.dart b/lib/data/res/github_id.dart index f741c1b0..b2c30bfc 100644 --- a/lib/data/res/github_id.dart +++ b/lib/data/res/github_id.dart @@ -13,7 +13,9 @@ abstract final class GithubIds { 'calvinweb', 'Liloupar', 'dccif', + 'QazCetelic', }; + static const participants = { 'jaychoubaby', 'fecture', @@ -65,5 +67,8 @@ abstract final class GithubIds { 'MoMingRose', 'sakalakagg', 'cz32483490', + 'zj1123581321', + 'pctoolsx', + 'pgs666', }; } diff --git a/lib/view/page/home/home.dart b/lib/view/page/home/home.dart index 232189aa..0c883851 100644 --- a/lib/view/page/home/home.dart +++ b/lib/view/page/home/home.dart @@ -7,6 +7,7 @@ import 'package:get_it/get_it.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:toolbox/core/channel/bg_run.dart'; import 'package:toolbox/core/channel/home_widget.dart'; +import 'package:toolbox/core/extension/build.dart'; import 'package:toolbox/core/extension/context/common.dart'; import 'package:toolbox/core/extension/context/dialog.dart'; import 'package:toolbox/core/extension/context/locale.dart'; @@ -206,12 +207,12 @@ class _HomePageState extends State _buildIcon(), TextButton( onPressed: () => context.showRoundDialog( - title: Text(_versionStr), + title: const Text(BuildDataX.versionStr), child: const Text( '${BuildData.buildAt}\nFlutter ${BuildData.engine}'), ), - child: Text( - '${BuildData.name}\n$_versionStr', + child: const Text( + '${BuildData.name}\n${BuildDataX.versionStr}', textAlign: TextAlign.center, style: UIs.text15, ), @@ -309,14 +310,6 @@ ${GithubIds.participants.map((e) => '[$e](${e.url})').join(' ')} ); } - String get _versionStr { - var mod = ''; - if (BuildData.modifications != 0) { - mod = '(+${BuildData.modifications})'; - } - return 'v1.0.${BuildData.build}$mod'; - } - @override bool get wantKeepAlive => true; @@ -336,6 +329,7 @@ ${GithubIds.participants.map((e) => '[$e](${e.url})').join(' ')} await Pros.server.refresh(); } + // It's required by RUpgrade to send update progress Future _reqNotiPerm() async { if (!isAndroid) return; final suc = await PermUtils.request(Permission.notification); diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index b4064677..82dc8243 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -471,7 +471,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 845; + CURRENT_PROJECT_VERSION = 852; DEVELOPMENT_TEAM = BA88US33G6; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Server Box"; @@ -481,7 +481,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.0.845; + MARKETING_VERSION = 1.0.852; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -608,7 +608,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 845; + CURRENT_PROJECT_VERSION = 852; DEVELOPMENT_TEAM = BA88US33G6; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Server Box"; @@ -618,7 +618,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.0.845; + MARKETING_VERSION = 1.0.852; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -638,7 +638,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 845; + CURRENT_PROJECT_VERSION = 852; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=macosx*]" = BA88US33G6; INFOPLIST_FILE = Runner/Info.plist; @@ -649,7 +649,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.0.845; + MARKETING_VERSION = 1.0.852; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = "";