// !$*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 */; };
/* 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 */
		92BBA3EB1D64D69B0026EC66 /* Info_watchOS.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info_watchOS.plist; sourceTree = "<group>"; };
		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_iOS.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info_iOS.plist; sourceTree = "<group>"; };
		D6E3E6401C72592300843E16 /* OpenWhisk Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "OpenWhisk Tests.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 /* OpenWhisk.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OpenWhisk.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* 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 */
		92BBA3EC1D64D6EF0026EC66 /* Resources */ = {
			isa = PBXGroup;
			children = (
				D6C9C3B51C8F53C9002BDB13 /* OpenWhiskConfig.plist */,
				D6E3E6391C72592300843E16 /* OpenWhisk.h */,
				D6E3E63B1C72592300843E16 /* Info_iOS.plist */,
				92BBA3EB1D64D69B0026EC66 /* Info_watchOS.plist */,
			);
			name = Resources;
			sourceTree = "<group>";
		};
		D6E3E62C1C72592300843E16 = {
			isa = PBXGroup;
			children = (
				D6E3E6381C72592300843E16 /* OpenWhisk */,
				D6E3E6441C72592300843E16 /* OpenWhiskTests */,
				D6E3E6371C72592300843E16 /* Products */,
			);
			sourceTree = "<group>";
		};
		D6E3E6371C72592300843E16 /* Products */ = {
			isa = PBXGroup;
			children = (
				D6E3E6361C72592300843E16 /* OpenWhisk.framework */,
				D6E3E6401C72592300843E16 /* OpenWhisk Tests.xctest */,
				D6F56ADF1C76471B00F047B6 /* OpenWhisk.framework */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		D6E3E6381C72592300843E16 /* OpenWhisk */ = {
			isa = PBXGroup;
			children = (
				D6C9C3B61C8F53C9002BDB13 /* OpenWhiskSDK.swift */,
				D6E3E6511C72760C00843E16 /* OpenWhiskButton.swift */,
				D6C9C3B41C8F53C9002BDB13 /* Config.swift */,
				92BBA3EC1D64D6EF0026EC66 /* Resources */,
			);
			path = OpenWhisk;
			sourceTree = "<group>";
		};
		D6E3E6441C72592300843E16 /* OpenWhiskTests */ = {
			isa = PBXGroup;
			children = (
				D6E3E6451C72592300843E16 /* OpenWhiskTests.swift */,
				D6E3E6471C72592300843E16 /* Info.plist */,
			);
			path = OpenWhiskTests;
			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 = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

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

/* Begin PBXProject section */
		D6E3E62D1C72592300843E16 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftUpdateCheck = 0720;
				LastUpgradeCheck = 0800;
				ORGANIZATIONNAME = IBM;
				TargetAttributes = {
					D6E3E6351C72592300843E16 = {
						CreatedOnToolsVersion = 7.2.1;
						LastSwiftMigration = 0800;
					};
					D6E3E63F1C72592300843E16 = {
						CreatedOnToolsVersion = 7.2.1;
						LastSwiftMigration = 0800;
					};
					D6F56ADE1C76471B00F047B6 = {
						CreatedOnToolsVersion = 7.2.1;
						LastSwiftMigration = 0800;
					};
				};
			};
			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 iOS */,
				D6F56ADE1C76471B00F047B6 /* OpenWhisk watchOS */,
				D6E3E63F1C72592300843E16 /* OpenWhisk Tests */,
			);
		};
/* 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 iOS */;
			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_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				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 = 10.0;
				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_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				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 = 10.0;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = iphoneos;
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
				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;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = OpenWhisk/Info_iOS.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = org.openwhisk.OpenWhisk;
				PRODUCT_NAME = OpenWhisk;
				SKIP_INSTALL = YES;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_VERSION = 3.0;
			};
			name = Debug;
		};
		D6E3E64C1C72592300843E16 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_MODULES = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = OpenWhisk/Info_iOS.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = org.openwhisk.OpenWhisk;
				PRODUCT_NAME = OpenWhisk;
				SKIP_INSTALL = YES;
				SWIFT_VERSION = 3.0;
			};
			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)";
				SWIFT_VERSION = 3.0;
			};
			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)";
				SWIFT_VERSION = 3.0;
			};
			name = Release;
		};
		D6F56AE41C76471B00F047B6 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				APPLICATION_EXTENSION_API_ONLY = YES;
				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = OpenWhisk/Info_watchOS.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.OpenWhisk;
				PRODUCT_NAME = OpenWhisk;
				SDKROOT = watchos;
				SKIP_INSTALL = YES;
				SWIFT_VERSION = 3.0;
				TARGETED_DEVICE_FAMILY = 4;
				WATCHOS_DEPLOYMENT_TARGET = 3.0;
			};
			name = Debug;
		};
		D6F56AE51C76471B00F047B6 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				APPLICATION_EXTENSION_API_ONLY = YES;
				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = OpenWhisk/Info_watchOS.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.OpenWhisk;
				PRODUCT_NAME = OpenWhisk;
				SDKROOT = watchos;
				SKIP_INSTALL = YES;
				SWIFT_VERSION = 3.0;
				TARGETED_DEVICE_FAMILY = 4;
				WATCHOS_DEPLOYMENT_TARGET = 3.0;
			};
			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 iOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				D6E3E64B1C72592300843E16 /* Debug */,
				D6E3E64C1C72592300843E16 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		D6E3E64D1C72592300843E16 /* Build configuration list for PBXNativeTarget "OpenWhisk Tests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				D6E3E64E1C72592300843E16 /* Debug */,
				D6E3E64F1C72592300843E16 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		D6F56AE61C76471B00F047B6 /* Build configuration list for PBXNativeTarget "OpenWhisk watchOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				D6F56AE41C76471B00F047B6 /* Debug */,
				D6F56AE51C76471B00F047B6 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = D6E3E62D1C72592300843E16 /* Project object */;
}
