diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n.dart b/.dart_tool/flutter_gen/gen_l10n/l10n.dart index 75d25626..ec919b4a 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n.dart @@ -176,6 +176,12 @@ abstract class S { /// **'Auto check update'** String get autoCheckUpdate; + /// No description provided for @autoConnect. + /// + /// In en, this message translates to: + /// **'Auto connect'** + String get autoConnect; + /// No description provided for @autoUpdateHomeWidget. /// /// In en, this message translates to: diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart index c41b09ed..446f987c 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart @@ -43,6 +43,9 @@ class SDe extends S { @override String get autoCheckUpdate => 'Aktualisierung automatisch prüfen'; + @override + String get autoConnect => 'Automatisch verbinden'; + @override String get autoUpdateHomeWidget => 'Home-Widget automatisch aktualisieren'; diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart index 54dedb48..c2dc35b6 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart @@ -43,6 +43,9 @@ class SEn extends S { @override String get autoCheckUpdate => 'Auto check update'; + @override + String get autoConnect => 'Auto connect'; + @override String get autoUpdateHomeWidget => 'Auto update home widget'; diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_id.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_id.dart index df5c698c..a47719d0 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_id.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_id.dart @@ -43,6 +43,9 @@ class SId extends S { @override String get autoCheckUpdate => 'Periksa pembaruan otomatis'; + @override + String get autoConnect => 'Hubungkan otomatis'; + @override String get autoUpdateHomeWidget => 'Widget Rumah Pembaruan Otomatis'; diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart index 52ccc92d..24cfae9d 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart @@ -43,6 +43,9 @@ class SZh extends S { @override String get autoCheckUpdate => '自动检查更新'; + @override + String get autoConnect => '自动连接'; + @override String get autoUpdateHomeWidget => '自动更新桌面小部件'; @@ -766,6 +769,9 @@ class SZhTw extends SZh { @override String get autoCheckUpdate => '自動檢查更新'; + @override + String get autoConnect => '自動連接'; + @override String get autoUpdateHomeWidget => '自動更新桌面小部件'; diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 0597fe91..309c51df 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -470,7 +470,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 522; + CURRENT_PROJECT_VERSION = 525; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -478,7 +478,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.522; + MARKETING_VERSION = 1.0.525; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -602,7 +602,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 522; + CURRENT_PROJECT_VERSION = 525; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -610,7 +610,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.522; + MARKETING_VERSION = 1.0.525; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -628,7 +628,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 522; + CURRENT_PROJECT_VERSION = 525; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -636,7 +636,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.522; + MARKETING_VERSION = 1.0.525; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -657,7 +657,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 522; + CURRENT_PROJECT_VERSION = 525; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -670,7 +670,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.522; + MARKETING_VERSION = 1.0.525; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; @@ -696,7 +696,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 522; + CURRENT_PROJECT_VERSION = 525; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -709,7 +709,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.522; + MARKETING_VERSION = 1.0.525; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -732,7 +732,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 522; + CURRENT_PROJECT_VERSION = 525; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -745,7 +745,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.522; + MARKETING_VERSION = 1.0.525; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/lib/data/model/server/server_private_info.dart b/lib/data/model/server/server_private_info.dart index ce8b94a1..dbdd7223 100644 --- a/lib/data/model/server/server_private_info.dart +++ b/lib/data/model/server/server_private_info.dart @@ -7,23 +7,25 @@ part 'server_private_info.g.dart'; @HiveType(typeId: 3) class ServerPrivateInfo { @HiveField(0) - late String name; + final String name; @HiveField(1) - late String ip; + final String ip; @HiveField(2) - late int port; + final int port; @HiveField(3) - late String user; + final String user; @HiveField(4) - late String pwd; + final String? pwd; @HiveField(5) - String? pubKeyId; + final String? pubKeyId; @HiveField(6) - List? tags; + final List? tags; @HiveField(7) - String? alterUrl; + final String? alterUrl; + @HiveField(8) + final bool? autoConnect; - late String id; + final String id; ServerPrivateInfo({ required this.name, @@ -34,19 +36,23 @@ class ServerPrivateInfo { this.pubKeyId, this.tags, this.alterUrl, + this.autoConnect, }) : id = '$user@$ip:$port'; - ServerPrivateInfo.fromJson(Map json) { - name = json["name"].toString(); - ip = json["ip"].toString(); - port = json["port"] ?? 22; - user = json["user"].toString(); - pwd = json["authorization"].toString(); - pubKeyId = json["pubKeyId"]?.toString(); - id = '$user@$ip:$port'; - tags = json["tags"]?.cast(); - alterUrl = json["alterUrl"]?.toString(); - } + /// TODO: if any field is changed, remember to update [id] [name] + ServerPrivateInfo.fromJson(Map json) + : ip = json["ip"].toString(), + port = json["port"] ?? 22, + user = json["user"]?.toString() ?? 'root', + id = + '${json["user"]?.toString() ?? "root"}@${json["ip"].toString()}:${json["port"] ?? 22}', + name = json["name"]?.toString() ?? + '${json["user"]?.toString() ?? 'root'}@${json["ip"].toString()}:${json["port"] ?? 22}', + pwd = json["authorization"]?.toString(), + pubKeyId = json["pubKeyId"]?.toString(), + tags = json["tags"]?.cast(), + alterUrl = json["alterUrl"]?.toString(), + autoConnect = json["autoConnect"]; Map toJson() { final Map data = {}; @@ -58,6 +64,7 @@ class ServerPrivateInfo { data["pubKeyId"] = pubKeyId; data["tags"] = tags; data["alterUrl"] = alterUrl; + data["autoConnect"] = autoConnect; return data; } diff --git a/lib/data/model/server/server_private_info.g.dart b/lib/data/model/server/server_private_info.g.dart index 99233ca5..5bd66e2f 100644 --- a/lib/data/model/server/server_private_info.g.dart +++ b/lib/data/model/server/server_private_info.g.dart @@ -21,17 +21,18 @@ class ServerPrivateInfoAdapter extends TypeAdapter { ip: fields[1] as String, port: fields[2] as int, user: fields[3] as String, - pwd: fields[4] as String, + pwd: fields[4] as String?, pubKeyId: fields[5] as String?, tags: (fields[6] as List?)?.cast(), alterUrl: fields[7] as String?, + autoConnect: fields[8] as bool?, ); } @override void write(BinaryWriter writer, ServerPrivateInfo obj) { writer - ..writeByte(8) + ..writeByte(9) ..writeByte(0) ..write(obj.name) ..writeByte(1) @@ -47,7 +48,9 @@ class ServerPrivateInfoAdapter extends TypeAdapter { ..writeByte(6) ..write(obj.tags) ..writeByte(7) - ..write(obj.alterUrl); + ..write(obj.alterUrl) + ..writeByte(8) + ..write(obj.autoConnect); } @override diff --git a/lib/data/provider/server.dart b/lib/data/provider/server.dart index 72c36422..db1ab498 100644 --- a/lib/data/provider/server.dart +++ b/lib/data/provider/server.dart @@ -94,6 +94,8 @@ class ServerProvider extends ChangeNotifier { return Server(spi, initStatus, null, ServerState.disconnected); } + /// if [spi] is specificed then only refresh this server + /// [onlyFailed] only refresh failed servers Future refreshData({ ServerPrivateInfo? spi, bool onlyFailed = false, @@ -107,6 +109,7 @@ class ServerProvider extends ChangeNotifier { if (s.state != ServerState.failed) return; _limiter.reset(s.spi.id); } + if (!(s.spi.autoConnect ?? true)) return; return await _getData(s.spi); })); } diff --git a/lib/data/res/build_data.dart b/lib/data/res/build_data.dart index 25a4b2ef..8bb5e76a 100644 --- a/lib/data/res/build_data.dart +++ b/lib/data/res/build_data.dart @@ -2,8 +2,8 @@ class BuildData { static const String name = "ServerBox"; - static const int build = 522; + static const int build = 525; static const String engine = "3.13.1"; - static const String buildAt = "2023-09-01 12:58:00.909396"; - static const int modifications = 2; + static const String buildAt = "2023-09-03 17:54:05.367410"; + static const int modifications = 4; } diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 24d1ee2c..8a9c5787 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -13,6 +13,7 @@ "attention": "Achtung", "auto": "System folgen", "autoCheckUpdate": "Aktualisierung automatisch prüfen", + "autoConnect": "Automatisch verbinden", "autoUpdateHomeWidget": "Home-Widget automatisch aktualisieren", "backup": "Backup", "backupAndRestore": "Backup und Wiederherstellung", diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 1b423940..0829ab56 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -13,6 +13,7 @@ "attention": "Attention", "auto": "Auto", "autoCheckUpdate": "Auto check update", + "autoConnect": "Auto connect", "autoUpdateHomeWidget": "Auto update home widget", "backup": "Backup", "backupAndRestore": "Backup and Restore", diff --git a/lib/l10n/app_id.arb b/lib/l10n/app_id.arb index 38a59f8b..f94c6a78 100644 --- a/lib/l10n/app_id.arb +++ b/lib/l10n/app_id.arb @@ -13,6 +13,7 @@ "attention": "Perhatian", "auto": "Auto", "autoCheckUpdate": "Periksa pembaruan otomatis", + "autoConnect": "Hubungkan otomatis", "autoUpdateHomeWidget": "Widget Rumah Pembaruan Otomatis", "backup": "Cadangan", "backupAndRestore": "Cadangan dan Pulihkan", diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 0b1ec225..cd632599 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -13,6 +13,7 @@ "attention": "注意", "auto": "自动", "autoCheckUpdate": "自动检查更新", + "autoConnect": "自动连接", "autoUpdateHomeWidget": "自动更新桌面小部件", "backup": "备份", "backupAndRestore": "备份和恢复", diff --git a/lib/l10n/app_zh_tw.arb b/lib/l10n/app_zh_tw.arb index 88c265c9..af14e4ad 100644 --- a/lib/l10n/app_zh_tw.arb +++ b/lib/l10n/app_zh_tw.arb @@ -13,6 +13,7 @@ "attention": "注意", "auto": "自動", "autoCheckUpdate": "自動檢查更新", + "autoConnect": "自動連接", "autoUpdateHomeWidget": "自動更新桌面小部件", "backup": "備份", "backupAndRestore": "備份和還原", diff --git a/lib/view/page/server/edit.dart b/lib/view/page/server/edit.dart index 9706ae70..2178f0fd 100644 --- a/lib/view/page/server/edit.dart +++ b/lib/view/page/server/edit.dart @@ -44,7 +44,8 @@ class _ServerEditPageState extends State with AfterLayoutMixin { late ServerProvider _serverProvider; late S _s; - bool usePublicKey = false; + final usePublicKey = ValueNotifier(false); + final autoConnect = ValueNotifier(true); int? _pubKeyIndex; PrivateKeyInfo? _keyInfo; List _tags = []; @@ -178,13 +179,24 @@ class _ServerEditPageState extends State with AfterLayoutMixin { Text(_s.keyAuth), width13, Switch( - value: usePublicKey, - onChanged: (val) => setState(() => usePublicKey = val), + value: usePublicKey.value, + onChanged: (val) => setState(() => usePublicKey.value = val), ), ], ), + Row( + children: [ + width13, + Text(_s.autoConnect), + width13, + Switch( + value: autoConnect.value, + onChanged: (val) => setState(() => autoConnect.value = val), + ), + ], + ) ]; - if (usePublicKey) { + if (usePublicKey.value) { children.add(_buildKeyAuth()); } else { children.add(Input( @@ -254,7 +266,7 @@ class _ServerEditPageState extends State with AfterLayoutMixin { showSnackBar(context, Text(_s.plzEnterHost)); return; } - if (!usePublicKey && _passwordController.text == '') { + if (!usePublicKey.value && _passwordController.text == '') { final cancel = await showRoundDialog( context: context, title: Text(_s.attention), @@ -274,7 +286,7 @@ class _ServerEditPageState extends State with AfterLayoutMixin { return; } } - if (usePublicKey && _pubKeyIndex == -1) { + if (usePublicKey.value && _pubKeyIndex == -1) { showSnackBar(context, Text(_s.plzSelectKey)); return; } @@ -296,10 +308,11 @@ class _ServerEditPageState extends State with AfterLayoutMixin { port: int.parse(_portController.text), user: _usernameController.text, pwd: authorization, - pubKeyId: usePublicKey ? _keyInfo!.id : null, + pubKeyId: usePublicKey.value ? _keyInfo!.id : null, tags: _tags, alterUrl: _alterUrlController.text == '' ? null : _alterUrlController.text, + autoConnect: autoConnect.value, ); if (widget.spi == null) { @@ -336,12 +349,13 @@ class _ServerEditPageState extends State with AfterLayoutMixin { if (widget.spi?.pubKeyId == null) { _passwordController.text = widget.spi?.pwd ?? ''; } else { - usePublicKey = true; + usePublicKey.value = true; } if (widget.spi?.tags != null) { _tags = widget.spi!.tags!; } _alterUrlController.text = widget.spi?.alterUrl ?? ''; + autoConnect.value = widget.spi?.autoConnect ?? true; setState(() {}); } } diff --git a/lib/view/page/server/tab.dart b/lib/view/page/server/tab.dart index fe4fb053..5fa8cb38 100644 --- a/lib/view/page/server/tab.dart +++ b/lib/view/page/server/tab.dart @@ -193,13 +193,19 @@ class _ServerPageState extends State _showFailReason(si.status); } }, - onLongPress: () => setState(() { - if (_flipedCardIds.contains(si.spi.id)) { - _flipedCardIds.remove(si.spi.id); + onLongPress: () { + if (si.state == ServerState.finished) { + setState(() { + if (_flipedCardIds.contains(si.spi.id)) { + _flipedCardIds.remove(si.spi.id); + } else { + _flipedCardIds.add(si.spi.id); + } + }); } else { - _flipedCardIds.add(si.spi.id); + AppRoute.serverEdit(spi: si.spi).go(context); } - }), + }, child: Padding( padding: const EdgeInsets.all(13), child: _buildRealServerCard(si), @@ -221,10 +227,12 @@ class _ServerPageState extends State final title = _buildServerCardTitle(srv.status, srv.state, srv.spi); final List children = [title]; - if (_flipedCardIds.contains(srv.spi.id)) { - children.addAll(_buildFlipedCard(srv)); - } else if (srv.state == ServerState.finished) { - children.addAll(_buildNormalCard(srv.status, srv.spi)); + if (srv.state == ServerState.finished) { + if (_flipedCardIds.contains(srv.spi.id)) { + children.addAll(_buildFlipedCard(srv)); + } else { + children.addAll(_buildNormalCard(srv.status, srv.spi)); + } } return AnimatedContainer( @@ -304,6 +312,22 @@ class _ServerPageState extends State ServerState cs, ServerPrivateInfo spi, ) { + Widget? rightCorner; + if (!(spi.autoConnect ?? true) && cs == ServerState.disconnected) { + rightCorner = InkWell( + onTap: () => _serverProvider.refreshData(spi: spi), + child: const Padding( + padding: EdgeInsets.symmetric(horizontal: 7), + child: Icon( + Icons.link, + size: 21, + color: Colors.grey, + ), + ), + ); + } else if (_settingStore.serverTabUseOldUI.fetch()) { + rightCorner = ServerFuncBtnsTopRight(spi: spi, s: _s); + } return Padding( padding: const EdgeInsets.symmetric(horizontal: 7), child: Row( @@ -326,8 +350,7 @@ class _ServerPageState extends State Row( children: [ _buildTopRightText(ss, cs), - if (_settingStore.serverTabUseOldUI.fetch()) - ServerFuncBtnsTopRight(spi: spi, s: _s) + if (rightCorner != null) rightCorner, ], ) ], @@ -489,12 +512,12 @@ class _ServerPageState extends State } double _calcCardHeight(ServerState cs, String id) { - if (_flipedCardIds.contains(id)) { - return 77.0; - } if (cs != ServerState.finished) { return 23.0; } + if (_flipedCardIds.contains(id)) { + return 77.0; + } if (_settingStore.moveOutServerTabFuncBtns.fetch() && // Discussion #146 !_settingStore.serverTabUseOldUI.fetch()) { diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index bb7cd5f9..a14e447f 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -474,9 +474,9 @@ baseConfigurationReference = C1C758C41C4E208965A68933 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 522; + CURRENT_PROJECT_VERSION = 525; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0.522; + MARKETING_VERSION = 1.0.525; PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -489,9 +489,9 @@ baseConfigurationReference = 15AF97DF993E8968098D6EBE /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 522; + CURRENT_PROJECT_VERSION = 525; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0.522; + MARKETING_VERSION = 1.0.525; PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -504,9 +504,9 @@ baseConfigurationReference = 7CFA7DE7FABA75685DFB6948 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 522; + CURRENT_PROJECT_VERSION = 525; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0.522; + MARKETING_VERSION = 1.0.525; PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0;