// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 46;
	objects = {

/* Begin PBXBuildFile section */
		198EE56A1DB022870021AE36 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 198EE5691DB022870021AE36 /* main.m */; };
		198EE56D1DB022870021AE36 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 198EE56C1DB022870021AE36 /* AppDelegate.m */; };
		198EE5701DB022870021AE36 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 198EE56F1DB022870021AE36 /* ViewController.m */; };
		198EE5731DB022870021AE36 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 198EE5711DB022870021AE36 /* Main.storyboard */; };
		198EE5751DB022870021AE36 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 198EE5741DB022870021AE36 /* Assets.xcassets */; };
		198EE5781DB022870021AE36 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 198EE5761DB022870021AE36 /* LaunchScreen.storyboard */; };
		198EE57D1DB022880021AE36 /* PlanetsClient WatchKit App.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 198EE57C1DB022880021AE36 /* PlanetsClient WatchKit App.app */; };
		198EE5831DB022880021AE36 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 198EE5811DB022880021AE36 /* Interface.storyboard */; };
		198EE5851DB022880021AE36 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 198EE5841DB022880021AE36 /* Assets.xcassets */; };
		198EE58C1DB022880021AE36 /* PlanetsClient WatchKit Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 198EE58B1DB022880021AE36 /* PlanetsClient WatchKit Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
		198EE5921DB022880021AE36 /* InterfaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = 198EE5911DB022880021AE36 /* InterfaceController.m */; };
		198EE5951DB022880021AE36 /* ExtensionDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 198EE5941DB022880021AE36 /* ExtensionDelegate.m */; };
		198EE5971DB022880021AE36 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 198EE5961DB022880021AE36 /* Assets.xcassets */; };
		19BD10BF1DB0235700520DE2 /* WatchConnectivity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 19BD10BE1DB0235700520DE2 /* WatchConnectivity.framework */; };
		19BD10C11DB0295200520DE2 /* WatchConnectivity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 19BD10C01DB0295200520DE2 /* WatchConnectivity.framework */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		198EE57E1DB022880021AE36 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 198EE55D1DB022870021AE36 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 198EE57B1DB022880021AE36;
			remoteInfo = "PlanetsClient WatchKit App";
		};
		198EE58D1DB022880021AE36 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 198EE55D1DB022870021AE36 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 198EE58A1DB022880021AE36;
			remoteInfo = "PlanetsClient WatchKit Extension";
		};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
		198EE59E1DB022880021AE36 /* Embed App Extensions */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 13;
			files = (
				198EE58C1DB022880021AE36 /* PlanetsClient WatchKit Extension.appex in Embed App Extensions */,
			);
			name = "Embed App Extensions";
			runOnlyForDeploymentPostprocessing = 0;
		};
		198EE5A21DB022880021AE36 /* Embed Watch Content */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "$(CONTENTS_FOLDER_PATH)/Watch";
			dstSubfolderSpec = 16;
			files = (
				198EE57D1DB022880021AE36 /* PlanetsClient WatchKit App.app in Embed Watch Content */,
			);
			name = "Embed Watch Content";
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		198EE5651DB022870021AE36 /* PlanetsClient.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PlanetsClient.app; sourceTree = BUILT_PRODUCTS_DIR; };
		198EE5691DB022870021AE36 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		198EE56B1DB022870021AE36 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
		198EE56C1DB022870021AE36 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
		198EE56E1DB022870021AE36 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
		198EE56F1DB022870021AE36 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
		198EE5721DB022870021AE36 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
		198EE5741DB022870021AE36 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		198EE5771DB022870021AE36 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
		198EE5791DB022870021AE36 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		198EE57C1DB022880021AE36 /* PlanetsClient WatchKit App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "PlanetsClient WatchKit App.app"; sourceTree = BUILT_PRODUCTS_DIR; };
		198EE5821DB022880021AE36 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = "<group>"; };
		198EE5841DB022880021AE36 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		198EE5861DB022880021AE36 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		198EE58B1DB022880021AE36 /* PlanetsClient WatchKit Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "PlanetsClient WatchKit Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
		198EE5901DB022880021AE36 /* InterfaceController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterfaceController.h; sourceTree = "<group>"; };
		198EE5911DB022880021AE36 /* InterfaceController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterfaceController.m; sourceTree = "<group>"; };
		198EE5931DB022880021AE36 /* ExtensionDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ExtensionDelegate.h; sourceTree = "<group>"; };
		198EE5941DB022880021AE36 /* ExtensionDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ExtensionDelegate.m; sourceTree = "<group>"; };
		198EE5961DB022880021AE36 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		198EE5981DB022880021AE36 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		19BD10BE1DB0235700520DE2 /* WatchConnectivity.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WatchConnectivity.framework; path = System/Library/Frameworks/WatchConnectivity.framework; sourceTree = SDKROOT; };
		19BD10C01DB0295200520DE2 /* WatchConnectivity.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WatchConnectivity.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.1.sdk/System/Library/Frameworks/WatchConnectivity.framework; sourceTree = DEVELOPER_DIR; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		198EE5621DB022870021AE36 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				19BD10BF1DB0235700520DE2 /* WatchConnectivity.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		198EE5881DB022880021AE36 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				19BD10C11DB0295200520DE2 /* WatchConnectivity.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		198EE55C1DB022870021AE36 = {
			isa = PBXGroup;
			children = (
				198EE5671DB022870021AE36 /* PlanetsClient */,
				198EE5801DB022880021AE36 /* PlanetsClient WatchKit App */,
				198EE58F1DB022880021AE36 /* PlanetsClient WatchKit Extension */,
				198EE5661DB022870021AE36 /* Products */,
				19BD10BD1DB0235700520DE2 /* Frameworks */,
			);
			sourceTree = "<group>";
		};
		198EE5661DB022870021AE36 /* Products */ = {
			isa = PBXGroup;
			children = (
				198EE5651DB022870021AE36 /* PlanetsClient.app */,
				198EE57C1DB022880021AE36 /* PlanetsClient WatchKit App.app */,
				198EE58B1DB022880021AE36 /* PlanetsClient WatchKit Extension.appex */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		198EE5671DB022870021AE36 /* PlanetsClient */ = {
			isa = PBXGroup;
			children = (
				198EE56B1DB022870021AE36 /* AppDelegate.h */,
				198EE56C1DB022870021AE36 /* AppDelegate.m */,
				198EE56E1DB022870021AE36 /* ViewController.h */,
				198EE56F1DB022870021AE36 /* ViewController.m */,
				198EE5711DB022870021AE36 /* Main.storyboard */,
				198EE5741DB022870021AE36 /* Assets.xcassets */,
				198EE5761DB022870021AE36 /* LaunchScreen.storyboard */,
				198EE5791DB022870021AE36 /* Info.plist */,
				198EE5681DB022870021AE36 /* Supporting Files */,
			);
			path = PlanetsClient;
			sourceTree = "<group>";
		};
		198EE5681DB022870021AE36 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				198EE5691DB022870021AE36 /* main.m */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		198EE5801DB022880021AE36 /* PlanetsClient WatchKit App */ = {
			isa = PBXGroup;
			children = (
				198EE5811DB022880021AE36 /* Interface.storyboard */,
				198EE5841DB022880021AE36 /* Assets.xcassets */,
				198EE5861DB022880021AE36 /* Info.plist */,
			);
			path = "PlanetsClient WatchKit App";
			sourceTree = "<group>";
		};
		198EE58F1DB022880021AE36 /* PlanetsClient WatchKit Extension */ = {
			isa = PBXGroup;
			children = (
				198EE5901DB022880021AE36 /* InterfaceController.h */,
				198EE5911DB022880021AE36 /* InterfaceController.m */,
				198EE5931DB022880021AE36 /* ExtensionDelegate.h */,
				198EE5941DB022880021AE36 /* ExtensionDelegate.m */,
				198EE5961DB022880021AE36 /* Assets.xcassets */,
				198EE5981DB022880021AE36 /* Info.plist */,
			);
			path = "PlanetsClient WatchKit Extension";
			sourceTree = "<group>";
		};
		19BD10BD1DB0235700520DE2 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				19BD10C01DB0295200520DE2 /* WatchConnectivity.framework */,
				19BD10BE1DB0235700520DE2 /* WatchConnectivity.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		198EE5641DB022870021AE36 /* PlanetsClient */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 198EE5A31DB022880021AE36 /* Build configuration list for PBXNativeTarget "PlanetsClient" */;
			buildPhases = (
				198EE5611DB022870021AE36 /* Sources */,
				198EE5621DB022870021AE36 /* Frameworks */,
				198EE5631DB022870021AE36 /* Resources */,
				198EE5A21DB022880021AE36 /* Embed Watch Content */,
			);
			buildRules = (
			);
			dependencies = (
				198EE57F1DB022880021AE36 /* PBXTargetDependency */,
			);
			name = PlanetsClient;
			productName = PlanetsClient;
			productReference = 198EE5651DB022870021AE36 /* PlanetsClient.app */;
			productType = "com.apple.product-type.application";
		};
		198EE57B1DB022880021AE36 /* PlanetsClient WatchKit App */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 198EE59F1DB022880021AE36 /* Build configuration list for PBXNativeTarget "PlanetsClient WatchKit App" */;
			buildPhases = (
				198EE57A1DB022880021AE36 /* Resources */,
				198EE59E1DB022880021AE36 /* Embed App Extensions */,
			);
			buildRules = (
			);
			dependencies = (
				198EE58E1DB022880021AE36 /* PBXTargetDependency */,
			);
			name = "PlanetsClient WatchKit App";
			productName = "PlanetsClient WatchKit App";
			productReference = 198EE57C1DB022880021AE36 /* PlanetsClient WatchKit App.app */;
			productType = "com.apple.product-type.application.watchapp2";
		};
		198EE58A1DB022880021AE36 /* PlanetsClient WatchKit Extension */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 198EE59B1DB022880021AE36 /* Build configuration list for PBXNativeTarget "PlanetsClient WatchKit Extension" */;
			buildPhases = (
				198EE5871DB022880021AE36 /* Sources */,
				198EE5881DB022880021AE36 /* Frameworks */,
				198EE5891DB022880021AE36 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "PlanetsClient WatchKit Extension";
			productName = "PlanetsClient WatchKit Extension";
			productReference = 198EE58B1DB022880021AE36 /* PlanetsClient WatchKit Extension.appex */;
			productType = "com.apple.product-type.watchkit2-extension";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		198EE55D1DB022870021AE36 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0810;
				ORGANIZATIONNAME = "Oleg Yadrov";
				TargetAttributes = {
					198EE5641DB022870021AE36 = {
						CreatedOnToolsVersion = 8.1;
						ProvisioningStyle = Automatic;
					};
					198EE57B1DB022880021AE36 = {
						CreatedOnToolsVersion = 8.1;
						ProvisioningStyle = Automatic;
					};
					198EE58A1DB022880021AE36 = {
						CreatedOnToolsVersion = 8.1;
						ProvisioningStyle = Automatic;
					};
				};
			};
			buildConfigurationList = 198EE5601DB022870021AE36 /* Build configuration list for PBXProject "PlanetsClient" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 198EE55C1DB022870021AE36;
			productRefGroup = 198EE5661DB022870021AE36 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				198EE5641DB022870021AE36 /* PlanetsClient */,
				198EE57B1DB022880021AE36 /* PlanetsClient WatchKit App */,
				198EE58A1DB022880021AE36 /* PlanetsClient WatchKit Extension */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		198EE5631DB022870021AE36 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				198EE5781DB022870021AE36 /* LaunchScreen.storyboard in Resources */,
				198EE5751DB022870021AE36 /* Assets.xcassets in Resources */,
				198EE5731DB022870021AE36 /* Main.storyboard in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		198EE57A1DB022880021AE36 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				198EE5851DB022880021AE36 /* Assets.xcassets in Resources */,
				198EE5831DB022880021AE36 /* Interface.storyboard in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		198EE5891DB022880021AE36 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				198EE5971DB022880021AE36 /* Assets.xcassets in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		198EE5611DB022870021AE36 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				198EE5701DB022870021AE36 /* ViewController.m in Sources */,
				198EE56D1DB022870021AE36 /* AppDelegate.m in Sources */,
				198EE56A1DB022870021AE36 /* main.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		198EE5871DB022880021AE36 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				198EE5951DB022880021AE36 /* ExtensionDelegate.m in Sources */,
				198EE5921DB022880021AE36 /* InterfaceController.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		198EE57F1DB022880021AE36 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 198EE57B1DB022880021AE36 /* PlanetsClient WatchKit App */;
			targetProxy = 198EE57E1DB022880021AE36 /* PBXContainerItemProxy */;
		};
		198EE58E1DB022880021AE36 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 198EE58A1DB022880021AE36 /* PlanetsClient WatchKit Extension */;
			targetProxy = 198EE58D1DB022880021AE36 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		198EE5711DB022870021AE36 /* Main.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				198EE5721DB022870021AE36 /* Base */,
			);
			name = Main.storyboard;
			sourceTree = "<group>";
		};
		198EE5761DB022870021AE36 /* LaunchScreen.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				198EE5771DB022870021AE36 /* Base */,
			);
			name = LaunchScreen.storyboard;
			sourceTree = "<group>";
		};
		198EE5811DB022880021AE36 /* Interface.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				198EE5821DB022880021AE36 /* Base */,
			);
			name = Interface.storyboard;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		198EE5991DB022880021AE36 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_SUSPICIOUS_MOVES = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 10.1;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Debug;
		};
		198EE59A1DB022880021AE36 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_SUSPICIOUS_MOVES = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 10.1;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		198EE59C1DB022880021AE36 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication;
				DEVELOPMENT_TEAM = "";
				INFOPLIST_FILE = "PlanetsClient WatchKit Extension/Info.plist";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = Qt.PlanetsClient.watchkitapp.watchkitextension;
				PRODUCT_NAME = "${TARGET_NAME}";
				SDKROOT = watchos;
				SKIP_INSTALL = YES;
				TARGETED_DEVICE_FAMILY = 4;
				WATCHOS_DEPLOYMENT_TARGET = 2.0;
			};
			name = Debug;
		};
		198EE59D1DB022880021AE36 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication;
				DEVELOPMENT_TEAM = "";
				INFOPLIST_FILE = "PlanetsClient WatchKit Extension/Info.plist";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = Qt.PlanetsClient.watchkitapp.watchkitextension;
				PRODUCT_NAME = "${TARGET_NAME}";
				SDKROOT = watchos;
				SKIP_INSTALL = YES;
				TARGETED_DEVICE_FAMILY = 4;
				WATCHOS_DEPLOYMENT_TARGET = 2.0;
			};
			name = Release;
		};
		198EE5A01DB022880021AE36 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				DEVELOPMENT_TEAM = "";
				IBSC_MODULE = PlanetsClient_WatchKit_Extension;
				INFOPLIST_FILE = "PlanetsClient WatchKit App/Info.plist";
				PRODUCT_BUNDLE_IDENTIFIER = Qt.PlanetsClient.watchkitapp;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = watchos;
				SKIP_INSTALL = YES;
				TARGETED_DEVICE_FAMILY = 4;
				WATCHOS_DEPLOYMENT_TARGET = 2.0;
			};
			name = Debug;
		};
		198EE5A11DB022880021AE36 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				DEVELOPMENT_TEAM = "";
				IBSC_MODULE = PlanetsClient_WatchKit_Extension;
				INFOPLIST_FILE = "PlanetsClient WatchKit App/Info.plist";
				PRODUCT_BUNDLE_IDENTIFIER = Qt.PlanetsClient.watchkitapp;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = watchos;
				SKIP_INSTALL = YES;
				TARGETED_DEVICE_FAMILY = 4;
				WATCHOS_DEPLOYMENT_TARGET = 2.0;
			};
			name = Release;
		};
		198EE5A41DB022880021AE36 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				DEVELOPMENT_TEAM = "";
				INFOPLIST_FILE = PlanetsClient/Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = Qt.PlanetsClient;
				PRODUCT_NAME = "$(TARGET_NAME)";
				WATCHOS_DEPLOYMENT_TARGET = 2.0;
			};
			name = Debug;
		};
		198EE5A51DB022880021AE36 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				DEVELOPMENT_TEAM = "";
				INFOPLIST_FILE = PlanetsClient/Info.plist;
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = Qt.PlanetsClient;
				PRODUCT_NAME = "$(TARGET_NAME)";
				WATCHOS_DEPLOYMENT_TARGET = 2.0;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		198EE5601DB022870021AE36 /* Build configuration list for PBXProject "PlanetsClient" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				198EE5991DB022880021AE36 /* Debug */,
				198EE59A1DB022880021AE36 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		198EE59B1DB022880021AE36 /* Build configuration list for PBXNativeTarget "PlanetsClient WatchKit Extension" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				198EE59C1DB022880021AE36 /* Debug */,
				198EE59D1DB022880021AE36 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		198EE59F1DB022880021AE36 /* Build configuration list for PBXNativeTarget "PlanetsClient WatchKit App" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				198EE5A01DB022880021AE36 /* Debug */,
				198EE5A11DB022880021AE36 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		198EE5A31DB022880021AE36 /* Build configuration list for PBXNativeTarget "PlanetsClient" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				198EE5A41DB022880021AE36 /* Debug */,
				198EE5A51DB022880021AE36 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 198EE55D1DB022870021AE36 /* Project object */;
}
