diff --git a/Podfile b/Podfile
index ad3ccec..3e3eec4 100644
--- a/Podfile
+++ b/Podfile
@@ -1,6 +1,8 @@
target "VirtualKVM" do
+ use_frameworks!
pod 'GVUserDefaults'
pod 'Sparkle'
+ pod 'SBObjectiveCWrapper', '~> 1.4.0'
end
target "VirtualKVMTests" do
diff --git a/Podfile.lock b/Podfile.lock
index d580da9..62865dc 100644
--- a/Podfile.lock
+++ b/Podfile.lock
@@ -1,15 +1,21 @@
PODS:
- GVUserDefaults (1.0.2)
+ - SBObjectiveCWrapper (1.4.0):
+ - SwiftyBeaver (~> 1.4.0)
- Sparkle (1.18.1)
+ - SwiftyBeaver (1.4.4)
DEPENDENCIES:
- GVUserDefaults
+ - SBObjectiveCWrapper (~> 1.4.0)
- Sparkle
SPEC CHECKSUMS:
GVUserDefaults: 52d48cf8ba578b40a1a76312b196dfc9134ba36a
+ SBObjectiveCWrapper: 854ea56b37cd0031af2b1d6e12c2f965fc4ff86d
Sparkle: 06ea33170007c5937ee54da481b4481af98fac79
+ SwiftyBeaver: 25bd76281f49ca989ec2e3cbde9af89c15bc1432
-PODFILE CHECKSUM: b008d844f4ab0f3d8de00788eaa63a46c7c44e29
+PODFILE CHECKSUM: bd5504958af33c674f630d6e7d19e13b376df9df
-COCOAPODS: 1.2.0
+COCOAPODS: 1.3.1
diff --git a/README.md b/README.md
index a1c9c59..6ddd232 100644
--- a/README.md
+++ b/README.md
@@ -27,10 +27,12 @@ This project requires CocoaPods.
* sudo gem install cocoapods
* pod install
-Open VirtualKVM.xcworkspace in XCode and build...
+Open VirtualKVM.xcworkspace in Xcode and build...
Known Issues
============
-When bluetooth is disabled, if the macbook goes to sleep, the iMac failes to re-instate target display mode, I THINK because it no longer has a keyboard and thus I can't send keyboard command sequences, which is the only way I know how to trigger
+* Bluetooth switching between newer Apple wireless (keyboards, mice, trackpads) is unsupported.
+
+* When bluetooth is disabled, if the macbook goes to sleep, the iMac failes to re-instate target display mode, I THINK because it no longer has a keyboard and thus I can't send keyboard command sequences, which is the only way I know how to trigger
target display mode. Let me know if you have any ideas.
diff --git a/Releases/CHANGELOG.html b/Releases/CHANGELOG.html
new file mode 100644
index 0000000..9a1d89a
--- /dev/null
+++ b/Releases/CHANGELOG.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+VirtualKVM 1.2.4
+
+Released: Jun 07, 2018
+
+
+- Now requires macOS 10.11 or later
+- Add ability to save debug logs
+- Should fix connectivity issues
+
+
+VirtualKVM 1.2.3
+
+Released: Nov 06, 2017
+
+
+- Add Sparkle updating
+- Numerous bug fixes and improvements (since v1.1.2)
+
+
+
+
\ No newline at end of file
diff --git a/Releases/CHANGELOG.md b/Releases/CHANGELOG.md
index 804b72a..aa1eaf1 100644
--- a/Releases/CHANGELOG.md
+++ b/Releases/CHANGELOG.md
@@ -1,3 +1,11 @@
+### VirtualKVM 1.2.4
+
+**Released: Jun 07, 2018**
+
+* Now requires macOS 10.11 or later
+* Add ability to save debug logs
+* Should fix connectivity issues
+
### VirtualKVM 1.2.3
**Released: Nov 06, 2017**
diff --git a/Releases/appcast.xml b/Releases/appcast.xml
index b9f1f9b..55f0e78 100644
--- a/Releases/appcast.xml
+++ b/Releases/appcast.xml
@@ -6,6 +6,14 @@
Most recent changes with links to updates.
en
+ -
+ 124
+ 10.11
+ https://github.com/duanefields/VirtualKVM/raw/master/Releases/CHANGELOG.html
+ Thu, 07 Nov 2018 02:50:00 +0000
+
+
+
-
123
-
\ No newline at end of file
+
diff --git a/Releases/v1_2_4.zip b/Releases/v1_2_4.zip
new file mode 100644
index 0000000..17adfdd
Binary files /dev/null and b/Releases/v1_2_4.zip differ
diff --git a/VirtualKVM.xcodeproj/project.pbxproj b/VirtualKVM.xcodeproj/project.pbxproj
index c6b9abf..193c2fc 100644
--- a/VirtualKVM.xcodeproj/project.pbxproj
+++ b/VirtualKVM.xcodeproj/project.pbxproj
@@ -7,6 +7,9 @@
objects = {
/* Begin PBXBuildFile section */
+ 011BCBEE20B25B20008D78DC /* NetworkInterfaceNotifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011BCBED20B25B20008D78DC /* NetworkInterfaceNotifier.swift */; };
+ 011BCBF020B25B35008D78DC /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 011BCBEF20B25B35008D78DC /* SystemConfiguration.framework */; };
+ 01C05AC220C08BC0002E0C89 /* Uiltites.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01C05AC120C08BC0002E0C89 /* Uiltites.swift */; };
2840E5131DD8CD940054146D /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 2840E5151DD8CD940054146D /* Localizable.strings */; };
2854907C1DD8610800525808 /* KVMSystemProfiler.m in Sources */ = {isa = PBXBuildFile; fileRef = 2854907B1DD8610800525808 /* KVMSystemProfiler.m */; };
47672946191BBD7200726705 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 47672945191BBD7200726705 /* Cocoa.framework */; };
@@ -26,7 +29,7 @@
47E96804191C3A17006531E1 /* KVMBluetoothController.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E96803191C3A17006531E1 /* KVMBluetoothController.m */; };
47E96806191C3AFB006531E1 /* IOBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 47E96805191C3AFB006531E1 /* IOBluetooth.framework */; };
47E9680A191DB6FA006531E1 /* GVUserDefaults+KVMApp.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E96809191DB6FA006531E1 /* GVUserDefaults+KVMApp.m */; };
- 842C043D5E3184F3FD955214 /* libPods-VirtualKVM.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ECB0AB336CC54A45593109BE /* libPods-VirtualKVM.a */; };
+ EF7DCC2AA52E85D5C4536BE1 /* Pods_VirtualKVM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64CF363233439698EE2DC50D /* Pods_VirtualKVM.framework */; };
F57E3D68E03B79931505646C /* libPods-VirtualKVMTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1CDE0651EFEFF723A5BBA131 /* libPods-VirtualKVMTests.a */; };
/* End PBXBuildFile section */
@@ -41,6 +44,10 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
+ 011BCBEC20B25B1F008D78DC /* VirtualKVM-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "VirtualKVM-Bridging-Header.h"; sourceTree = ""; };
+ 011BCBED20B25B20008D78DC /* NetworkInterfaceNotifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkInterfaceNotifier.swift; sourceTree = ""; };
+ 011BCBEF20B25B35008D78DC /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
+ 01C05AC120C08BC0002E0C89 /* Uiltites.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Uiltites.swift; sourceTree = ""; };
1CDE0651EFEFF723A5BBA131 /* libPods-VirtualKVMTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VirtualKVMTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
2673095FE54EC9E82407FA63 /* Pods-VirtualKVMTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VirtualKVMTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-VirtualKVMTests/Pods-VirtualKVMTests.debug.xcconfig"; sourceTree = ""; };
2840E50D1DD8CD870054146D /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; };
@@ -74,16 +81,16 @@
4767297C191BF05400726705 /* KVMController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KVMController.h; sourceTree = ""; };
4767297D191BF05400726705 /* KVMController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KVMController.m; sourceTree = ""; };
4767297F191C022900726705 /* KVMThunderboltObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KVMThunderboltObserver.h; sourceTree = ""; };
- 47672980191C022900726705 /* KVMThunderboltObserver.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KVMThunderboltObserver.m; sourceTree = ""; };
+ 47672980191C022900726705 /* KVMThunderboltObserver.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = sourcecode.c.objc; path = KVMThunderboltObserver.m; sourceTree = ""; };
47E96802191C3A17006531E1 /* KVMBluetoothController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KVMBluetoothController.h; sourceTree = ""; };
47E96803191C3A17006531E1 /* KVMBluetoothController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KVMBluetoothController.m; sourceTree = ""; };
47E96805191C3AFB006531E1 /* IOBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOBluetooth.framework; path = System/Library/Frameworks/IOBluetooth.framework; sourceTree = SDKROOT; };
47E96808191DB6FA006531E1 /* GVUserDefaults+KVMApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "GVUserDefaults+KVMApp.h"; sourceTree = ""; };
47E96809191DB6FA006531E1 /* GVUserDefaults+KVMApp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "GVUserDefaults+KVMApp.m"; sourceTree = ""; };
+ 64CF363233439698EE2DC50D /* Pods_VirtualKVM.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_VirtualKVM.framework; sourceTree = BUILT_PRODUCTS_DIR; };
9928F567C93C6C6EB874E4BA /* Pods-VirtualKVM.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VirtualKVM.release.xcconfig"; path = "Pods/Target Support Files/Pods-VirtualKVM/Pods-VirtualKVM.release.xcconfig"; sourceTree = ""; };
EAF7D17600776A7F7140AB1E /* Pods-VirtualKVMTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VirtualKVMTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-VirtualKVMTests/Pods-VirtualKVMTests.release.xcconfig"; sourceTree = ""; };
EC87DECAF4D69C12AAF5B1F0 /* Pods-VirtualKVM.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VirtualKVM.debug.xcconfig"; path = "Pods/Target Support Files/Pods-VirtualKVM/Pods-VirtualKVM.debug.xcconfig"; sourceTree = ""; };
- ECB0AB336CC54A45593109BE /* libPods-VirtualKVM.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VirtualKVM.a"; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -91,9 +98,10 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 011BCBF020B25B35008D78DC /* SystemConfiguration.framework in Frameworks */,
47E96806191C3AFB006531E1 /* IOBluetooth.framework in Frameworks */,
47672946191BBD7200726705 /* Cocoa.framework in Frameworks */,
- 842C043D5E3184F3FD955214 /* libPods-VirtualKVM.a in Frameworks */,
+ EF7DCC2AA52E85D5C4536BE1 /* Pods_VirtualKVM.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -130,6 +138,7 @@
47672943191BBD7200726705 /* Products */,
36829DEFAD624FCB6420C463 /* Pods */,
);
+ indentWidth = 2;
sourceTree = "";
};
47672943191BBD7200726705 /* Products */ = {
@@ -144,12 +153,13 @@
47672944191BBD7200726705 /* Frameworks */ = {
isa = PBXGroup;
children = (
+ 011BCBEF20B25B35008D78DC /* SystemConfiguration.framework */,
47E96805191C3AFB006531E1 /* IOBluetooth.framework */,
47672945191BBD7200726705 /* Cocoa.framework */,
47672964191BBD7200726705 /* XCTest.framework */,
47672947191BBD7200726705 /* Other Frameworks */,
- ECB0AB336CC54A45593109BE /* libPods-VirtualKVM.a */,
1CDE0651EFEFF723A5BBA131 /* libPods-VirtualKVMTests.a */,
+ 64CF363233439698EE2DC50D /* Pods_VirtualKVM.framework */,
);
name = Frameworks;
sourceTree = "";
@@ -173,6 +183,7 @@
47672957191BBD7200726705 /* KVMAppDelegate.h */,
47672958191BBD7200726705 /* KVMAppDelegate.m */,
47E96802191C3A17006531E1 /* KVMBluetoothController.h */,
+ 01C05AC120C08BC0002E0C89 /* Uiltites.swift */,
47E96803191C3A17006531E1 /* KVMBluetoothController.m */,
4767297C191BF05400726705 /* KVMController.h */,
4767297D191BF05400726705 /* KVMController.m */,
@@ -180,8 +191,10 @@
2854907B1DD8610800525808 /* KVMSystemProfiler.m */,
4767297F191C022900726705 /* KVMThunderboltObserver.h */,
47672980191C022900726705 /* KVMThunderboltObserver.m */,
+ 011BCBED20B25B20008D78DC /* NetworkInterfaceNotifier.swift */,
47E96807191DB6C1006531E1 /* Status Menu UI */,
4767294C191BBD7200726705 /* Supporting Files */,
+ 011BCBEC20B25B1F008D78DC /* VirtualKVM-Bridging-Header.h */,
);
path = VirtualKVM;
sourceTree = "";
@@ -281,6 +294,9 @@
LastUpgradeCheck = 0800;
ORGANIZATIONNAME = "Fast Wombat";
TargetAttributes = {
+ 47672941191BBD7200726705 = {
+ LastSwiftMigration = 0930;
+ };
47672962191BBD7200726705 = {
TestTargetID = 47672941191BBD7200726705;
};
@@ -345,7 +361,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
499F7C25E03D884A58C90A9C /* [CP] Check Pods Manifest.lock */ = {
@@ -363,7 +379,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
58C91F90D2DB4CDD08B23BE9 /* [CP] Embed Pods Frameworks */ = {
@@ -373,13 +389,19 @@
);
inputPaths = (
"${SRCROOT}/Pods/Target Support Files/Pods-VirtualKVM/Pods-VirtualKVM-frameworks.sh",
+ "${BUILT_PRODUCTS_DIR}/GVUserDefaults/GVUserDefaults.framework",
+ "${BUILT_PRODUCTS_DIR}/SBObjectiveCWrapper/SBObjectiveCWrapper.framework",
"${PODS_ROOT}/Sparkle/Sparkle.framework",
"${PODS_ROOT}/Sparkle/Sparkle.framework.dSYM",
+ "${BUILT_PRODUCTS_DIR}/SwiftyBeaver/SwiftyBeaver.framework",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GVUserDefaults.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SBObjectiveCWrapper.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Sparkle.framework",
"${DWARF_DSYM_FOLDER_PATH}/Sparkle.framework.dSYM",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyBeaver.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
@@ -441,8 +463,10 @@
4767297E191BF05400726705 /* KVMController.m in Sources */,
47672952191BBD7200726705 /* main.m in Sources */,
47672981191C022900726705 /* KVMThunderboltObserver.m in Sources */,
+ 011BCBEE20B25B20008D78DC /* NetworkInterfaceNotifier.swift in Sources */,
47E9680A191DB6FA006531E1 /* GVUserDefaults+KVMApp.m in Sources */,
2854907C1DD8610800525808 /* KVMSystemProfiler.m in Sources */,
+ 01C05AC220C08BC0002E0C89 /* Uiltites.swift in Sources */,
47E96804191C3A17006531E1 /* KVMBluetoothController.m in Sources */,
47C0D521191EFA1A00BB9246 /* KVMStatusItem.m in Sources */,
47672959191BBD7200726705 /* KVMAppDelegate.m in Sources */,
@@ -603,13 +627,18 @@
baseConfigurationReference = EC87DECAF4D69C12AAF5B1F0 /* Pods-VirtualKVM.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
COMBINE_HIDPI_IMAGES = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "VirtualKVM/VirtualKVM-Prefix.pch";
INFOPLIST_FILE = "VirtualKVM/VirtualKVM-Info.plist";
- MACOSX_DEPLOYMENT_TARGET = 10.9;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
PRODUCT_BUNDLE_IDENTIFIER = "com.fastwombat.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_OBJC_BRIDGING_HEADER = "VirtualKVM/VirtualKVM-Bridging-Header.h";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 3.0;
WRAPPER_EXTENSION = app;
};
name = Debug;
@@ -619,13 +648,17 @@
baseConfigurationReference = 9928F567C93C6C6EB874E4BA /* Pods-VirtualKVM.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
COMBINE_HIDPI_IMAGES = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "VirtualKVM/VirtualKVM-Prefix.pch";
INFOPLIST_FILE = "VirtualKVM/VirtualKVM-Info.plist";
- MACOSX_DEPLOYMENT_TARGET = 10.9;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
PRODUCT_BUNDLE_IDENTIFIER = "com.fastwombat.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_OBJC_BRIDGING_HEADER = "VirtualKVM/VirtualKVM-Bridging-Header.h";
+ SWIFT_VERSION = 3.0;
WRAPPER_EXTENSION = app;
};
name = Release;
@@ -634,6 +667,7 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 2673095FE54EC9E82407FA63 /* Pods-VirtualKVMTests.debug.xcconfig */;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/VirtualKVM.app/Contents/MacOS/VirtualKVM";
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
@@ -658,6 +692,7 @@
isa = XCBuildConfiguration;
baseConfigurationReference = EAF7D17600776A7F7140AB1E /* Pods-VirtualKVMTests.release.xcconfig */;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/VirtualKVM.app/Contents/MacOS/VirtualKVM";
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
diff --git a/VirtualKVM/Base.lproj/MainMenu.xib b/VirtualKVM/Base.lproj/MainMenu.xib
index 1b99705..2d1e716 100644
--- a/VirtualKVM/Base.lproj/MainMenu.xib
+++ b/VirtualKVM/Base.lproj/MainMenu.xib
@@ -1,8 +1,8 @@
-
+
-
+
@@ -16,6 +16,7 @@
+
@@ -49,6 +50,19 @@
+