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

/* Begin PBXBuildFile section */
		D64559FC1C8F49A600AA6840 /* OpenWhiskButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6E3E6511C72760C00843E16 /* OpenWhiskButton.swift */; };
		D6C9C3B71C8F53C9002BDB13 /* Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C9C3B41C8F53C9002BDB13 /* Config.swift */; };
		D6C9C3B81C8F53C9002BDB13 /* OpenWhiskConfig.plist in Resources */ = {isa = PBXBuildFile; fileRef = D6C9C3B51C8F53C9002BDB13 /* OpenWhiskConfig.plist */; };
		D6C9C3B91C8F53C9002BDB13 /* OpenWhiskSDK.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C9C3B61C8F53C9002BDB13 /* OpenWhiskSDK.swift */; };
		D6C9C3BA1C8F53D3002BDB13 /* Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C9C3B41C8F53C9002BDB13 /* Config.swift */; };
		D6C9C3BB1C8F53D8002BDB13 /* OpenWhiskSDK.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C9C3B61C8F53C9002BDB13 /* OpenWhiskSDK.swift */; };
		D6C9C3BC1C8F53DD002BDB13 /* OpenWhiskSDK.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C9C3B61C8F53C9002BDB13 /* OpenWhiskSDK.swift */; };
		D6C9C3BD1C8F53E0002BDB13 /* Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C9C3B41C8F53C9002BDB13 /* Config.swift */; };
		D6E3E63A1C72592300843E16 /* OpenWhisk.h in Headers */ = {isa = PBXBuildFile; fileRef = D6E3E6391C72592300843E16 /* OpenWhisk.h */; settings = {ATTRIBUTES = (Public, ); }; };
		D6E3E6411C72592300843E16 /* OpenWhisk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6E3E6361C72592300843E16 /* OpenWhisk.framework */; };
		D6E3E6461C72592300843E16 /* OpenWhiskTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6E3E6451C72592300843E16 /* OpenWhiskTests.swift */; };
		D6E3E6551C72760C00843E16 /* OpenWhiskButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6E3E6511C72760C00843E16 /* OpenWhiskButton.swift */; };
		D6F56AE21C76471B00F047B6 /* OpenWhiskWatch.h in Headers */ = {isa = PBXBuildFile; fileRef = D6F56AE11C76471B00F047B6 /* OpenWhiskWatch.h */; settings = {ATTRIBUTES = (Public, ); }; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		D6E3E6421C72592300843E16 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = D6E3E62D1C72592300843E16 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = D6E3E6351C72592300843E16;
			remoteInfo = OpenWhisk;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		D6C9C3B41C8F53C9002BDB13 /* Config.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Config.swift; sourceTree = "<group>"; };
		D6C9C3B51C8F53C9002BDB13 /* OpenWhiskConfig.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = OpenWhiskConfig.plist; sourceTree = "<group>"; };
		D6C9C3B61C8F53C9002BDB13 /* OpenWhiskSDK.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenWhiskSDK.swift; sourceTree = "<group>"; };
		D6E3E6361C72592300843E16 /* OpenWhisk.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OpenWhisk.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		D6E3E6391C72592300843E16 /* OpenWhisk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpenWhisk.h; sourceTree = "<group>"; };
		D6E3E63B1C72592300843E16 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		D6E3E6401C72592300843E16 /* OpenWhiskTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OpenWhiskTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		D6E3E6451C72592300843E16 /* OpenWhiskTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenWhiskTests.swift; sourceTree = "<group>"; };
		D6E3E6471C72592300843E16 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		D6E3E6511C72760C00843E16 /* OpenWhiskButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenWhiskButton.swift; sourceTree = "<group>"; };
		D6F56ADF1C76471B00F047B6 /* OpenWhiskWatch.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OpenWhiskWatch.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		D6F56AE11C76471B00F047B6 /* OpenWhiskWatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpenWhiskWatch.h; sourceTree = "<group>"; };
		D6F56AE31C76471B00F047B6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		D6E3E6321C72592300843E16 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		D6E3E63D1C72592300843E16 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				D6E3E6411C72592300843E16 /* OpenWhisk.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		D6F56ADB1C76471B00F047B6 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		D6E3E62C1C72592300843E16 = {
			isa = PBXGroup;
			children = (
				D6E3E6381C72592300843E16 /* OpenWhisk */,
				D6E3E6441C72592300843E16 /* OpenWhiskTests */,
				D6F56AE01C76471B00F047B6 /* OpenWhiskWatch */,
				D6E3E6371C72592300843E16 /* Products */,
			);
			sourceTree = "<group>";
		};
		D6E3E6371C72592300843E16 /* Products */ = {
			isa = PBXGroup;
			children = (
				D6E3E6361C72592300843E16 /* OpenWhisk.framework */,
				D6E3E6401C72592300843E16 /* OpenWhiskTests.xctest */,
				D6F56ADF1C76471B00F047B6 /* OpenWhiskWatch.framework */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		D6E3E6381C72592300843E16 /* OpenWhisk */ = {
			isa = PBXGroup;
			children = (
				D6C9C3B41C8F53C9002BDB13 /* Config.swift */,
				D6C9C3B51C8F53C9002BDB13 /* OpenWhiskConfig.plist */,
				D6C9C3B61C8F53C9002BDB13 /* OpenWhiskSDK.swift */,
				D6E3E6511C72760C00843E16 /* OpenWhiskButton.swift */,
				D6E3E6391C72592300843E16 /* OpenWhisk.h */,
				D6E3E63B1C72592300843E16 /* Info.plist */,
			);
			path = OpenWhisk;
			sourceTree = "<group>";
		};
		D6E3E6441C72592300843E16 /* OpenWhiskTests */ = {
			isa = PBXGroup;
			children = (
				D6E3E6451C72592300843E16 /* OpenWhiskTests.swift */,
				D6E3E6471C72592300843E16 /* Info.plist */,
			);
			path = OpenWhiskTests;
			sourceTree = "<group>";
		};
		D6F56AE01C76471B00F047B6 /* OpenWhiskWatch */ = {
			isa = PBXGroup;
			children = (
				D6F56AE11C76471B00F047B6 /* OpenWhiskWatch.h */,
				D6F56AE31C76471B00F047B6 /* Info.plist */,
			);
			path = OpenWhiskWatch;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		D6E3E6331C72592300843E16 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				D6E3E63A1C72592300843E16 /* OpenWhisk.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		D6F56ADC1C76471B00F047B6 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				D6F56AE21C76471B00F047B6 /* OpenWhiskWatch.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
		D6E3E6351C72592300843E16 /* OpenWhisk */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = D6E3E64A1C72592300843E16 /* Build configuration list for PBXNativeTarget "OpenWhisk" */;
			buildPhases = (
				D6E3E6311C72592300843E16 /* Sources */,
				D6E3E6321C72592300843E16 /* Frameworks */,
				D6E3E6331C72592300843E16 /* Headers */,
				D6E3E6341C72592300843E16 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = OpenWhisk;
			productName = OpenWhisk;
			productReference = D6E3E6361C72592300843E16 /* OpenWhisk.framework */;
			productType = "com.apple.product-type.framework";
		};
		D6E3E63F1C72592300843E16 /* OpenWhiskTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = D6E3E64D1C72592300843E16 /* Build configuration list for PBXNativeTarget "OpenWhiskTests" */;
			buildPhases = (
				D6E3E63C1C72592300843E16 /* Sources */,
				D6E3E63D1C72592300843E16 /* Frameworks */,
				D6E3E63E1C72592300843E16 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				D6E3E6431C72592300843E16 /* PBXTargetDependency */,
			);
			name = OpenWhiskTests;
			productName = OpenWhiskTests;
			productReference = D6E3E6401C72592300843E16 /* OpenWhiskTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		D6F56ADE1C76471B00F047B6 /* OpenWhiskWatch */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = D6F56AE61C76471B00F047B6 /* Build configuration list for PBXNativeTarget "OpenWhiskWatch" */;
			buildPhases = (
				D6F56ADA1C76471B00F047B6 /* Sources */,
				D6F56ADB1C76471B00F047B6 /* Frameworks */,
				D6F56ADC1C76471B00F047B6 /* Headers */,
				D6F56ADD1C76471B00F047B6 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = OpenWhiskWatch;
			productName = OpenWhiskWatch;
			productReference = D6F56ADF1C76471B00F047B6 /* OpenWhiskWatch.framework */;
			productType = "com.apple.product-type.framework";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		D6E3E62D1C72592300843E16 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftUpdateCheck = 0720;
				LastUpgradeCheck = 0720;
				ORGANIZATIONNAME = IBM;
				TargetAttributes = {
					D6E3E6351C72592300843E16 = {
						CreatedOnToolsVersion = 7.2.1;
					};
					D6E3E63F1C72592300843E16 = {
						CreatedOnToolsVersion = 7.2.1;
					};
					D6F56ADE1C76471B00F047B6 = {
						CreatedOnToolsVersion = 7.2.1;
					};
				};
			};
			buildConfigurationList = D6E3E6301C72592300843E16 /* Build configuration list for PBXProject "OpenWhisk" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = D6E3E62C1C72592300843E16;
			productRefGroup = D6E3E6371C72592300843E16 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				D6E3E6351C72592300843E16 /* OpenWhisk */,
				D6E3E63F1C72592300843E16 /* OpenWhiskTests */,
				D6F56ADE1C76471B00F047B6 /* OpenWhiskWatch */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		D6E3E6341C72592300843E16 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				D6C9C3B81C8F53C9002BDB13 /* OpenWhiskConfig.plist in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		D6E3E63E1C72592300843E16 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		D6F56ADD1C76471B00F047B6 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		D6E3E6311C72592300843E16 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				D6C9C3B91C8F53C9002BDB13 /* OpenWhiskSDK.swift in Sources */,
				D6E3E6551C72760C00843E16 /* OpenWhiskButton.swift in Sources */,
				D6C9C3B71C8F53C9002BDB13 /* Config.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		D6E3E63C1C72592300843E16 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				D6C9C3BC1C8F53DD002BDB13 /* OpenWhiskSDK.swift in Sources */,
				D6C9C3BD1C8F53E0002BDB13 /* Config.swift in Sources */,
				D64559FC1C8F49A600AA6840 /* OpenWhiskButton.swift in Sources */,
				D6E3E6461C72592300843E16 /* OpenWhiskTests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		D6F56ADA1C76471B00F047B6 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				D6C9C3BA1C8F53D3002BDB13 /* Config.swift in Sources */,
				D6C9C3BB1C8F53D8002BDB13 /* OpenWhiskSDK.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		D6E3E6431C72592300843E16 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = D6E3E6351C72592300843E16 /* OpenWhisk */;
			targetProxy = D6E3E6421C72592300843E16 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		D6E3E6481C72592300843E16 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				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_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1;
				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 = 9.2;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				TARGETED_DEVICE_FAMILY = "1,2";
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Debug;
		};
		D6E3E6491C72592300843E16 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				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_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1;
				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 = 9.2;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALIDATE_PRODUCT = YES;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Release;
		};
		D6E3E64B1C72592300843E16 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_MODULES = YES;
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = OpenWhisk/Info.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = org.openwhisk.OpenWhisk;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
			};
			name = Debug;
		};
		D6E3E64C1C72592300843E16 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_MODULES = YES;
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = OpenWhisk/Info.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = org.openwhisk.OpenWhisk;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
			};
			name = Release;
		};
		D6E3E64E1C72592300843E16 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				INFOPLIST_FILE = OpenWhiskTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.ibm.mobile.openwhisk.OpenWhiskTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		D6E3E64F1C72592300843E16 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				INFOPLIST_FILE = OpenWhiskTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.ibm.mobile.openwhisk.OpenWhiskTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		D6F56AE41C76471B00F047B6 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				APPLICATION_EXTENSION_API_ONLY = YES;
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = OpenWhiskWatch/Info.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.ibm.mobile.openwhisk.OpenWhiskWatch;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = watchos;
				SKIP_INSTALL = YES;
				TARGETED_DEVICE_FAMILY = 4;
				WATCHOS_DEPLOYMENT_TARGET = 2.1;
			};
			name = Debug;
		};
		D6F56AE51C76471B00F047B6 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				APPLICATION_EXTENSION_API_ONLY = YES;
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = OpenWhiskWatch/Info.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.ibm.mobile.openwhisk.OpenWhiskWatch;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = watchos;
				SKIP_INSTALL = YES;
				TARGETED_DEVICE_FAMILY = 4;
				WATCHOS_DEPLOYMENT_TARGET = 2.1;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		D6E3E6301C72592300843E16 /* Build configuration list for PBXProject "OpenWhisk" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				D6E3E6481C72592300843E16 /* Debug */,
				D6E3E6491C72592300843E16 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		D6E3E64A1C72592300843E16 /* Build configuration list for PBXNativeTarget "OpenWhisk" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				D6E3E64B1C72592300843E16 /* Debug */,
				D6E3E64C1C72592300843E16 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		D6E3E64D1C72592300843E16 /* Build configuration list for PBXNativeTarget "OpenWhiskTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				D6E3E64E1C72592300843E16 /* Debug */,
				D6E3E64F1C72592300843E16 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		D6F56AE61C76471B00F047B6 /* Build configuration list for PBXNativeTarget "OpenWhiskWatch" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				D6F56AE41C76471B00F047B6 /* Debug */,
				D6F56AE51C76471B00F047B6 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = D6E3E62D1C72592300843E16 /* Project object */;
}
