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

/* Begin PBXBuildFile section */
		7E70899E1B587F29004D23AA /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E70899D1B587F29004D23AA /* CoreFoundation.framework */; };
		7E7089A01B58801E004D23AA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E70899F1B58801E004D23AA /* Foundation.framework */; };
		7E8E3A861C45D4CE0017F6C1 /* ios_deploy_tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E8E3A851C45D4CE0017F6C1 /* ios_deploy_tests.m */; };
		7E8E3A921C45D5380017F6C1 /* libios_deploy.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E8E3A911C45D5380017F6C1 /* libios_deploy.h */; settings = {ATTRIBUTES = (Public, ); }; };
		7E8E3A941C45D5380017F6C1 /* libios_deploy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E8E3A931C45D5380017F6C1 /* libios_deploy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
		7E8E3A9B1C45D5970017F6C1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E70899F1B58801E004D23AA /* Foundation.framework */; };
		7E8E3A9D1C45D6290017F6C1 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E70899D1B587F29004D23AA /* CoreFoundation.framework */; };
		7EDCC3CD1C45DC94002F9851 /* ios-deploy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E7089991B587DE4004D23AA /* ios-deploy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		7E8E3A991C45D5850017F6C1 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 7E7089861B587BF3004D23AA /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 7E8E3A8E1C45D5380017F6C1;
			remoteInfo = "ios-deploy-lib";
		};
		7EDCC3CA1C45D933002F9851 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 7E7089861B587BF3004D23AA /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 7E8E3A8E1C45D5380017F6C1;
			remoteInfo = "ios-deploy-lib";
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		7B28C98C1DC10655009569B6 /* device_db.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = device_db.h; sourceTree = "<group>"; };
		7E1C00CC1C3C93AF00D686B5 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = "<group>"; };
		7E1C00CF1C3C9ABB00D686B5 /* lldb.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; name = lldb.py; path = src/scripts/lldb.py; sourceTree = SOURCE_ROOT; };
		7E1C00D11C3C9CB000D686B5 /* lldb.py.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lldb.py.h; sourceTree = "<group>"; };
		7E70898E1B587BF3004D23AA /* ios-deploy */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "ios-deploy"; sourceTree = BUILT_PRODUCTS_DIR; };
		7E7089991B587DE4004D23AA /* ios-deploy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "ios-deploy.m"; sourceTree = "<group>"; };
		7E70899A1B587DE4004D23AA /* errors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = errors.h; sourceTree = "<group>"; };
		7E70899B1B587DE4004D23AA /* MobileDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MobileDevice.h; sourceTree = "<group>"; };
		7E70899D1B587F29004D23AA /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
		7E70899F1B58801E004D23AA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		7E8E3A831C45D4CE0017F6C1 /* ios-deploy-tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "ios-deploy-tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
		7E8E3A851C45D4CE0017F6C1 /* ios_deploy_tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ios_deploy_tests.m; sourceTree = "<group>"; };
		7E8E3A871C45D4CE0017F6C1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		7E8E3A8F1C45D5380017F6C1 /* libios-deploy.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libios-deploy.a"; sourceTree = BUILT_PRODUCTS_DIR; };
		7E8E3A911C45D5380017F6C1 /* libios_deploy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libios_deploy.h; sourceTree = "<group>"; };
		7E8E3A931C45D5380017F6C1 /* libios_deploy.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = libios_deploy.m; sourceTree = "<group>"; };
		7EDCC3CE1C45DFF0002F9851 /* check_reqs.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = check_reqs.js; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		7E70898B1B587BF3004D23AA /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				7E7089A01B58801E004D23AA /* Foundation.framework in Frameworks */,
				7E70899E1B587F29004D23AA /* CoreFoundation.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		7E8E3A801C45D4CE0017F6C1 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		7E8E3A8C1C45D5380017F6C1 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				7E8E3A9D1C45D6290017F6C1 /* CoreFoundation.framework in Frameworks */,
				7E8E3A9B1C45D5970017F6C1 /* Foundation.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		7E1C00CE1C3C9A7700D686B5 /* scripts */ = {
			isa = PBXGroup;
			children = (
				7EDCC3CE1C45DFF0002F9851 /* check_reqs.js */,
				7E1C00CF1C3C9ABB00D686B5 /* lldb.py */,
			);
			name = scripts;
			path = src/scripts;
			sourceTree = "<group>";
		};
		7E7089851B587BF3004D23AA = {
			isa = PBXGroup;
			children = (
				7E1C00CE1C3C9A7700D686B5 /* scripts */,
				7E7089901B587BF3004D23AA /* ios-deploy */,
				7E8E3A841C45D4CE0017F6C1 /* ios-deploy-tests */,
				7E8E3A901C45D5380017F6C1 /* ios-deploy-lib */,
				7E7089A21B588219004D23AA /* Frameworks */,
				7E70898F1B587BF3004D23AA /* Products */,
			);
			sourceTree = "<group>";
		};
		7E70898F1B587BF3004D23AA /* Products */ = {
			isa = PBXGroup;
			children = (
				7E70898E1B587BF3004D23AA /* ios-deploy */,
				7E8E3A831C45D4CE0017F6C1 /* ios-deploy-tests.xctest */,
				7E8E3A8F1C45D5380017F6C1 /* libios-deploy.a */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		7E7089901B587BF3004D23AA /* ios-deploy */ = {
			isa = PBXGroup;
			children = (
				7E1C00D11C3C9CB000D686B5 /* lldb.py.h */,
				7E1C00CC1C3C93AF00D686B5 /* version.h */,
				7E7089991B587DE4004D23AA /* ios-deploy.m */,
				7E70899A1B587DE4004D23AA /* errors.h */,
				7E70899B1B587DE4004D23AA /* MobileDevice.h */,
				7B28C98C1DC10655009569B6 /* device_db.h */,
			);
			name = "ios-deploy";
			path = "src/ios-deploy";
			sourceTree = "<group>";
		};
		7E7089A21B588219004D23AA /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				7E70899F1B58801E004D23AA /* Foundation.framework */,
				7E70899D1B587F29004D23AA /* CoreFoundation.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		7E8E3A841C45D4CE0017F6C1 /* ios-deploy-tests */ = {
			isa = PBXGroup;
			children = (
				7E8E3A851C45D4CE0017F6C1 /* ios_deploy_tests.m */,
				7E8E3A871C45D4CE0017F6C1 /* Info.plist */,
			);
			name = "ios-deploy-tests";
			path = "src/ios-deploy-tests";
			sourceTree = "<group>";
		};
		7E8E3A901C45D5380017F6C1 /* ios-deploy-lib */ = {
			isa = PBXGroup;
			children = (
				7E8E3A911C45D5380017F6C1 /* libios_deploy.h */,
				7E8E3A931C45D5380017F6C1 /* libios_deploy.m */,
			);
			name = "ios-deploy-lib";
			path = "src/ios-deploy-lib";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		7E8E3A8D1C45D5380017F6C1 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				7E8E3A921C45D5380017F6C1 /* libios_deploy.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
		7E70898D1B587BF3004D23AA /* ios-deploy */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 7E7089951B587BF3004D23AA /* Build configuration list for PBXNativeTarget "ios-deploy" */;
			buildPhases = (
				7EDCC3CF1C45E03B002F9851 /* ShellScript */,
				C0CD3D981F59D20100F954DB /* ShellScript */,
				7E70898B1B587BF3004D23AA /* Frameworks */,
				7EDCC3CC1C45DC89002F9851 /* Sources */,
			);
			buildRules = (
			);
			dependencies = (
				7E8E3A9A1C45D5850017F6C1 /* PBXTargetDependency */,
			);
			name = "ios-deploy";
			productName = "ios-deploy";
			productReference = 7E70898E1B587BF3004D23AA /* ios-deploy */;
			productType = "com.apple.product-type.tool";
		};
		7E8E3A821C45D4CE0017F6C1 /* ios-deploy-tests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 7E8E3A8A1C45D4CE0017F6C1 /* Build configuration list for PBXNativeTarget "ios-deploy-tests" */;
			buildPhases = (
				3BF32EF31F5A215300E1699B /* ShellScript */,
				7E8E3A7F1C45D4CE0017F6C1 /* Sources */,
				7E8E3A801C45D4CE0017F6C1 /* Frameworks */,
				7E8E3A811C45D4CE0017F6C1 /* Resources */,
				3BF32EF41F5A217100E1699B /* ShellScript */,
			);
			buildRules = (
			);
			dependencies = (
				7EDCC3CB1C45D933002F9851 /* PBXTargetDependency */,
			);
			name = "ios-deploy-tests";
			productName = "ios-deploy-tests";
			productReference = 7E8E3A831C45D4CE0017F6C1 /* ios-deploy-tests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		7E8E3A8E1C45D5380017F6C1 /* ios-deploy-lib */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 7E8E3A951C45D5380017F6C1 /* Build configuration list for PBXNativeTarget "ios-deploy-lib" */;
			buildPhases = (
				7E8E3A8B1C45D5380017F6C1 /* Sources */,
				7E8E3A8C1C45D5380017F6C1 /* Frameworks */,
				7E8E3A8D1C45D5380017F6C1 /* Headers */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "ios-deploy-lib";
			productName = "ios-deploy-lib";
			productReference = 7E8E3A8F1C45D5380017F6C1 /* libios-deploy.a */;
			productType = "com.apple.product-type.library.static";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		7E7089861B587BF3004D23AA /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0940;
				ORGANIZATIONNAME = PhoneGap;
				TargetAttributes = {
					7E70898D1B587BF3004D23AA = {
						CreatedOnToolsVersion = 6.4;
					};
					7E8E3A821C45D4CE0017F6C1 = {
						CreatedOnToolsVersion = 7.2;
					};
					7E8E3A8E1C45D5380017F6C1 = {
						CreatedOnToolsVersion = 7.2;
					};
				};
			};
			buildConfigurationList = 7E7089891B587BF3004D23AA /* Build configuration list for PBXProject "ios-deploy" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = en;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 7E7089851B587BF3004D23AA;
			productRefGroup = 7E70898F1B587BF3004D23AA /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				7E70898D1B587BF3004D23AA /* ios-deploy */,
				7E8E3A821C45D4CE0017F6C1 /* ios-deploy-tests */,
				7E8E3A8E1C45D5380017F6C1 /* ios-deploy-lib */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		7E8E3A811C45D4CE0017F6C1 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		3BF32EF31F5A215300E1699B /* ShellScript */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "mkdir -p \"${PROJECT_DIR}/_Frameworks\"\n\n# copy over MobileDevice.framework from its location\nMD_FRAMEWORK_LOCATION=/System/Library/PrivateFrameworks/MobileDevice.framework\nif [ -d \"$MD_FRAMEWORK_LOCATION\" ]; then\n    rsync -r $MD_FRAMEWORK_LOCATION \"${PROJECT_DIR}/_Frameworks\" --exclude=XPCServices --links\nfi\n\n# check if this new location exists, if it does, copy it instead\nNEW_MD_FRAMEWORK_LOCATION=/Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework\nif [ -d \"$NEW_MD_FRAMEWORK_LOCATION\" ]; then\nrsync -r $NEW_MD_FRAMEWORK_LOCATION \"${PROJECT_DIR}/_Frameworks\" --exclude=XPCServices --links\nfi\n\n";
		};
		3BF32EF41F5A217100E1699B /* ShellScript */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "rm -rf \"${PROJECT_DIR}/_Frameworks\"";
		};
		7EDCC3CF1C45E03B002F9851 /* ShellScript */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "echo \"\\\"# AUTO-GENERATED - DO NOT MODIFY\\\"\" > src/ios-deploy/lldb.py.h\nawk '{ print \"\\\"\"$0\"\\\\n\\\"\"}' src/scripts/lldb.py >> src/ios-deploy/lldb.py.h\n";
		};
		C0CD3D981F59D20100F954DB /* ShellScript */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "mkdir -p \"${PROJECT_DIR}/_Frameworks\"\n\n# copy over MobileDevice.framework from its location\nMD_FRAMEWORK_LOCATION=/System/Library/PrivateFrameworks/MobileDevice.framework\nif [ -d \"$MD_FRAMEWORK_LOCATION\" ]; then\n    rsync -r $MD_FRAMEWORK_LOCATION \"${PROJECT_DIR}/_Frameworks\" --exclude=XPCServices --links\nfi\n\n# check if this new location exists, if it does, copy it instead\nNEW_MD_FRAMEWORK_LOCATION=/Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework\nif [ -d \"$NEW_MD_FRAMEWORK_LOCATION\" ]; then\nrsync -r $NEW_MD_FRAMEWORK_LOCATION \"${PROJECT_DIR}/_Frameworks\" --exclude=XPCServices --links\nfi\n\n";
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		7E8E3A7F1C45D4CE0017F6C1 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				7E8E3A861C45D4CE0017F6C1 /* ios_deploy_tests.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		7E8E3A8B1C45D5380017F6C1 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				7E8E3A941C45D5380017F6C1 /* libios_deploy.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		7EDCC3CC1C45DC89002F9851 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				7EDCC3CD1C45DC94002F9851 /* ios-deploy.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		7E8E3A9A1C45D5850017F6C1 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 7E8E3A8E1C45D5380017F6C1 /* ios-deploy-lib */;
			targetProxy = 7E8E3A991C45D5850017F6C1 /* PBXContainerItemProxy */;
		};
		7EDCC3CB1C45D933002F9851 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 7E8E3A8E1C45D5380017F6C1 /* ios-deploy-lib */;
			targetProxy = 7EDCC3CA1C45D933002F9851 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		7E7089931B587BF3004D23AA /* 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;
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				FRAMEWORK_SEARCH_PATHS = (
					"$(inherited)",
					"$(PROJECT_DIR)/_Frameworks",
				);
				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_SYMBOLS_PRIVATE_EXTERN = NO;
				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;
				MACOSX_DEPLOYMENT_TARGET = 10.8;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				OTHER_LDFLAGS = (
					"-framework",
					MobileDevice,
				);
				SDKROOT = macosx;
			};
			name = Debug;
		};
		7E7089941B587BF3004D23AA /* 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;
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				FRAMEWORK_SEARCH_PATHS = (
					"$(inherited)",
					"$(PROJECT_DIR)/_Frameworks",
				);
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_PREPROCESSOR_DEFINITIONS = "NDEBUG=1";
				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;
				MACOSX_DEPLOYMENT_TARGET = 10.8;
				MTL_ENABLE_DEBUG_INFO = NO;
				OTHER_LDFLAGS = (
					"-framework",
					MobileDevice,
				);
				SDKROOT = macosx;
			};
			name = Release;
		};
		7E7089961B587BF3004D23AA /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		7E7089971B587BF3004D23AA /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		7E8E3A881C45D4CE0017F6C1 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CODE_SIGN_IDENTITY = "-";
				COMBINE_HIDPI_IMAGES = YES;
				INFOPLIST_FILE = "src/ios-deploy-tests/Info.plist";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				PRODUCT_BUNDLE_IDENTIFIER = "com.phonegap.ios-deploy-tests";
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		7E8E3A891C45D4CE0017F6C1 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CODE_SIGN_IDENTITY = "-";
				COMBINE_HIDPI_IMAGES = YES;
				INFOPLIST_FILE = "src/ios-deploy-tests/Info.plist";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				PRODUCT_BUNDLE_IDENTIFIER = "com.phonegap.ios-deploy-tests";
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		7E8E3A961C45D5380017F6C1 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CODE_SIGN_IDENTITY = "-";
				EXECUTABLE_PREFIX = lib;
				INSTALL_PATH = "";
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				PRODUCT_NAME = "ios-deploy";
				PUBLIC_HEADERS_FOLDER_PATH = "";
			};
			name = Debug;
		};
		7E8E3A971C45D5380017F6C1 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CODE_SIGN_IDENTITY = "-";
				EXECUTABLE_PREFIX = lib;
				INSTALL_PATH = "";
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				PRODUCT_NAME = "ios-deploy";
				PUBLIC_HEADERS_FOLDER_PATH = "";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		7E7089891B587BF3004D23AA /* Build configuration list for PBXProject "ios-deploy" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				7E7089931B587BF3004D23AA /* Debug */,
				7E7089941B587BF3004D23AA /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		7E7089951B587BF3004D23AA /* Build configuration list for PBXNativeTarget "ios-deploy" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				7E7089961B587BF3004D23AA /* Debug */,
				7E7089971B587BF3004D23AA /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		7E8E3A8A1C45D4CE0017F6C1 /* Build configuration list for PBXNativeTarget "ios-deploy-tests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				7E8E3A881C45D4CE0017F6C1 /* Debug */,
				7E8E3A891C45D4CE0017F6C1 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		7E8E3A951C45D5380017F6C1 /* Build configuration list for PBXNativeTarget "ios-deploy-lib" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				7E8E3A961C45D5380017F6C1 /* Debug */,
				7E8E3A971C45D5380017F6C1 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 7E7089861B587BF3004D23AA /* Project object */;
}
