// !$*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 = 0930;
				ORGANIZATIONNAME = IBM;
				TargetAttributes = {
					D6E3E6351C72592300843E16 = {
						CreatedOnToolsVersion = 7.2.1;
						LastSwiftMigration = 0930;
					};
					D6E3E63F1C72592300843E16 = {
						CreatedOnToolsVersion = 7.2.1;
						LastSwiftMigration = 0930;
					};
					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_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = 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_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				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 = 11.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_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = 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_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				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 = 11.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 = 11.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_SWIFT3_OBJC_INFERENCE = Default;
				SWIFT_VERSION = 4.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 = 11.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_SWIFT3_OBJC_INFERENCE = Default;
				SWIFT_VERSION = 4.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_SWIFT3_OBJC_INFERENCE = Default;
				SWIFT_VERSION = 4.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_SWIFT3_OBJC_INFERENCE = Default;
				SWIFT_VERSION = 4.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 = 4.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 = 4.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 */;
}
