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

/* Begin PBXBuildFile section */
		D61CBB251D9205E600176E5D /* OpenWhiskConfig.plist in Resources */ = {isa = PBXBuildFile; fileRef = D6C9C3B51C8F53C9002BDB13 /* OpenWhiskConfig.plist */; };
		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 = (
				D61CBB251D9205E600176E5D /* OpenWhiskConfig.plist in Resources */,
			);
			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 = 9.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 = 9.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 */;
}
