#78 new: alter host

This commit is contained in:
lollipopkit
2023-07-28 13:59:32 +08:00
parent ed3201db6d
commit 389d1753c4
18 changed files with 101 additions and 36 deletions

View File

@@ -144,6 +144,12 @@ abstract class S {
/// **'Already in last directory.'** /// **'Already in last directory.'**
String get alreadyLastDir; String get alreadyLastDir;
/// No description provided for @alterHost.
///
/// In en, this message translates to:
/// **'Alter host'**
String get alterHost;
/// No description provided for @attention. /// No description provided for @attention.
/// ///
/// In en, this message translates to: /// In en, this message translates to:

View File

@@ -28,6 +28,9 @@ class SDe extends S {
@override @override
String get alreadyLastDir => 'Bereits im letzten Verzeichnis.'; String get alreadyLastDir => 'Bereits im letzten Verzeichnis.';
@override
String get alterHost => 'Alternative Gastgeber';
@override @override
String get attention => 'Achtung'; String get attention => 'Achtung';

View File

@@ -28,6 +28,9 @@ class SEn extends S {
@override @override
String get alreadyLastDir => 'Already in last directory.'; String get alreadyLastDir => 'Already in last directory.';
@override
String get alterHost => 'Alter host';
@override @override
String get attention => 'Attention'; String get attention => 'Attention';

View File

@@ -28,6 +28,9 @@ class SZh extends S {
@override @override
String get alreadyLastDir => '已经是最上层目录了'; String get alreadyLastDir => '已经是最上层目录了';
@override
String get alterHost => '备选主机';
@override @override
String get attention => '注意'; String get attention => '注意';
@@ -701,6 +704,9 @@ class SZhTw extends SZh {
@override @override
String get alreadyLastDir => '已經是最上層目錄了'; String get alreadyLastDir => '已經是最上層目錄了';
@override
String get alterHost => '備選主機';
@override @override
String get attention => '注意'; String get attention => '注意';

View File

@@ -470,7 +470,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 388; CURRENT_PROJECT_VERSION = 389;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
@@ -478,7 +478,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.388; MARKETING_VERSION = 1.0.389;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -602,7 +602,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 388; CURRENT_PROJECT_VERSION = 389;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
@@ -610,7 +610,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.388; MARKETING_VERSION = 1.0.389;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -628,7 +628,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 388; CURRENT_PROJECT_VERSION = 389;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
@@ -636,7 +636,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.388; MARKETING_VERSION = 1.0.389;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -657,7 +657,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 388; CURRENT_PROJECT_VERSION = 389;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
@@ -670,7 +670,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.0.388; MARKETING_VERSION = 1.0.389;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
@@ -696,7 +696,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 388; CURRENT_PROJECT_VERSION = 389;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
@@ -709,7 +709,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.0.388; MARKETING_VERSION = 1.0.389;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
@@ -732,7 +732,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 388; CURRENT_PROJECT_VERSION = 389;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
@@ -745,7 +745,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.0.388; MARKETING_VERSION = 1.0.389;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";

View File

@@ -35,15 +35,31 @@ Future<SSHClient> genClient(
ServerPrivateInfo spi, { ServerPrivateInfo spi, {
void Function(GenSSHClientStatus)? onStatus, void Function(GenSSHClientStatus)? onStatus,
}) async { }) async {
final onStatus_ = onStatus ?? (_) {}; onStatus?.call(GenSSHClientStatus.socket);
onStatus_(GenSSHClientStatus.socket); late SSHSocket socket;
final socket = await SSHSocket.connect( try {
spi.ip, socket = await SSHSocket.connect(
spi.port, spi.ip,
timeout: const Duration(seconds: 5), spi.port,
); timeout: const Duration(seconds: 5),
);
} catch (e) {
try {
socket = await SSHSocket.connect(
spi.alterHost!,
spi.port,
timeout: const Duration(seconds: 5),
);
} catch (e) {
throw SSHErr(
type: SSHErrType.connect,
message: e.toString(),
);
}
}
if (spi.pubKeyId == null) { if (spi.pubKeyId == null) {
onStatus_(GenSSHClientStatus.pwd); onStatus?.call(GenSSHClientStatus.pwd);
return SSHClient( return SSHClient(
socket, socket,
username: spi.user, username: spi.user,
@@ -57,7 +73,7 @@ Future<SSHClient> genClient(
message: 'key [${spi.pubKeyId}] not found', message: 'key [${spi.pubKeyId}] not found',
); );
} }
onStatus_(GenSSHClientStatus.key); onStatus?.call(GenSSHClientStatus.key);
return SSHClient( return SSHClient(
socket, socket,
username: spi.user, username: spi.user,

View File

@@ -17,6 +17,7 @@ abstract class Err<T> {
enum SSHErrType { enum SSHErrType {
unknown, unknown,
connect,
noPrivateKey; noPrivateKey;
} }

View File

@@ -18,6 +18,8 @@ class ServerPrivateInfo {
String? pubKeyId; String? pubKeyId;
@HiveField(6) @HiveField(6)
List<String>? tags; List<String>? tags;
@HiveField(7)
String? alterHost;
late String id; late String id;
@@ -29,6 +31,7 @@ class ServerPrivateInfo {
required this.pwd, required this.pwd,
this.pubKeyId, this.pubKeyId,
this.tags, this.tags,
this.alterHost,
}) : id = '$user@$ip:$port'; }) : id = '$user@$ip:$port';
ServerPrivateInfo.fromJson(Map<String, dynamic> json) { ServerPrivateInfo.fromJson(Map<String, dynamic> json) {
@@ -40,6 +43,7 @@ class ServerPrivateInfo {
pubKeyId = json["pubKeyId"]?.toString(); pubKeyId = json["pubKeyId"]?.toString();
id = '$user@$ip:$port'; id = '$user@$ip:$port';
tags = json["tags"]?.cast<String>(); tags = json["tags"]?.cast<String>();
alterHost = json["alterHost"]?.toString();
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@@ -51,11 +55,15 @@ class ServerPrivateInfo {
data["authorization"] = pwd; data["authorization"] = pwd;
data["pubKeyId"] = pubKeyId; data["pubKeyId"] = pubKeyId;
data["tags"] = tags; data["tags"] = tags;
data["alterHost"] = alterHost;
return data; return data;
} }
bool shouldReconnect(ServerPrivateInfo old) { bool shouldReconnect(ServerPrivateInfo old) {
return id != old.id || pwd != old.pwd || pubKeyId != old.pubKeyId; return id != old.id ||
pwd != old.pwd ||
pubKeyId != old.pubKeyId ||
alterHost != old.alterHost;
} }
@override @override

View File

@@ -24,13 +24,14 @@ class ServerPrivateInfoAdapter extends TypeAdapter<ServerPrivateInfo> {
pwd: fields[4] as String, pwd: fields[4] as String,
pubKeyId: fields[5] as String?, pubKeyId: fields[5] as String?,
tags: (fields[6] as List?)?.cast<String>(), tags: (fields[6] as List?)?.cast<String>(),
alterHost: fields[7] as String?,
); );
} }
@override @override
void write(BinaryWriter writer, ServerPrivateInfo obj) { void write(BinaryWriter writer, ServerPrivateInfo obj) {
writer writer
..writeByte(7) ..writeByte(8)
..writeByte(0) ..writeByte(0)
..write(obj.name) ..write(obj.name)
..writeByte(1) ..writeByte(1)
@@ -44,7 +45,9 @@ class ServerPrivateInfoAdapter extends TypeAdapter<ServerPrivateInfo> {
..writeByte(5) ..writeByte(5)
..write(obj.pubKeyId) ..write(obj.pubKeyId)
..writeByte(6) ..writeByte(6)
..write(obj.tags); ..write(obj.tags)
..writeByte(7)
..write(obj.alterHost);
} }
@override @override

View File

@@ -2,8 +2,8 @@
class BuildData { class BuildData {
static const String name = "ServerBox"; static const String name = "ServerBox";
static const int build = 388; static const int build = 389;
static const String engine = "3.10.6"; static const String engine = "3.10.6";
static const String buildAt = "2023-07-27 13:03:33.193528"; static const String buildAt = "2023-07-28 13:50:35.251988";
static const int modifications = 16; static const int modifications = 17;
} }

View File

@@ -14,4 +14,5 @@ const thanksMap = {
'wxdjs': 'https://github.com/wxdjs', 'wxdjs': 'https://github.com/wxdjs',
'Aeorq': 'https://github.com/Aeorq', 'Aeorq': 'https://github.com/Aeorq',
'jaychoubaby': 'https://github.com/jaychoubaby', 'jaychoubaby': 'https://github.com/jaychoubaby',
'allonmymind': 'https://github.com/allonmymind',
}; };

View File

@@ -8,6 +8,7 @@
"added2List": "Zur Aufgabenliste hinzugefügt", "added2List": "Zur Aufgabenliste hinzugefügt",
"all": "Alle", "all": "Alle",
"alreadyLastDir": "Bereits im letzten Verzeichnis.", "alreadyLastDir": "Bereits im letzten Verzeichnis.",
"alterHost": "Alternative Gastgeber",
"attention": "Achtung", "attention": "Achtung",
"auto": "System folgen", "auto": "System folgen",
"autoUpdateHomeWidget": "Home-Widget automatisch aktualisieren", "autoUpdateHomeWidget": "Home-Widget automatisch aktualisieren",

View File

@@ -8,6 +8,7 @@
"added2List": "Added to task list", "added2List": "Added to task list",
"all": "All", "all": "All",
"alreadyLastDir": "Already in last directory.", "alreadyLastDir": "Already in last directory.",
"alterHost": "Alter host",
"attention": "Attention", "attention": "Attention",
"auto": "Auto", "auto": "Auto",
"autoUpdateHomeWidget": "Auto update home widget", "autoUpdateHomeWidget": "Auto update home widget",

View File

@@ -8,6 +8,7 @@
"added2List": "已添加至任务列表", "added2List": "已添加至任务列表",
"all": "所有", "all": "所有",
"alreadyLastDir": "已经是最上层目录了", "alreadyLastDir": "已经是最上层目录了",
"alterHost": "备选主机",
"attention": "注意", "attention": "注意",
"auto": "自动", "auto": "自动",
"autoUpdateHomeWidget": "自动更新桌面小部件", "autoUpdateHomeWidget": "自动更新桌面小部件",

View File

@@ -8,6 +8,7 @@
"added2List": "已添加至任務列表", "added2List": "已添加至任務列表",
"all": "所有", "all": "所有",
"alreadyLastDir": "已經是最上層目錄了", "alreadyLastDir": "已經是最上層目錄了",
"alterHost": "備選主機",
"attention": "注意", "attention": "注意",
"auto": "自動", "auto": "自動",
"autoUpdateHomeWidget": "自動更新桌面小部件", "autoUpdateHomeWidget": "自動更新桌面小部件",

View File

@@ -30,11 +30,13 @@ class ServerEditPage extends StatefulWidget {
class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin { class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
final _nameController = TextEditingController(); final _nameController = TextEditingController();
final _ipController = TextEditingController(); final _ipController = TextEditingController();
final _alterHostController = TextEditingController();
final _portController = TextEditingController(); final _portController = TextEditingController();
final _usernameController = TextEditingController(); final _usernameController = TextEditingController();
final _passwordController = TextEditingController(); final _passwordController = TextEditingController();
final _nameFocus = FocusNode(); final _nameFocus = FocusNode();
final _ipFocus = FocusNode(); final _ipFocus = FocusNode();
final _alterHostFocus = FocusNode();
final _portFocus = FocusNode(); final _portFocus = FocusNode();
final _usernameFocus = FocusNode(); final _usernameFocus = FocusNode();
@@ -118,12 +120,20 @@ class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
Input( Input(
controller: _ipController, controller: _ipController,
type: TextInputType.text, type: TextInputType.text,
onSubmitted: (_) => _focusScope.requestFocus(_portFocus), onSubmitted: (_) => _focusScope.requestFocus(_alterHostFocus),
node: _ipFocus, node: _ipFocus,
label: _s.host, label: _s.host,
icon: Icons.storage, icon: Icons.computer,
hint: 'example.com', hint: 'example.com',
), ),
Input(
controller: _alterHostController,
type: TextInputType.text,
node: _alterHostFocus,
onSubmitted: (_) => _focusScope.requestFocus(_portFocus),
label: _s.alterHost,
icon: Icons.computer,
),
Input( Input(
controller: _portController, controller: _portController,
type: TextInputType.number, type: TextInputType.number,
@@ -280,6 +290,9 @@ class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
pwd: authorization, pwd: authorization,
pubKeyId: usePublicKey ? _keyInfo!.id : null, pubKeyId: usePublicKey ? _keyInfo!.id : null,
tags: _tags, tags: _tags,
alterHost: _alterHostController.text == ''
? null
: _alterHostController.text,
); );
if (widget.spi == null) { if (widget.spi == null) {
@@ -321,6 +334,7 @@ class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
if (widget.spi?.tags != null) { if (widget.spi?.tags != null) {
_tags = widget.spi!.tags!; _tags = widget.spi!.tags!;
} }
_alterHostController.text = widget.spi?.alterHost ?? '';
setState(() {}); setState(() {});
} }
} }

View File

@@ -869,7 +869,7 @@ class _SettingPageState extends State<SettingPage> {
Widget _buildAndroidWidgetSharedPreference() { Widget _buildAndroidWidgetSharedPreference() {
return ListTile( return ListTile(
title: Text(_s.homeWidgetUrlConfig), title: Text(_s.homeWidgetUrlConfig),
trailing: const Icon(Icons.arrow_forward_ios, size: 13), trailing: const Icon(Icons.keyboard_arrow_right),
onTap: () { onTap: () {
final data = <String, String>{}; final data = <String, String>{};
_sp.getKeys().forEach((key) { _sp.getKeys().forEach((key) {

View File

@@ -475,9 +475,9 @@
baseConfigurationReference = C1C758C41C4E208965A68933 /* Pods-RunnerTests.debug.xcconfig */; baseConfigurationReference = C1C758C41C4E208965A68933 /* Pods-RunnerTests.debug.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 388; CURRENT_PROJECT_VERSION = 389;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0.388; MARKETING_VERSION = 1.0.389;
PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@@ -490,9 +490,9 @@
baseConfigurationReference = 15AF97DF993E8968098D6EBE /* Pods-RunnerTests.release.xcconfig */; baseConfigurationReference = 15AF97DF993E8968098D6EBE /* Pods-RunnerTests.release.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 388; CURRENT_PROJECT_VERSION = 389;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0.388; MARKETING_VERSION = 1.0.389;
PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@@ -505,9 +505,9 @@
baseConfigurationReference = 7CFA7DE7FABA75685DFB6948 /* Pods-RunnerTests.profile.xcconfig */; baseConfigurationReference = 7CFA7DE7FABA75685DFB6948 /* Pods-RunnerTests.profile.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CURRENT_PROJECT_VERSION = 388; CURRENT_PROJECT_VERSION = 389;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0.388; MARKETING_VERSION = 1.0.389;
PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests; PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;