diff --git a/.metadata b/.metadata index 083a42e9..a2217950 100644 --- a/.metadata +++ b/.metadata @@ -15,24 +15,9 @@ migration: - platform: root create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - - platform: android - create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - - platform: ios - create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - - platform: linux - create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - platform: macos create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - - platform: web - create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - - platform: windows - create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf # User provided section diff --git a/lib/data/res/build_data.dart b/lib/data/res/build_data.dart index 35b2e430..0abc7b87 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 = 186; + static const int build = 187; static const String engine = "Flutter 3.7.0 • channel stable • https://github.com/flutter/flutter.git\nFramework • revision b06b8b2710 (4 days ago) • 2023-01-23 16:55:55 -0800\nEngine • revision b24591ed32\nTools • Dart 2.19.0 • DevTools 2.20.1\n"; - static const String buildAt = "2023-01-28 00:10:21.021365"; - static const int modifications = 8; + static const String buildAt = "2023-01-28 13:54:17.985459"; + static const int modifications = 13; } diff --git a/lib/data/res/terminal_theme.dart b/lib/data/res/terminal_theme.dart new file mode 100644 index 00000000..0f731f50 --- /dev/null +++ b/lib/data/res/terminal_theme.dart @@ -0,0 +1,54 @@ +import 'package:flutter/material.dart'; +import 'package:xterm/ui.dart'; + +const termDarkTheme = TerminalTheme( + cursor: Color(0XAAAEAFAD), + selection: Color(0XAAAEAFAD), + foreground: Color(0XFFCCCCCC), + background: Colors.black, + black: Color(0XFF000000), + red: Color(0XFFCD3131), + green: Color(0XFF0DBC79), + yellow: Color(0XFFE5E510), + blue: Color(0XFF2472C8), + magenta: Color(0XFFBC3FBC), + cyan: Color(0XFF11A8CD), + white: Color(0XFFE5E5E5), + brightBlack: Color(0XFF666666), + brightRed: Color(0XFFF14C4C), + brightGreen: Color(0XFF23D18B), + brightYellow: Color(0XFFF5F543), + brightBlue: Color(0XFF3B8EEA), + brightMagenta: Color(0XFFD670D6), + brightCyan: Color(0XFF29B8DB), + brightWhite: Color(0XFFFFFFFF), + searchHitBackground: Color(0XFFFFFF2B), + searchHitBackgroundCurrent: Color(0XFF31FF26), + searchHitForeground: Color(0XFF000000), +); + +const termLightTheme = TerminalTheme( + cursor: Color(0XFFAEAFAD), + selection: Color(0XFFAEAFAD), + foreground: Color(0XFF000000), + background: Color(0XFFFFFFFF), + black: Color(0XFF000000), + red: Color(0XFFCD3131), + green: Color(0XFF0DBC79), + yellow: Color(0XFFE5E510), + blue: Color(0XFF2472C8), + magenta: Color(0XFFBC3FBC), + cyan: Color(0XFF11A8CD), + white: Color(0XFFE5E5E5), + brightBlack: Color(0XFF666666), + brightRed: Color(0XFFF14C4C), + brightGreen: Color(0XFF23D18B), + brightYellow: Color(0XFFF5F543), + brightBlue: Color(0XFF3B8EEA), + brightMagenta: Color(0XFFD670D6), + brightCyan: Color(0XFF29B8DB), + brightWhite: Color(0XFFFFFFFF), + searchHitBackground: Color(0XFFFFFF2B), + searchHitBackgroundCurrent: Color(0XFF31FF26), + searchHitForeground: Color(0XFF000000), +); diff --git a/lib/generated/intl/messages_en.dart b/lib/generated/intl/messages_en.dart index 655dd1a5..1312568f 100644 --- a/lib/generated/intl/messages_en.dart +++ b/lib/generated/intl/messages_en.dart @@ -46,15 +46,18 @@ class MessageLookup extends MessageLookupByLibrary { static String m11(time) => "Spent time: ${time}"; - static String m12(name) => "Are you sure to delete [${name}]?"; + static String m12(url) => + "This function is now in the experimental stage. \nPlease report bugs on ${url} or join our development."; - static String m13(server) => "Are you sure to delete server [${server}]?"; + static String m13(name) => "Are you sure to delete [${name}]?"; - static String m14(build) => "Found: v1.0.${build}, click to update"; + static String m14(server) => "Are you sure to delete server [${server}]?"; - static String m15(build) => "Current: v1.0.${build}"; + static String m15(build) => "Found: v1.0.${build}, click to update"; - static String m16(build) => "Current: v1.0.${build}, is up to date"; + static String m16(build) => "Current: v1.0.${build}"; + + static String m17(build) => "Current: v1.0.${build}, is up to date"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -228,12 +231,13 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Show distribution logo"), "snippet": MessageLookupByLibrary.simpleMessage("Snippet"), "spentTime": m11, + "sshTip": m12, "start": MessageLookupByLibrary.simpleMessage("Start"), "stop": MessageLookupByLibrary.simpleMessage("Stop"), - "sureDelete": m12, + "sureDelete": m13, "sureNoPwd": MessageLookupByLibrary.simpleMessage( "Are you sure to use no password?"), - "sureToDeleteServer": m13, + "sureToDeleteServer": m14, "ttl": MessageLookupByLibrary.simpleMessage("ttl"), "unknown": MessageLookupByLibrary.simpleMessage("unknown"), "unknownError": MessageLookupByLibrary.simpleMessage("Unknown error"), @@ -248,9 +252,9 @@ class MessageLookup extends MessageLookupByLibrary { "upsideDown": MessageLookupByLibrary.simpleMessage("Upside Down"), "urlOrJson": MessageLookupByLibrary.simpleMessage("URL or JSON"), "user": MessageLookupByLibrary.simpleMessage("User"), - "versionHaveUpdate": m14, - "versionUnknownUpdate": m15, - "versionUpdated": m16, + "versionHaveUpdate": m15, + "versionUnknownUpdate": m16, + "versionUpdated": m17, "waitConnection": MessageLookupByLibrary.simpleMessage( "Please wait for the connection to be established."), "willTakEeffectImmediately": diff --git a/lib/generated/intl/messages_zh.dart b/lib/generated/intl/messages_zh.dart index 9ed61540..841b1a88 100644 --- a/lib/generated/intl/messages_zh.dart +++ b/lib/generated/intl/messages_zh.dart @@ -46,15 +46,17 @@ class MessageLookup extends MessageLookupByLibrary { static String m11(time) => "耗时: ${time}"; - static String m12(name) => "确定删除[${name}]?"; + static String m12(url) => "该功能目前处于测试阶段,请在 ${url} 反馈问题,或者加入我们开发。"; - static String m13(server) => "你确定要删除服务器 [${server}] 吗?"; + static String m13(name) => "确定删除[${name}]?"; - static String m14(build) => "找到新版本:v1.0.${build}, 点击更新"; + static String m14(server) => "你确定要删除服务器 [${server}] 吗?"; - static String m15(build) => "当前:v1.0.${build}"; + static String m15(build) => "找到新版本:v1.0.${build}, 点击更新"; - static String m16(build) => "当前:v1.0.${build}, 已是最新版本"; + static String m16(build) => "当前:v1.0.${build}"; + + static String m17(build) => "当前:v1.0.${build}, 已是最新版本"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -197,11 +199,12 @@ class MessageLookup extends MessageLookupByLibrary { "showDistLogo": MessageLookupByLibrary.simpleMessage("显示发行版 Logo"), "snippet": MessageLookupByLibrary.simpleMessage("代码片段"), "spentTime": m11, + "sshTip": m12, "start": MessageLookupByLibrary.simpleMessage("开始"), "stop": MessageLookupByLibrary.simpleMessage("停止"), - "sureDelete": m12, + "sureDelete": m13, "sureNoPwd": MessageLookupByLibrary.simpleMessage("确认使用无密码?"), - "sureToDeleteServer": m13, + "sureToDeleteServer": m14, "ttl": MessageLookupByLibrary.simpleMessage("缓存时间"), "unknown": MessageLookupByLibrary.simpleMessage("未知"), "unknownError": MessageLookupByLibrary.simpleMessage("未知错误"), @@ -215,9 +218,9 @@ class MessageLookup extends MessageLookupByLibrary { "upsideDown": MessageLookupByLibrary.simpleMessage("上下交换"), "urlOrJson": MessageLookupByLibrary.simpleMessage("链接或JSON"), "user": MessageLookupByLibrary.simpleMessage("用户"), - "versionHaveUpdate": m14, - "versionUnknownUpdate": m15, - "versionUpdated": m16, + "versionHaveUpdate": m15, + "versionUnknownUpdate": m16, + "versionUpdated": m17, "waitConnection": MessageLookupByLibrary.simpleMessage("请等待连接建立"), "willTakEeffectImmediately": MessageLookupByLibrary.simpleMessage("更改将会立即生效") diff --git a/lib/generated/l10n.dart b/lib/generated/l10n.dart index e8c54228..7a96587e 100644 --- a/lib/generated/l10n.dart +++ b/lib/generated/l10n.dart @@ -1530,6 +1530,16 @@ class S { args: [], ); } + + /// `This function is now in the experimental stage. \nPlease report bugs on {url} or join our development.` + String sshTip(Object url) { + return Intl.message( + 'This function is now in the experimental stage. \nPlease report bugs on $url or join our development.', + name: 'sshTip', + desc: '', + args: [url], + ); + } } class AppLocalizationDelegate extends LocalizationsDelegate { diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index d2b6215f..d302e07b 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -146,5 +146,6 @@ "goto": "Go to", "showDistLogo": "Show distribution logo", "onServerDetailPage": "On server detail page", - "addOne": "Add one" + "addOne": "Add one", + "sshTip": "This function is now in the experimental stage. \nPlease report bugs on {url} or join our development." } \ No newline at end of file diff --git a/lib/l10n/intl_zh.arb b/lib/l10n/intl_zh.arb index d4579c0d..6454c9ec 100644 --- a/lib/l10n/intl_zh.arb +++ b/lib/l10n/intl_zh.arb @@ -146,5 +146,6 @@ "goto": "前往", "showDistLogo": "显示发行版 Logo", "onServerDetailPage": "在服务器详情页", - "addOne": "前去新增" + "addOne": "前去新增", + "sshTip": "该功能目前处于测试阶段,请在 {url} 反馈问题,或者加入我们开发。" } \ No newline at end of file diff --git a/lib/view/page/server/tab.dart b/lib/view/page/server/tab.dart index 8a793a13..bea0901e 100644 --- a/lib/view/page/server/tab.dart +++ b/lib/view/page/server/tab.dart @@ -13,6 +13,7 @@ import 'package:toolbox/data/provider/server.dart'; import 'package:toolbox/data/provider/snippet.dart'; import 'package:toolbox/data/res/color.dart'; import 'package:toolbox/data/res/font_style.dart'; +import 'package:toolbox/data/res/url.dart'; import 'package:toolbox/generated/l10n.dart'; import 'package:toolbox/locator.dart'; import 'package:toolbox/view/page/pkg.dart'; @@ -25,6 +26,8 @@ import 'package:toolbox/view/page/ssh.dart'; import 'package:toolbox/view/widget/picker.dart'; import 'package:toolbox/view/widget/round_rect_card.dart'; +import '../../widget/url_text.dart'; + class ServerPage extends StatefulWidget { const ServerPage({Key? key}) : super(key: key); @@ -203,7 +206,22 @@ class _ServerPageState extends State Icons.terminal, size: 21, ), - onTap: () => AppRoute(SSHPage(spi: spi), 'ssh page').go(context), + onTap: () => showRoundDialog( + context, + _s.attention, + UrlText( + text: _s.sshTip(issueUrl), + replace: 'Github Issue', + ), + [ + TextButton( + onPressed: () { + Navigator.of(context).pop(); + AppRoute(SSHPage(spi: spi), 'ssh page').go(context); + }, + child: Text(_s.ok), + ) + ]), ); } diff --git a/lib/view/page/ssh.dart b/lib/view/page/ssh.dart index be401def..dd0d9965 100644 --- a/lib/view/page/ssh.dart +++ b/lib/view/page/ssh.dart @@ -3,10 +3,13 @@ import 'dart:convert'; import 'package:dartssh2/dartssh2.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:toolbox/data/res/font_style.dart'; import 'package:xterm/xterm.dart'; +import '../../core/utils.dart'; import '../../data/model/server/server_private_info.dart'; import '../../data/provider/server.dart'; +import '../../data/res/terminal_theme.dart'; import '../../locator.dart'; import '../widget/virtual_keyboard.dart'; @@ -20,10 +23,11 @@ class SSHPage extends StatefulWidget { class _SSHPageState extends State { late final terminal = Terminal(inputHandler: keyboard); - + late final SSHSession session; final keyboard = VirtualKeyboard(defaultInputHandler); var title = ''; + var isDark = false; @override void initState() { @@ -31,6 +35,18 @@ class _SSHPageState extends State { initTerminal(); } + @override + void didChangeDependencies() { + super.didChangeDependencies(); + isDark = isDarkMode(context); + } + + @override + void dispose() { + session.close(); + super.dispose(); + } + Future initTerminal() async { terminal.write('Connecting...\r\n'); @@ -46,7 +62,7 @@ class _SSHPageState extends State { terminal.write('Connected\r\n'); - final session = await client.shell( + session = await client.shell( pty: SSHPtyConfig( width: terminal.viewWidth, height: terminal.viewHeight, @@ -83,14 +99,17 @@ class _SSHPageState extends State { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text(title), - backgroundColor: - Theme.of(context).appBarTheme.backgroundColor?.withOpacity(0.5), + title: Text(title, style: textSize18), ), body: Column( children: [ Expanded( - child: TerminalView(terminal, keyboardType: TextInputType.none), + child: TerminalView( + terminal, + keyboardType: TextInputType.visiblePassword, + theme: isDark ? termDarkTheme : termLightTheme, + keyboardAppearance: isDark ? Brightness.dark : Brightness.light, + ), ), VirtualKeyboardView(keyboard), ], diff --git a/lib/view/widget/virtual_keyboard.dart b/lib/view/widget/virtual_keyboard.dart index 5625e2c7..3b35f9d1 100644 --- a/lib/view/widget/virtual_keyboard.dart +++ b/lib/view/widget/virtual_keyboard.dart @@ -11,6 +11,7 @@ class VirtualKeyboardView extends StatelessWidget { return AnimatedBuilder( animation: keyboard, builder: (context, child) => ToggleButtons( + renderBorder: false, isSelected: [keyboard.ctrl, keyboard.alt, keyboard.shift], onPressed: (index) { switch (index) { diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index d7caa021..2f2b7b61 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -26,7 +26,7 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - C86960F09D66BFB9F9EAF159 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 12CD422E1FDAE58EFAA39492 /* Pods_Runner.framework */; }; + E3D733E2A8794200D26EFCCF /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7ADDB81DD1CCC4A9ED73177B /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -53,7 +53,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 12CD422E1FDAE58EFAA39492 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; 33CC10ED2044A3C60003C045 /* server_box.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = server_box.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -68,11 +67,12 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 62CF3F38CCFA54DE5E957523 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 6B35024F2A8A5A7961F90167 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 6F4CBCB4E20C50200E1C67AD /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 7ADDB81DD1CCC4A9ED73177B /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - B6755FBA95AAD9208D08281D /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - E8756DDE15E6B592B0279207 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + A3006D048053A6426855B015 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -80,24 +80,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C86960F09D66BFB9F9EAF159 /* Pods_Runner.framework in Frameworks */, + E3D733E2A8794200D26EFCCF /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 14E85A356189F50B8E9FC339 /* Pods */ = { - isa = PBXGroup; - children = ( - E8756DDE15E6B592B0279207 /* Pods-Runner.debug.xcconfig */, - B6755FBA95AAD9208D08281D /* Pods-Runner.release.xcconfig */, - 62CF3F38CCFA54DE5E957523 /* Pods-Runner.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; 33BA886A226E78AF003329D5 /* Configs */ = { isa = PBXGroup; children = ( @@ -116,7 +105,7 @@ 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, - 14E85A356189F50B8E9FC339 /* Pods */, + B9C356C33EBFDC4109524AEE /* Pods */, ); sourceTree = ""; }; @@ -163,10 +152,21 @@ path = Runner; sourceTree = ""; }; + B9C356C33EBFDC4109524AEE /* Pods */ = { + isa = PBXGroup; + children = ( + 6B35024F2A8A5A7961F90167 /* Pods-Runner.debug.xcconfig */, + A3006D048053A6426855B015 /* Pods-Runner.release.xcconfig */, + 6F4CBCB4E20C50200E1C67AD /* Pods-Runner.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( - 12CD422E1FDAE58EFAA39492 /* Pods_Runner.framework */, + 7ADDB81DD1CCC4A9ED73177B /* Pods_Runner.framework */, ); name = Frameworks; sourceTree = ""; @@ -178,13 +178,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 59089466276869E3A7766664 /* [CP] Check Pods Manifest.lock */, + 6380F17CF8505331723EA2D3 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - 4365C365EEF06532F9E082D0 /* [CP] Embed Pods Frameworks */, + 3A1CB36BB218FE124CA9BC01 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -292,7 +292,7 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - 4365C365EEF06532F9E082D0 /* [CP] Embed Pods Frameworks */ = { + 3A1CB36BB218FE124CA9BC01 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -309,7 +309,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 59089466276869E3A7766664 /* [CP] Check Pods Manifest.lock */ = { + 6380F17CF8505331723EA2D3 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig index ef3e8e52..e031c921 100644 --- a/macos/Runner/Configs/AppInfo.xcconfig +++ b/macos/Runner/Configs/AppInfo.xcconfig @@ -11,4 +11,4 @@ PRODUCT_NAME = server_box PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.serverBox // The copyright displayed in application information -PRODUCT_COPYRIGHT = Copyright © 2022 com.lollipopkit. All rights reserved. +PRODUCT_COPYRIGHT = Copyright © 2023 com.lollipopkit. All rights reserved.