diff --git a/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryOne.xcodeproj/project.pbxproj b/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryOne.xcodeproj/project.pbxproj new file mode 100644 index 0000000..b8c9d43 --- /dev/null +++ b/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryOne.xcodeproj/project.pbxproj @@ -0,0 +1,513 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 9B0B718C1E20DD5A005D11BA /* BSStaticLibraryOne.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0B718B1E20DD5A005D11BA /* BSStaticLibraryOne.m */; }; + 9B0B718D1E20DD5A005D11BA /* BSStaticLibraryOne.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9B0B718A1E20DD5A005D11BA /* BSStaticLibraryOne.h */; }; + 9B0B71951E20DE7B005D11BA /* BSStaticLibraryOne+Extension.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0B71941E20DE7B005D11BA /* BSStaticLibraryOne+Extension.m */; }; + 9B0B71BC1E20E3A0005D11BA /* BSStaticLibraryOne.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B0B718A1E20DD5A005D11BA /* BSStaticLibraryOne.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B0B71BD1E20E3A0005D11BA /* BSStaticLibraryOne+Extension.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B0B71931E20DE7B005D11BA /* BSStaticLibraryOne+Extension.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B53E8551E223564005F74C6 /* BSStaticLibraryTwo.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B53E8541E223564005F74C6 /* BSStaticLibraryTwo.m */; }; + 9B53E8561E223564005F74C6 /* BSStaticLibraryTwo.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9B53E8531E223564005F74C6 /* BSStaticLibraryTwo.h */; }; + 9B53E85B1E224C62005F74C6 /* BSStaticLibraryTwo.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B53E8531E223564005F74C6 /* BSStaticLibraryTwo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9B53E8641E226EA4005F74C6 /* Pod.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B53E8631E226EA4005F74C6 /* Pod.m */; }; + 9B53E8651E226EA4005F74C6 /* Pod.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9B53E8621E226EA4005F74C6 /* Pod.h */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 9B53E8691E226EAD005F74C6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 9B0B717F1E20DD5A005D11BA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9B0B71861E20DD5A005D11BA; + remoteInfo = BSStaticLibraryOne; + }; + 9B53E86B1E226EAD005F74C6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 9B0B717F1E20DD5A005D11BA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9B53E8501E223564005F74C6; + remoteInfo = BSStaticLibraryTwo; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9B0B71851E20DD5A005D11BA /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + 9B0B718D1E20DD5A005D11BA /* BSStaticLibraryOne.h in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9B53E84F1E223564005F74C6 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + 9B53E8561E223564005F74C6 /* BSStaticLibraryTwo.h in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9B53E85E1E226EA4005F74C6 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "include/$(PRODUCT_NAME)"; + dstSubfolderSpec = 16; + files = ( + 9B53E8651E226EA4005F74C6 /* Pod.h in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 9B0B71871E20DD5A005D11BA /* libBSStaticLibraryOne.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libBSStaticLibraryOne.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 9B0B718A1E20DD5A005D11BA /* BSStaticLibraryOne.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BSStaticLibraryOne.h; sourceTree = ""; }; + 9B0B718B1E20DD5A005D11BA /* BSStaticLibraryOne.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BSStaticLibraryOne.m; sourceTree = ""; }; + 9B0B71931E20DE7B005D11BA /* BSStaticLibraryOne+Extension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "BSStaticLibraryOne+Extension.h"; sourceTree = ""; }; + 9B0B71941E20DE7B005D11BA /* BSStaticLibraryOne+Extension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "BSStaticLibraryOne+Extension.m"; sourceTree = ""; }; + 9B53E8511E223564005F74C6 /* libBSStaticLibraryTwo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libBSStaticLibraryTwo.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 9B53E8531E223564005F74C6 /* BSStaticLibraryTwo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BSStaticLibraryTwo.h; sourceTree = ""; }; + 9B53E8541E223564005F74C6 /* BSStaticLibraryTwo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BSStaticLibraryTwo.m; sourceTree = ""; }; + 9B53E8601E226EA4005F74C6 /* libPod.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPod.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 9B53E8621E226EA4005F74C6 /* Pod.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Pod.h; sourceTree = ""; }; + 9B53E8631E226EA4005F74C6 /* Pod.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Pod.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 9B0B71841E20DD5A005D11BA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9B53E84E1E223564005F74C6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9B53E85D1E226EA4005F74C6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9B0B717E1E20DD5A005D11BA = { + isa = PBXGroup; + children = ( + 9B0B71891E20DD5A005D11BA /* BSStaticLibraryOne */, + 9B53E8521E223564005F74C6 /* BSStaticLibraryTwo */, + 9B53E8611E226EA4005F74C6 /* Pod */, + 9B0B71881E20DD5A005D11BA /* Products */, + ); + sourceTree = ""; + }; + 9B0B71881E20DD5A005D11BA /* Products */ = { + isa = PBXGroup; + children = ( + 9B0B71871E20DD5A005D11BA /* libBSStaticLibraryOne.a */, + 9B53E8511E223564005F74C6 /* libBSStaticLibraryTwo.a */, + 9B53E8601E226EA4005F74C6 /* libPod.a */, + ); + name = Products; + sourceTree = ""; + }; + 9B0B71891E20DD5A005D11BA /* BSStaticLibraryOne */ = { + isa = PBXGroup; + children = ( + 9B0B718A1E20DD5A005D11BA /* BSStaticLibraryOne.h */, + 9B0B718B1E20DD5A005D11BA /* BSStaticLibraryOne.m */, + 9B0B71931E20DE7B005D11BA /* BSStaticLibraryOne+Extension.h */, + 9B0B71941E20DE7B005D11BA /* BSStaticLibraryOne+Extension.m */, + ); + path = BSStaticLibraryOne; + sourceTree = ""; + }; + 9B53E8521E223564005F74C6 /* BSStaticLibraryTwo */ = { + isa = PBXGroup; + children = ( + 9B53E8531E223564005F74C6 /* BSStaticLibraryTwo.h */, + 9B53E8541E223564005F74C6 /* BSStaticLibraryTwo.m */, + ); + path = BSStaticLibraryTwo; + sourceTree = ""; + }; + 9B53E8611E226EA4005F74C6 /* Pod */ = { + isa = PBXGroup; + children = ( + 9B53E8621E226EA4005F74C6 /* Pod.h */, + 9B53E8631E226EA4005F74C6 /* Pod.m */, + ); + path = Pod; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 9B0B71BB1E20E374005D11BA /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9B0B71BC1E20E3A0005D11BA /* BSStaticLibraryOne.h in Headers */, + 9B0B71BD1E20E3A0005D11BA /* BSStaticLibraryOne+Extension.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9B53E85A1E224C5B005F74C6 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9B53E85B1E224C62005F74C6 /* BSStaticLibraryTwo.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 9B0B71861E20DD5A005D11BA /* BSStaticLibraryOne */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9B0B71901E20DD5A005D11BA /* Build configuration list for PBXNativeTarget "BSStaticLibraryOne" */; + buildPhases = ( + 9B0B71831E20DD5A005D11BA /* Sources */, + 9B0B71841E20DD5A005D11BA /* Frameworks */, + 9B0B71851E20DD5A005D11BA /* CopyFiles */, + 9B0B71BB1E20E374005D11BA /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = BSStaticLibraryOne; + productName = BSStaticLibraryOne; + productReference = 9B0B71871E20DD5A005D11BA /* libBSStaticLibraryOne.a */; + productType = "com.apple.product-type.library.static"; + }; + 9B53E8501E223564005F74C6 /* BSStaticLibraryTwo */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9B53E8571E223564005F74C6 /* Build configuration list for PBXNativeTarget "BSStaticLibraryTwo" */; + buildPhases = ( + 9B53E84D1E223564005F74C6 /* Sources */, + 9B53E84E1E223564005F74C6 /* Frameworks */, + 9B53E84F1E223564005F74C6 /* CopyFiles */, + 9B53E85A1E224C5B005F74C6 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = BSStaticLibraryTwo; + productName = BSStaticLibraryTwo; + productReference = 9B53E8511E223564005F74C6 /* libBSStaticLibraryTwo.a */; + productType = "com.apple.product-type.library.static"; + }; + 9B53E85F1E226EA4005F74C6 /* Pod */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9B53E8661E226EA4005F74C6 /* Build configuration list for PBXNativeTarget "Pod" */; + buildPhases = ( + 9B53E85C1E226EA4005F74C6 /* Sources */, + 9B53E85D1E226EA4005F74C6 /* Frameworks */, + 9B53E85E1E226EA4005F74C6 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + 9B53E86A1E226EAD005F74C6 /* PBXTargetDependency */, + 9B53E86C1E226EAD005F74C6 /* PBXTargetDependency */, + ); + name = Pod; + productName = Pod; + productReference = 9B53E8601E226EA4005F74C6 /* libPod.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 9B0B717F1E20DD5A005D11BA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0820; + ORGANIZATIONNAME = bestswifter; + TargetAttributes = { + 9B0B71861E20DD5A005D11BA = { + CreatedOnToolsVersion = 8.2; + ProvisioningStyle = Automatic; + }; + 9B53E8501E223564005F74C6 = { + CreatedOnToolsVersion = 8.2; + ProvisioningStyle = Automatic; + }; + 9B53E85F1E226EA4005F74C6 = { + CreatedOnToolsVersion = 8.2; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 9B0B71821E20DD5A005D11BA /* Build configuration list for PBXProject "BSStaticLibraryOne" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 9B0B717E1E20DD5A005D11BA; + productRefGroup = 9B0B71881E20DD5A005D11BA /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 9B0B71861E20DD5A005D11BA /* BSStaticLibraryOne */, + 9B53E8501E223564005F74C6 /* BSStaticLibraryTwo */, + 9B53E85F1E226EA4005F74C6 /* Pod */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 9B0B71831E20DD5A005D11BA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9B0B718C1E20DD5A005D11BA /* BSStaticLibraryOne.m in Sources */, + 9B0B71951E20DE7B005D11BA /* BSStaticLibraryOne+Extension.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9B53E84D1E223564005F74C6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9B53E8551E223564005F74C6 /* BSStaticLibraryTwo.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9B53E85C1E226EA4005F74C6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9B53E8641E226EA4005F74C6 /* Pod.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 9B53E86A1E226EAD005F74C6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 9B0B71861E20DD5A005D11BA /* BSStaticLibraryOne */; + targetProxy = 9B53E8691E226EAD005F74C6 /* PBXContainerItemProxy */; + }; + 9B53E86C1E226EAD005F74C6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 9B53E8501E223564005F74C6 /* BSStaticLibraryTwo */; + targetProxy = 9B53E86B1E226EAD005F74C6 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 9B0B718E1E20DD5A005D11BA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + 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_DOCUMENTATION_COMMENTS = YES; + 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; + 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.2; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 9B0B718F1E20DD5A005D11BA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + 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_DOCUMENTATION_COMMENTS = YES; + 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; + 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.2; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 9B0B71911E20DD5A005D11BA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = LibOne; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 9B0B71921E20DD5A005D11BA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = LibOne; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 9B53E8581E223564005F74C6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = LibTwo; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 9B53E8591E223564005F74C6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PUBLIC_HEADERS_FOLDER_PATH = LibTwo; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 9B53E8671E226EA4005F74C6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ONLY_ACTIVE_ARCH = NO; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 9B53E8681E226EA4005F74C6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 9B0B71821E20DD5A005D11BA /* Build configuration list for PBXProject "BSStaticLibraryOne" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9B0B718E1E20DD5A005D11BA /* Debug */, + 9B0B718F1E20DD5A005D11BA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9B0B71901E20DD5A005D11BA /* Build configuration list for PBXNativeTarget "BSStaticLibraryOne" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9B0B71911E20DD5A005D11BA /* Debug */, + 9B0B71921E20DD5A005D11BA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9B53E8571E223564005F74C6 /* Build configuration list for PBXNativeTarget "BSStaticLibraryTwo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9B53E8581E223564005F74C6 /* Debug */, + 9B53E8591E223564005F74C6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9B53E8661E226EA4005F74C6 /* Build configuration list for PBXNativeTarget "Pod" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9B53E8671E226EA4005F74C6 /* Debug */, + 9B53E8681E226EA4005F74C6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 9B0B717F1E20DD5A005D11BA /* Project object */; +} diff --git a/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryOne/BSStaticLibraryOne+Extension.h b/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryOne/BSStaticLibraryOne+Extension.h new file mode 100644 index 0000000..30106df --- /dev/null +++ b/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryOne/BSStaticLibraryOne+Extension.h @@ -0,0 +1,15 @@ +// +// BSStaticLibraryOne+Extension.h +// BSStaticLibraryOne +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import "BSStaticLibraryOne.h" + +@interface BSStaticLibraryOne (Extension) + +- (void)sayOtherThing; + +@end diff --git a/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryOne/BSStaticLibraryOne+Extension.m b/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryOne/BSStaticLibraryOne+Extension.m new file mode 100644 index 0000000..d5304ad --- /dev/null +++ b/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryOne/BSStaticLibraryOne+Extension.m @@ -0,0 +1,17 @@ +// +// BSStaticLibraryOne+Extension.m +// BSStaticLibraryOne +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import "BSStaticLibraryOne+Extension.h" + +@implementation BSStaticLibraryOne (Extension) + +- (void)sayOtherThing { + NSLog(@"In File: BSStaticLibraryOne + Extension"); +} + +@end diff --git a/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryOne/BSStaticLibraryOne.h b/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryOne/BSStaticLibraryOne.h new file mode 100644 index 0000000..1d02b37 --- /dev/null +++ b/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryOne/BSStaticLibraryOne.h @@ -0,0 +1,15 @@ +// +// BSStaticLibraryOne.h +// BSStaticLibraryOne +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import + +@interface BSStaticLibraryOne : NSObject + +- (void)saySomething; + +@end diff --git a/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryOne/BSStaticLibraryOne.m b/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryOne/BSStaticLibraryOne.m new file mode 100644 index 0000000..915f4c0 --- /dev/null +++ b/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryOne/BSStaticLibraryOne.m @@ -0,0 +1,17 @@ +// +// BSStaticLibraryOne.m +// BSStaticLibraryOne +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import "BSStaticLibraryOne.h" + +@implementation BSStaticLibraryOne + +- (void)saySomething { + NSLog(@"In Library: BSStaticLibraryOne"); +} + +@end diff --git a/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryTwo/BSStaticLibraryTwo.h b/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryTwo/BSStaticLibraryTwo.h new file mode 100644 index 0000000..1df0bde --- /dev/null +++ b/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryTwo/BSStaticLibraryTwo.h @@ -0,0 +1,15 @@ +// +// BSStaticLibraryTwo.h +// BSStaticLibraryTwo +// +// Created by 张星宇 on 2017/1/8. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import + +@interface BSStaticLibraryTwo : NSObject + +- (void)saySomething; + +@end diff --git a/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryTwo/BSStaticLibraryTwo.m b/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryTwo/BSStaticLibraryTwo.m new file mode 100644 index 0000000..f0d80f7 --- /dev/null +++ b/CocoaPodsDemo/BSStaticLibraryOne/BSStaticLibraryTwo/BSStaticLibraryTwo.m @@ -0,0 +1,17 @@ +// +// BSStaticLibraryTwo.m +// BSStaticLibraryTwo +// +// Created by 张星宇 on 2017/1/8. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import "BSStaticLibraryTwo.h" + +@implementation BSStaticLibraryTwo + +- (void)saySomething { + NSLog(@"In Library: BSStaticLibraryTwo"); +} + +@end diff --git a/CocoaPodsDemo/BSStaticLibraryOne/Pod/Pod.h b/CocoaPodsDemo/BSStaticLibraryOne/Pod/Pod.h new file mode 100644 index 0000000..2ea3778 --- /dev/null +++ b/CocoaPodsDemo/BSStaticLibraryOne/Pod/Pod.h @@ -0,0 +1,13 @@ +// +// Pod.h +// Pod +// +// Created by 张星宇 on 2017/1/8. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import + +@interface Pod : NSObject + +@end diff --git a/CocoaPodsDemo/BSStaticLibraryOne/Pod/Pod.m b/CocoaPodsDemo/BSStaticLibraryOne/Pod/Pod.m new file mode 100644 index 0000000..e052073 --- /dev/null +++ b/CocoaPodsDemo/BSStaticLibraryOne/Pod/Pod.m @@ -0,0 +1,13 @@ +// +// Pod.m +// Pod +// +// Created by 张星宇 on 2017/1/8. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import "Pod.h" + +@implementation Pod + +@end diff --git a/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag.xcodeproj/project.pbxproj b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag.xcodeproj/project.pbxproj new file mode 100644 index 0000000..0280a59 --- /dev/null +++ b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag.xcodeproj/project.pbxproj @@ -0,0 +1,332 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 9B0B71A41E20E289005D11BA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0B71A31E20E289005D11BA /* main.m */; }; + 9B0B71A71E20E289005D11BA /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0B71A61E20E289005D11BA /* AppDelegate.m */; }; + 9B0B71AA1E20E289005D11BA /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0B71A91E20E289005D11BA /* ViewController.m */; }; + 9B0B71AD1E20E289005D11BA /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9B0B71AB1E20E289005D11BA /* Main.storyboard */; }; + 9B0B71AF1E20E289005D11BA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9B0B71AE1E20E289005D11BA /* Assets.xcassets */; }; + 9B0B71B21E20E289005D11BA /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9B0B71B01E20E289005D11BA /* LaunchScreen.storyboard */; }; + 9B0B71BA1E20E298005D11BA /* libBSStaticLibraryOne.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B0B71B91E20E298005D11BA /* libBSStaticLibraryOne.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 9B0B719F1E20E289005D11BA /* OtherLinkerFlag.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OtherLinkerFlag.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 9B0B71A31E20E289005D11BA /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 9B0B71A51E20E289005D11BA /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 9B0B71A61E20E289005D11BA /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 9B0B71A81E20E289005D11BA /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + 9B0B71A91E20E289005D11BA /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + 9B0B71AC1E20E289005D11BA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 9B0B71AE1E20E289005D11BA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 9B0B71B11E20E289005D11BA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 9B0B71B31E20E289005D11BA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9B0B71B91E20E298005D11BA /* libBSStaticLibraryOne.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libBSStaticLibraryOne.a; sourceTree = ""; }; + 9B0B71BE1E20E4C1005D11BA /* BSStaticLibraryOne.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BSStaticLibraryOne.h; sourceTree = ""; }; + 9B0B71BF1E20E4C1005D11BA /* BSStaticLibraryOne+Extension.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "BSStaticLibraryOne+Extension.h"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 9B0B719C1E20E289005D11BA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9B0B71BA1E20E298005D11BA /* libBSStaticLibraryOne.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9B0B71961E20E289005D11BA = { + isa = PBXGroup; + children = ( + 9B0B71A11E20E289005D11BA /* OtherLinkerFlag */, + 9B0B71A01E20E289005D11BA /* Products */, + ); + sourceTree = ""; + }; + 9B0B71A01E20E289005D11BA /* Products */ = { + isa = PBXGroup; + children = ( + 9B0B719F1E20E289005D11BA /* OtherLinkerFlag.app */, + ); + name = Products; + sourceTree = ""; + }; + 9B0B71A11E20E289005D11BA /* OtherLinkerFlag */ = { + isa = PBXGroup; + children = ( + 9B0B71BE1E20E4C1005D11BA /* BSStaticLibraryOne.h */, + 9B0B71BF1E20E4C1005D11BA /* BSStaticLibraryOne+Extension.h */, + 9B0B71B91E20E298005D11BA /* libBSStaticLibraryOne.a */, + 9B0B71A51E20E289005D11BA /* AppDelegate.h */, + 9B0B71A61E20E289005D11BA /* AppDelegate.m */, + 9B0B71A81E20E289005D11BA /* ViewController.h */, + 9B0B71A91E20E289005D11BA /* ViewController.m */, + 9B0B71AB1E20E289005D11BA /* Main.storyboard */, + 9B0B71AE1E20E289005D11BA /* Assets.xcassets */, + 9B0B71B01E20E289005D11BA /* LaunchScreen.storyboard */, + 9B0B71B31E20E289005D11BA /* Info.plist */, + 9B0B71A21E20E289005D11BA /* Supporting Files */, + ); + path = OtherLinkerFlag; + sourceTree = ""; + }; + 9B0B71A21E20E289005D11BA /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 9B0B71A31E20E289005D11BA /* main.m */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 9B0B719E1E20E289005D11BA /* OtherLinkerFlag */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9B0B71B61E20E289005D11BA /* Build configuration list for PBXNativeTarget "OtherLinkerFlag" */; + buildPhases = ( + 9B0B719B1E20E289005D11BA /* Sources */, + 9B0B719C1E20E289005D11BA /* Frameworks */, + 9B0B719D1E20E289005D11BA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = OtherLinkerFlag; + productName = OtherLinkerFlag; + productReference = 9B0B719F1E20E289005D11BA /* OtherLinkerFlag.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 9B0B71971E20E289005D11BA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0820; + ORGANIZATIONNAME = bestswifter; + TargetAttributes = { + 9B0B719E1E20E289005D11BA = { + CreatedOnToolsVersion = 8.2; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 9B0B719A1E20E289005D11BA /* Build configuration list for PBXProject "OtherLinkerFlag" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 9B0B71961E20E289005D11BA; + productRefGroup = 9B0B71A01E20E289005D11BA /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 9B0B719E1E20E289005D11BA /* OtherLinkerFlag */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 9B0B719D1E20E289005D11BA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9B0B71B21E20E289005D11BA /* LaunchScreen.storyboard in Resources */, + 9B0B71AF1E20E289005D11BA /* Assets.xcassets in Resources */, + 9B0B71AD1E20E289005D11BA /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 9B0B719B1E20E289005D11BA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9B0B71AA1E20E289005D11BA /* ViewController.m in Sources */, + 9B0B71A71E20E289005D11BA /* AppDelegate.m in Sources */, + 9B0B71A41E20E289005D11BA /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 9B0B71AB1E20E289005D11BA /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 9B0B71AC1E20E289005D11BA /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 9B0B71B01E20E289005D11BA /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 9B0B71B11E20E289005D11BA /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 9B0B71B41E20E289005D11BA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + 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_DOCUMENTATION_COMMENTS = YES; + 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; + 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.2; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 9B0B71B51E20E289005D11BA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + 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_DOCUMENTATION_COMMENTS = YES; + 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; + 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.2; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 9B0B71B71E20E289005D11BA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = OtherLinkerFlag/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/OtherLinkerFlag", + ); + PRODUCT_BUNDLE_IDENTIFIER = bestswifter.OtherLinkerFlag; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 9B0B71B81E20E289005D11BA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + INFOPLIST_FILE = OtherLinkerFlag/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/OtherLinkerFlag", + ); + PRODUCT_BUNDLE_IDENTIFIER = bestswifter.OtherLinkerFlag; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 9B0B719A1E20E289005D11BA /* Build configuration list for PBXProject "OtherLinkerFlag" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9B0B71B41E20E289005D11BA /* Debug */, + 9B0B71B51E20E289005D11BA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9B0B71B61E20E289005D11BA /* Build configuration list for PBXNativeTarget "OtherLinkerFlag" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9B0B71B71E20E289005D11BA /* Debug */, + 9B0B71B81E20E289005D11BA /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = 9B0B71971E20E289005D11BA /* Project object */; +} diff --git a/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/AppDelegate.h b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/AppDelegate.h new file mode 100644 index 0000000..53ecc60 --- /dev/null +++ b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/AppDelegate.h @@ -0,0 +1,17 @@ +// +// AppDelegate.h +// OtherLinkerFlag +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import + +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + + +@end + diff --git a/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/AppDelegate.m b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/AppDelegate.m new file mode 100644 index 0000000..06cf523 --- /dev/null +++ b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/AppDelegate.m @@ -0,0 +1,51 @@ +// +// AppDelegate.m +// OtherLinkerFlag +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import "AppDelegate.h" + +@interface AppDelegate () + +@end + +@implementation AppDelegate + + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + // Override point for customization after application launch. + return YES; +} + + +- (void)applicationWillResignActive:(UIApplication *)application { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. +} + + +- (void)applicationDidEnterBackground:(UIApplication *)application { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. +} + + +- (void)applicationWillEnterForeground:(UIApplication *)application { + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. +} + + +- (void)applicationDidBecomeActive:(UIApplication *)application { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. +} + + +- (void)applicationWillTerminate:(UIApplication *)application { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. +} + + +@end diff --git a/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/Assets.xcassets/AppIcon.appiconset/Contents.json b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..36d2c80 --- /dev/null +++ b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/BSStaticLibraryOne+Extension.h b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/BSStaticLibraryOne+Extension.h new file mode 100644 index 0000000..30106df --- /dev/null +++ b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/BSStaticLibraryOne+Extension.h @@ -0,0 +1,15 @@ +// +// BSStaticLibraryOne+Extension.h +// BSStaticLibraryOne +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import "BSStaticLibraryOne.h" + +@interface BSStaticLibraryOne (Extension) + +- (void)sayOtherThing; + +@end diff --git a/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/BSStaticLibraryOne.h b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/BSStaticLibraryOne.h new file mode 100644 index 0000000..1d02b37 --- /dev/null +++ b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/BSStaticLibraryOne.h @@ -0,0 +1,15 @@ +// +// BSStaticLibraryOne.h +// BSStaticLibraryOne +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import + +@interface BSStaticLibraryOne : NSObject + +- (void)saySomething; + +@end diff --git a/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/Base.lproj/LaunchScreen.storyboard b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..fdf3f97 --- /dev/null +++ b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/Base.lproj/Main.storyboard b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/Base.lproj/Main.storyboard new file mode 100644 index 0000000..4529698 --- /dev/null +++ b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/Info.plist b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/Info.plist new file mode 100644 index 0000000..d052473 --- /dev/null +++ b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/ViewController.h b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/ViewController.h new file mode 100644 index 0000000..beda9b9 --- /dev/null +++ b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/ViewController.h @@ -0,0 +1,16 @@ +// +// ViewController.h +// OtherLinkerFlag +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import +#import "BSStaticLibraryOne.h" +#import "BSStaticLibraryOne+Extension.h" + +@interface ViewController : UIViewController + +@end + diff --git a/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/ViewController.m b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/ViewController.m new file mode 100644 index 0000000..b54bdaa --- /dev/null +++ b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/ViewController.m @@ -0,0 +1,32 @@ +// +// ViewController.m +// OtherLinkerFlag +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import "ViewController.h" +#import "BSStaticLibraryOne.h" +#import "BSStaticLibraryOne+Extension.h" + +@interface ViewController () + +@end + +@implementation ViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + [[[BSStaticLibraryOne alloc] init] sayOtherThing]; + // Do any additional setup after loading the view, typically from a nib. +} + + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + + +@end diff --git a/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/main.m b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/main.m new file mode 100644 index 0000000..3cd80ed --- /dev/null +++ b/CocoaPodsDemo/OtherLinkerFlag/OtherLinkerFlag/main.m @@ -0,0 +1,16 @@ +// +// main.m +// OtherLinkerFlag +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/CocoaPodsDemo/ShellProject.xcworkspace/contents.xcworkspacedata b/CocoaPodsDemo/ShellProject.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..2f100bc --- /dev/null +++ b/CocoaPodsDemo/ShellProject.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/CocoaPodsDemo/ShellProject.xcworkspace/xcshareddata/ShellProject.xcscmblueprint b/CocoaPodsDemo/ShellProject.xcworkspace/xcshareddata/ShellProject.xcscmblueprint new file mode 100644 index 0000000..bb54c97 --- /dev/null +++ b/CocoaPodsDemo/ShellProject.xcworkspace/xcshareddata/ShellProject.xcscmblueprint @@ -0,0 +1,30 @@ +{ + "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "054FA612D81390BCA914FF3E911AFB6ED941DB7C", + "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { + + }, + "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { + "054FA612D81390BCA914FF3E911AFB6ED941DB7C" : 9223372036854775807, + "C71A612E55CCF042C9D0404A97F793518FAC0059" : 9223372036854775807 + }, + "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "374E162E-2A30-4B89-BEBA-6B8FDE39D0C7", + "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { + "054FA612D81390BCA914FF3E911AFB6ED941DB7C" : "SampleCode\/", + "C71A612E55CCF042C9D0404A97F793518FAC0059" : "" + }, + "DVTSourceControlWorkspaceBlueprintNameKey" : "ShellProject", + "DVTSourceControlWorkspaceBlueprintVersion" : 204, + "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "CocoaPodsDemo\/ShellProject.xcworkspace", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/649395594\/MySampleCode.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "054FA612D81390BCA914FF3E911AFB6ED941DB7C" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/649395594\/panDoctor-iOS.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "C71A612E55CCF042C9D0404A97F793518FAC0059" + } + ] +} \ No newline at end of file diff --git a/CocoaPodsDemo/ShellProject.xcworkspace/xcuserdata/zxy.xcuserdatad/UserInterfaceState.xcuserstate b/CocoaPodsDemo/ShellProject.xcworkspace/xcuserdata/zxy.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..e79a684 Binary files /dev/null and b/CocoaPodsDemo/ShellProject.xcworkspace/xcuserdata/zxy.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/CocoaPodsDemo/ShellProject/ShellProject.xcodeproj/project.pbxproj b/CocoaPodsDemo/ShellProject/ShellProject.xcodeproj/project.pbxproj new file mode 100644 index 0000000..b983f5d --- /dev/null +++ b/CocoaPodsDemo/ShellProject/ShellProject.xcodeproj/project.pbxproj @@ -0,0 +1,360 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 9B0B71D21E2117A4005D11BA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0B71D11E2117A4005D11BA /* main.m */; }; + 9B0B71D51E2117A4005D11BA /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0B71D41E2117A4005D11BA /* AppDelegate.m */; }; + 9B0B71D81E2117A4005D11BA /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0B71D71E2117A4005D11BA /* ViewController.m */; }; + 9B0B71DB1E2117A4005D11BA /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9B0B71D91E2117A4005D11BA /* Main.storyboard */; }; + 9B0B71DD1E2117A4005D11BA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9B0B71DC1E2117A4005D11BA /* Assets.xcassets */; }; + 9B0B71E01E2117A4005D11BA /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9B0B71DE1E2117A4005D11BA /* LaunchScreen.storyboard */; }; + 9B53E86F1E227340005F74C6 /* libPod.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B53E86E1E227340005F74C6 /* libPod.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 9B0B71CD1E2117A4005D11BA /* ShellProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ShellProject.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 9B0B71D11E2117A4005D11BA /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 9B0B71D31E2117A4005D11BA /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 9B0B71D41E2117A4005D11BA /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 9B0B71D61E2117A4005D11BA /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + 9B0B71D71E2117A4005D11BA /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; + 9B0B71DA1E2117A4005D11BA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 9B0B71DC1E2117A4005D11BA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 9B0B71DF1E2117A4005D11BA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 9B0B71E11E2117A4005D11BA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9B53E86E1E227340005F74C6 /* libPod.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libPod.a; path = "../BSStaticLibraryOne/Build/Products/Debug-iphonesimulator/libPod.a"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 9B0B71CA1E2117A4005D11BA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9B53E86F1E227340005F74C6 /* libPod.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9B0B71C41E2117A4005D11BA = { + isa = PBXGroup; + children = ( + 9B0B71CF1E2117A4005D11BA /* ShellProject */, + 9B0B71CE1E2117A4005D11BA /* Products */, + 9B53E86D1E227340005F74C6 /* Frameworks */, + ); + sourceTree = ""; + }; + 9B0B71CE1E2117A4005D11BA /* Products */ = { + isa = PBXGroup; + children = ( + 9B0B71CD1E2117A4005D11BA /* ShellProject.app */, + ); + name = Products; + sourceTree = ""; + }; + 9B0B71CF1E2117A4005D11BA /* ShellProject */ = { + isa = PBXGroup; + children = ( + 9B0B71D31E2117A4005D11BA /* AppDelegate.h */, + 9B0B71D41E2117A4005D11BA /* AppDelegate.m */, + 9B0B71D61E2117A4005D11BA /* ViewController.h */, + 9B0B71D71E2117A4005D11BA /* ViewController.m */, + 9B0B71D91E2117A4005D11BA /* Main.storyboard */, + 9B0B71DC1E2117A4005D11BA /* Assets.xcassets */, + 9B0B71DE1E2117A4005D11BA /* LaunchScreen.storyboard */, + 9B0B71E11E2117A4005D11BA /* Info.plist */, + 9B0B71D01E2117A4005D11BA /* Supporting Files */, + ); + path = ShellProject; + sourceTree = ""; + }; + 9B0B71D01E2117A4005D11BA /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 9B0B71D11E2117A4005D11BA /* main.m */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 9B53E86D1E227340005F74C6 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 9B53E86E1E227340005F74C6 /* libPod.a */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 9B0B71CC1E2117A4005D11BA /* ShellProject */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9B0B71E41E2117A4005D11BA /* Build configuration list for PBXNativeTarget "ShellProject" */; + buildPhases = ( + 9B0B71C91E2117A4005D11BA /* Sources */, + 9B0B71CA1E2117A4005D11BA /* Frameworks */, + 9B0B71CB1E2117A4005D11BA /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ShellProject; + productName = ShellProject; + productReference = 9B0B71CD1E2117A4005D11BA /* ShellProject.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 9B0B71C51E2117A4005D11BA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0820; + ORGANIZATIONNAME = bestswifter; + TargetAttributes = { + 9B0B71CC1E2117A4005D11BA = { + CreatedOnToolsVersion = 8.2; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 9B0B71C81E2117A4005D11BA /* Build configuration list for PBXProject "ShellProject" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 9B0B71C41E2117A4005D11BA; + productRefGroup = 9B0B71CE1E2117A4005D11BA /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 9B0B71CC1E2117A4005D11BA /* ShellProject */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 9B0B71CB1E2117A4005D11BA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9B0B71E01E2117A4005D11BA /* LaunchScreen.storyboard in Resources */, + 9B0B71DD1E2117A4005D11BA /* Assets.xcassets in Resources */, + 9B0B71DB1E2117A4005D11BA /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 9B0B71C91E2117A4005D11BA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9B0B71D81E2117A4005D11BA /* ViewController.m in Sources */, + 9B0B71D51E2117A4005D11BA /* AppDelegate.m in Sources */, + 9B0B71D21E2117A4005D11BA /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 9B0B71D91E2117A4005D11BA /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 9B0B71DA1E2117A4005D11BA /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 9B0B71DE1E2117A4005D11BA /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 9B0B71DF1E2117A4005D11BA /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 9B0B71E21E2117A4005D11BA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + 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_DOCUMENTATION_COMMENTS = YES; + 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; + 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.2; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 9B0B71E31E2117A4005D11BA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + 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_DOCUMENTATION_COMMENTS = YES; + 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; + 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.2; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 9B0B71E51E2117A4005D11BA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + HEADER_SEARCH_PATHS = ( + "$PROJECT_DIR/../Build/Products/Debug-iphonesimulator/LibOne", + "$(inherited)", + "$PROJECT_DIR/../Build/Products/Debug-iphonesimulator/LibTwo", + ); + INFOPLIST_FILE = ShellProject/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$PROJECT_DIR/../Build/Products/Debug-iphonesimulator", + "$(inherited)", + ); + ONLY_ACTIVE_ARCH = NO; + ORDER_FILE = ""; + OTHER_LDFLAGS = ( + "-ObjC", + "-l\"BSStaticLibraryOne\"", + "-l\"BSStaticLibraryTwo\"", + ); + PRODUCT_BUNDLE_IDENTIFIER = bestswifter.ShellProject; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 9B0B71E61E2117A4005D11BA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + HEADER_SEARCH_PATHS = ( + "$PROJECT_DIR/../Build/Products/Debug-iphonesimulator/LibOne", + "$(inherited)", + "$PROJECT_DIR/../Build/Products/Debug-iphonesimulator/LibTwo", + ); + INFOPLIST_FILE = ShellProject/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$PROJECT_DIR/../Build/Products/Debug-iphonesimulator", + "$(inherited)", + ); + ORDER_FILE = ""; + OTHER_LDFLAGS = ( + "-ObjC", + "-l\"BSStaticLibraryOne\"", + "-l\"BSStaticLibraryTwo\"", + ); + PRODUCT_BUNDLE_IDENTIFIER = bestswifter.ShellProject; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 9B0B71C81E2117A4005D11BA /* Build configuration list for PBXProject "ShellProject" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9B0B71E21E2117A4005D11BA /* Debug */, + 9B0B71E31E2117A4005D11BA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9B0B71E41E2117A4005D11BA /* Build configuration list for PBXNativeTarget "ShellProject" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9B0B71E51E2117A4005D11BA /* Debug */, + 9B0B71E61E2117A4005D11BA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 9B0B71C51E2117A4005D11BA /* Project object */; +} diff --git a/CocoaPodsDemo/ShellProject/ShellProject/AppDelegate.h b/CocoaPodsDemo/ShellProject/ShellProject/AppDelegate.h new file mode 100644 index 0000000..505b34d --- /dev/null +++ b/CocoaPodsDemo/ShellProject/ShellProject/AppDelegate.h @@ -0,0 +1,17 @@ +// +// AppDelegate.h +// ShellProject +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import + +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + + +@end + diff --git a/CocoaPodsDemo/ShellProject/ShellProject/AppDelegate.m b/CocoaPodsDemo/ShellProject/ShellProject/AppDelegate.m new file mode 100644 index 0000000..6bc31bb --- /dev/null +++ b/CocoaPodsDemo/ShellProject/ShellProject/AppDelegate.m @@ -0,0 +1,51 @@ +// +// AppDelegate.m +// ShellProject +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import "AppDelegate.h" + +@interface AppDelegate () + +@end + +@implementation AppDelegate + + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + // Override point for customization after application launch. + return YES; +} + + +- (void)applicationWillResignActive:(UIApplication *)application { + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. +} + + +- (void)applicationDidEnterBackground:(UIApplication *)application { + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. +} + + +- (void)applicationWillEnterForeground:(UIApplication *)application { + // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. +} + + +- (void)applicationDidBecomeActive:(UIApplication *)application { + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. +} + + +- (void)applicationWillTerminate:(UIApplication *)application { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. +} + + +@end diff --git a/CocoaPodsDemo/ShellProject/ShellProject/Assets.xcassets/AppIcon.appiconset/Contents.json b/CocoaPodsDemo/ShellProject/ShellProject/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..36d2c80 --- /dev/null +++ b/CocoaPodsDemo/ShellProject/ShellProject/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/CocoaPodsDemo/ShellProject/ShellProject/Base.lproj/LaunchScreen.storyboard b/CocoaPodsDemo/ShellProject/ShellProject/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..fdf3f97 --- /dev/null +++ b/CocoaPodsDemo/ShellProject/ShellProject/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CocoaPodsDemo/ShellProject/ShellProject/Base.lproj/Main.storyboard b/CocoaPodsDemo/ShellProject/ShellProject/Base.lproj/Main.storyboard new file mode 100644 index 0000000..4529698 --- /dev/null +++ b/CocoaPodsDemo/ShellProject/ShellProject/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CocoaPodsDemo/ShellProject/ShellProject/Info.plist b/CocoaPodsDemo/ShellProject/ShellProject/Info.plist new file mode 100644 index 0000000..d052473 --- /dev/null +++ b/CocoaPodsDemo/ShellProject/ShellProject/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/CocoaPodsDemo/ShellProject/ShellProject/ViewController.h b/CocoaPodsDemo/ShellProject/ShellProject/ViewController.h new file mode 100644 index 0000000..67cb353 --- /dev/null +++ b/CocoaPodsDemo/ShellProject/ShellProject/ViewController.h @@ -0,0 +1,15 @@ +// +// ViewController.h +// ShellProject +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import + +@interface ViewController : UIViewController + + +@end + diff --git a/CocoaPodsDemo/ShellProject/ShellProject/ViewController.m b/CocoaPodsDemo/ShellProject/ShellProject/ViewController.m new file mode 100644 index 0000000..4e9b27e --- /dev/null +++ b/CocoaPodsDemo/ShellProject/ShellProject/ViewController.m @@ -0,0 +1,34 @@ +// +// ViewController.m +// ShellProject +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import "ViewController.h" +#import +#import +#import + +@interface ViewController () + +@end + +@implementation ViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + [[[BSStaticLibraryOne alloc] init] saySomething]; + [[[BSStaticLibraryTwo alloc] init] saySomething]; + // Do any additional setup after loading the view, typically from a nib. +} + + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + + +@end diff --git a/CocoaPodsDemo/ShellProject/ShellProject/main.m b/CocoaPodsDemo/ShellProject/ShellProject/main.m new file mode 100644 index 0000000..a676aa1 --- /dev/null +++ b/CocoaPodsDemo/ShellProject/ShellProject/main.m @@ -0,0 +1,16 @@ +// +// main.m +// ShellProject +// +// Created by 张星宇 on 2017/1/7. +// Copyright © 2017年 bestswifter. All rights reserved. +// + +#import +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/GraphicsPerformance-Starter/GraphicsPerformance-Starter.xcodeproj/project.pbxproj b/GraphicsPerformance-Starter/GraphicsPerformance-Starter.xcodeproj/project.pbxproj index 21b1c1a..9ebffac 100644 --- a/GraphicsPerformance-Starter/GraphicsPerformance-Starter.xcodeproj/project.pbxproj +++ b/GraphicsPerformance-Starter/GraphicsPerformance-Starter.xcodeproj/project.pbxproj @@ -207,16 +207,16 @@ TargetAttributes = { 9BEA051B1C50EFAC0075E954 = { CreatedOnToolsVersion = 7.2; - DevelopmentTeam = U2HX3RFD94; + DevelopmentTeam = FQL8675Q6W; }; 9BEA05311C50EFAC0075E954 = { CreatedOnToolsVersion = 7.2; - DevelopmentTeam = U2HX3RFD94; + DevelopmentTeam = FQL8675Q6W; TestTargetID = 9BEA051B1C50EFAC0075E954; }; 9BEA053C1C50EFAC0075E954 = { CreatedOnToolsVersion = 7.2; - DevelopmentTeam = U2HX3RFD94; + DevelopmentTeam = FQL8675Q6W; TestTargetID = 9BEA051B1C50EFAC0075E954; }; }; @@ -416,10 +416,12 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + DEVELOPMENT_TEAM = FQL8675Q6W; INFOPLIST_FILE = "GraphicsPerformance-Starter/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "NEU.GraphicsPerformance-Starter"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -427,10 +429,12 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + DEVELOPMENT_TEAM = FQL8675Q6W; INFOPLIST_FILE = "GraphicsPerformance-Starter/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "NEU.GraphicsPerformance-Starter"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; }; name = Release; }; @@ -438,6 +442,7 @@ isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = FQL8675Q6W; INFOPLIST_FILE = "GraphicsPerformance-StarterTests/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "NEU.GraphicsPerformance-StarterTests"; @@ -450,6 +455,7 @@ isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = FQL8675Q6W; INFOPLIST_FILE = "GraphicsPerformance-StarterTests/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "NEU.GraphicsPerformance-StarterTests"; @@ -461,6 +467,7 @@ 9BEA054D1C50EFAC0075E954 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + DEVELOPMENT_TEAM = FQL8675Q6W; INFOPLIST_FILE = "GraphicsPerformance-StarterUITests/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "NEU.GraphicsPerformance-StarterUITests"; @@ -473,6 +480,7 @@ 9BEA054E1C50EFAC0075E954 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + DEVELOPMENT_TEAM = FQL8675Q6W; INFOPLIST_FILE = "GraphicsPerformance-StarterUITests/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "NEU.GraphicsPerformance-StarterUITests"; diff --git a/GraphicsPerformance-Starter/GraphicsPerformance-Starter.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/GraphicsPerformance-Starter/GraphicsPerformance-Starter.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/GraphicsPerformance-Starter/GraphicsPerformance-Starter.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/GraphicsPerformance-Starter/GraphicsPerformance-Starter/CustomTableCell.swift b/GraphicsPerformance-Starter/GraphicsPerformance-Starter/CustomTableCell.swift index 9f1ea23..12ce946 100644 --- a/GraphicsPerformance-Starter/GraphicsPerformance-Starter/CustomTableCell.swift +++ b/GraphicsPerformance-Starter/GraphicsPerformance-Starter/CustomTableCell.swift @@ -9,16 +9,16 @@ import UIKit class CustomTableCell: UITableViewCell { - let imgView = UIImageView(frame: CGRectMake(10, 10, 180, 180)) - let label = UILabel(frame: CGRectMake(220, 90, 150, 20)) + let imgView = UIImageView(frame: CGRect(x: 10, y: 10, width: 180, height: 180)) + let label = UILabel(frame: CGRect(x: 220, y: 90, width: 150, height: 20)) override init(style: UITableViewCellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) - imgView.layer.shadowColor = UIColor.blackColor().CGColor + imgView.layer.shadowColor = UIColor.black.cgColor imgView.layer.shadowOpacity = 1 imgView.layer.shadowRadius = 2 - imgView.layer.shadowOffset = CGSizeMake(1, 1) + imgView.layer.shadowOffset = CGSize(width: 1, height: 1) label.layer.shouldRasterize = true diff --git a/GraphicsPerformance-Starter/GraphicsPerformance-Starter/FirstViewController.swift b/GraphicsPerformance-Starter/GraphicsPerformance-Starter/FirstViewController.swift index b666aaf..2fe9d98 100644 --- a/GraphicsPerformance-Starter/GraphicsPerformance-Starter/FirstViewController.swift +++ b/GraphicsPerformance-Starter/GraphicsPerformance-Starter/FirstViewController.swift @@ -10,7 +10,7 @@ import UIKit class FirstViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { - let table = UITableView(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.size.width, UIScreen.mainScreen().bounds.size.height - 49)) + let table = UITableView(frame: CGRect(x: 0, y:0, width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height - 49)) let imgArray = Array(1...10) override func viewDidLoad() { @@ -25,24 +25,25 @@ class FirstViewController: UIViewController, UITableViewDelegate, UITableViewDat override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } + - func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let identifier = "tableviewcell" - var cell = table.dequeueReusableCellWithIdentifier(identifier) as? CustomTableCell + var cell = tableView.dequeueReusableCell(withIdentifier: identifier) as? CustomTableCell if cell == nil { - cell = CustomTableCell(style: .Default, reuseIdentifier: identifier) - cell?.selectionStyle = .None + cell = CustomTableCell(style: .default, reuseIdentifier: identifier) + cell?.selectionStyle = .none } - cell?.setupContent(String(imgArray[indexPath.row]), text: "This is a label") - + cell?.setupContent(imgName: String(imgArray[indexPath.row]), text: "This is a label") + return cell! } - func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return 200 } - func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 10 } } diff --git a/KtTableView/KtTableView/AppDelegate.h b/KtTableView/KtTableView/AppDelegate.h index 0dd07c2..fd39de6 100644 --- a/KtTableView/KtTableView/AppDelegate.h +++ b/KtTableView/KtTableView/AppDelegate.h @@ -2,7 +2,7 @@ // AppDelegate.h // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/AppDelegate.m b/KtTableView/KtTableView/AppDelegate.m index 1562cd9..877622a 100644 --- a/KtTableView/KtTableView/AppDelegate.m +++ b/KtTableView/KtTableView/AppDelegate.m @@ -2,7 +2,7 @@ // AppDelegate.m // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KTMainViewController.h b/KtTableView/KtTableView/KTMainViewController.h index ae4c929..d1b62a2 100644 --- a/KtTableView/KtTableView/KTMainViewController.h +++ b/KtTableView/KtTableView/KTMainViewController.h @@ -2,7 +2,7 @@ // ViewController.h // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KTMainViewController.m b/KtTableView/KtTableView/KTMainViewController.m index 63a3252..244d187 100644 --- a/KtTableView/KtTableView/KTMainViewController.m +++ b/KtTableView/KtTableView/KTMainViewController.m @@ -2,7 +2,7 @@ // ViewController.m // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtBaseModel/KtBaseItem.h b/KtTableView/KtTableView/KtBaseModel/KtBaseItem.h index f1775d2..afe66fa 100644 --- a/KtTableView/KtTableView/KtBaseModel/KtBaseItem.h +++ b/KtTableView/KtTableView/KtBaseModel/KtBaseItem.h @@ -2,7 +2,7 @@ // KtBaseItem.h // KtTableView // -// Created by baidu on 16/5/13. +// Created by bestswifter on 16/5/13. // Copyright © 2016年 zxy. All rights reserved. // @@ -29,4 +29,4 @@ - (NSDictionary *)propertyList:(Class)cls; -@end \ No newline at end of file +@end diff --git a/KtTableView/KtTableView/KtBaseModel/KtBaseItem.m b/KtTableView/KtTableView/KtBaseModel/KtBaseItem.m index 668c0a1..c6aa111 100644 --- a/KtTableView/KtTableView/KtBaseModel/KtBaseItem.m +++ b/KtTableView/KtTableView/KtBaseModel/KtBaseItem.m @@ -2,7 +2,7 @@ // KtBaseItem.m // KtTableView // -// Created by baidu on 16/5/13. +// Created by bestswifter on 16/5/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListItem.h b/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListItem.h index 69ccda1..b7c426c 100644 --- a/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListItem.h +++ b/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListItem.h @@ -2,7 +2,7 @@ // KtBaseListItem.h // KtTableView // -// Created by baidu on 16/5/18. +// Created by bestswifter on 16/5/18. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListItem.m b/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListItem.m index 8413d37..a2bccea 100644 --- a/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListItem.m +++ b/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListItem.m @@ -2,7 +2,7 @@ // KtBaseListItem.m // KtTableView // -// Created by baidu on 16/5/18. +// Created by bestswifter on 16/5/18. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListModel.h b/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListModel.h index 9de6e00..95f0261 100644 --- a/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListModel.h +++ b/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListModel.h @@ -2,7 +2,7 @@ // KtBaseListModel.h // KtTableView // -// Created by baidu on 16/5/18. +// Created by bestswifter on 16/5/18. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListModel.m b/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListModel.m index bed7088..a2ccd37 100644 --- a/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListModel.m +++ b/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtBaseListModel.m @@ -2,7 +2,7 @@ // KtBaseListModel.m // KtTableView // -// Created by baidu on 16/5/18. +// Created by bestswifter on 16/5/18. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtRefreshTableViewController.h b/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtRefreshTableViewController.h index 98d9d2a..79fcc66 100644 --- a/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtRefreshTableViewController.h +++ b/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtRefreshTableViewController.h @@ -2,7 +2,7 @@ // KtRefreshTableViewController.h // KtTableView // -// Created by baidu on 16/5/20. +// Created by bestswifter on 16/5/20. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtRefreshTableViewController.m b/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtRefreshTableViewController.m index 2fbfc1d..611e4fe 100644 --- a/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtRefreshTableViewController.m +++ b/KtTableView/KtTableView/KtBaseModel/KtBaseListModel/KtRefreshTableViewController.m @@ -2,7 +2,7 @@ // KtRefreshTableViewController.m // KtTableView // -// Created by baidu on 16/5/20. +// Created by bestswifter on 16/5/20. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtBaseModel/KtBaseModel.h b/KtTableView/KtTableView/KtBaseModel/KtBaseModel.h index eb694fd..e0348d1 100644 --- a/KtTableView/KtTableView/KtBaseModel/KtBaseModel.h +++ b/KtTableView/KtTableView/KtBaseModel/KtBaseModel.h @@ -2,7 +2,7 @@ // KtBaseModel.h // KtTableView // -// Created by baidu on 16/5/13. +// Created by bestswifter on 16/5/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtBaseModel/KtBaseModel.m b/KtTableView/KtTableView/KtBaseModel/KtBaseModel.m index a7ba254..41879ef 100644 --- a/KtTableView/KtTableView/KtBaseModel/KtBaseModel.m +++ b/KtTableView/KtTableView/KtBaseModel/KtBaseModel.m @@ -2,7 +2,7 @@ // KtBaseModel.m // KtTableView // -// Created by baidu on 16/5/13. +// Created by bestswifter on 16/5/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtBaseModel/KtBaseServerAPI.h b/KtTableView/KtTableView/KtBaseModel/KtBaseServerAPI.h index 3aa0033..d9c4238 100644 --- a/KtTableView/KtTableView/KtBaseModel/KtBaseServerAPI.h +++ b/KtTableView/KtTableView/KtBaseModel/KtBaseServerAPI.h @@ -2,7 +2,7 @@ // KtBaseServerAPI.h // KtTableView // -// Created by baidu on 16/5/13. +// Created by bestswifter on 16/5/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtBaseModel/KtBaseServerAPI.m b/KtTableView/KtTableView/KtBaseModel/KtBaseServerAPI.m index 1410fda..6c86119 100644 --- a/KtTableView/KtTableView/KtBaseModel/KtBaseServerAPI.m +++ b/KtTableView/KtTableView/KtBaseModel/KtBaseServerAPI.m @@ -2,7 +2,7 @@ // KtBaseServerAPI.m // KtTableView // -// Created by baidu on 16/5/13. +// Created by bestswifter on 16/5/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtBaseTableView.h b/KtTableView/KtTableView/KtBaseTableView.h index b3b6e69..f8f0655 100644 --- a/KtTableView/KtTableView/KtBaseTableView.h +++ b/KtTableView/KtTableView/KtBaseTableView.h @@ -2,7 +2,7 @@ // KtBaseTableView.h // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtBaseTableView.m b/KtTableView/KtTableView/KtBaseTableView.m index fa6afef..8fd3b3e 100644 --- a/KtTableView/KtTableView/KtBaseTableView.m +++ b/KtTableView/KtTableView/KtBaseTableView.m @@ -2,7 +2,7 @@ // KtBaseTableView.m // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtBaseTableViewCell.h b/KtTableView/KtTableView/KtBaseTableViewCell.h index 1809be0..259ce07 100644 --- a/KtTableView/KtTableView/KtBaseTableViewCell.h +++ b/KtTableView/KtTableView/KtBaseTableViewCell.h @@ -2,7 +2,7 @@ // KtBaseTableViewCell.h // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtBaseTableViewCell.m b/KtTableView/KtTableView/KtBaseTableViewCell.m index e1e031e..fa6e4ea 100644 --- a/KtTableView/KtTableView/KtBaseTableViewCell.m +++ b/KtTableView/KtTableView/KtBaseTableViewCell.m @@ -2,7 +2,7 @@ // KtBaseTableViewCell.m // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtExtension/NSDictionary+KtExtension.h b/KtTableView/KtTableView/KtExtension/NSDictionary+KtExtension.h index 3058638..7fea023 100644 --- a/KtTableView/KtTableView/KtExtension/NSDictionary+KtExtension.h +++ b/KtTableView/KtTableView/KtExtension/NSDictionary+KtExtension.h @@ -2,7 +2,7 @@ // NSDictionary+KtExtension.h // KtTableView // -// Created by baidu on 16/5/15. +// Created by bestswifter on 16/5/15. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtExtension/NSDictionary+KtExtension.m b/KtTableView/KtTableView/KtExtension/NSDictionary+KtExtension.m index b372300..5544cac 100644 --- a/KtTableView/KtTableView/KtExtension/NSDictionary+KtExtension.m +++ b/KtTableView/KtTableView/KtExtension/NSDictionary+KtExtension.m @@ -2,7 +2,7 @@ // NSDictionary+KtExtension.m // KtTableView // -// Created by baidu on 16/5/15. +// Created by bestswifter on 16/5/15. // Copyright © 2016年 zxy. All rights reserved. // @@ -184,4 +184,4 @@ - (void)safeRemoveObjectForKey:(id)aKey { [self removeObjectForKey:aKey]; } -@end \ No newline at end of file +@end diff --git a/KtTableView/KtTableView/KtExtension/UIView+KtExtension.h b/KtTableView/KtTableView/KtExtension/UIView+KtExtension.h index 4c181a8..5cd6349 100644 --- a/KtTableView/KtTableView/KtExtension/UIView+KtExtension.h +++ b/KtTableView/KtTableView/KtExtension/UIView+KtExtension.h @@ -2,7 +2,7 @@ // UIView+KtExtension.h // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtExtension/UIView+KtExtension.m b/KtTableView/KtTableView/KtExtension/UIView+KtExtension.m index b554401..dec0a1b 100644 --- a/KtTableView/KtTableView/KtExtension/UIView+KtExtension.m +++ b/KtTableView/KtTableView/KtExtension/UIView+KtExtension.m @@ -2,7 +2,7 @@ // UIView+KtExtension.m // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtMainTableItem.h b/KtTableView/KtTableView/KtMainTableItem.h index 4f2431a..6171d7f 100644 --- a/KtTableView/KtTableView/KtMainTableItem.h +++ b/KtTableView/KtTableView/KtMainTableItem.h @@ -2,7 +2,7 @@ // KtMainTableItem.h // KtTableView // -// Created by baidu on 16/5/13. +// Created by bestswifter on 16/5/13. // Copyright © 2016年 zxy. All rights reserved. // @@ -20,4 +20,4 @@ @property (copy, nonatomic) NSString *url; @property (copy, nonatomic) NSString *imageUrl; -@end \ No newline at end of file +@end diff --git a/KtTableView/KtTableView/KtMainTableItem.m b/KtTableView/KtTableView/KtMainTableItem.m index 8723fc4..804e818 100644 --- a/KtTableView/KtTableView/KtMainTableItem.m +++ b/KtTableView/KtTableView/KtMainTableItem.m @@ -2,7 +2,7 @@ // KtMainTableItem.m // KtTableView // -// Created by baidu on 16/5/13. +// Created by bestswifter on 16/5/13. // Copyright © 2016年 zxy. All rights reserved. // @@ -33,4 +33,4 @@ - (id)init { return self; } -@end \ No newline at end of file +@end diff --git a/KtTableView/KtTableView/KtMainTableModel.h b/KtTableView/KtTableView/KtMainTableModel.h index 539d7e0..378b06d 100644 --- a/KtTableView/KtTableView/KtMainTableModel.h +++ b/KtTableView/KtTableView/KtMainTableModel.h @@ -2,7 +2,7 @@ // KtMainTableModel.h // KtTableView // -// Created by baidu on 16/5/13. +// Created by bestswifter on 16/5/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtMainTableModel.m b/KtTableView/KtTableView/KtMainTableModel.m index 9e24a0f..334a75b 100644 --- a/KtTableView/KtTableView/KtMainTableModel.m +++ b/KtTableView/KtTableView/KtMainTableModel.m @@ -2,7 +2,7 @@ // KtMainTableModel.m // KtTableView // -// Created by baidu on 16/5/13. +// Created by bestswifter on 16/5/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtMainTableViewCell.h b/KtTableView/KtTableView/KtMainTableViewCell.h index 9cde189..f57a6dd 100644 --- a/KtTableView/KtTableView/KtMainTableViewCell.h +++ b/KtTableView/KtTableView/KtMainTableViewCell.h @@ -2,7 +2,7 @@ // KtMainTableViewCell.h // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtMainTableViewCell.m b/KtTableView/KtTableView/KtMainTableViewCell.m index bea6475..8249d4c 100644 --- a/KtTableView/KtTableView/KtMainTableViewCell.m +++ b/KtTableView/KtTableView/KtMainTableViewCell.m @@ -2,7 +2,7 @@ // KtMainTableViewCell.m // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtMainTableViewDataSource.h b/KtTableView/KtTableView/KtMainTableViewDataSource.h index 5e4369c..6663687 100644 --- a/KtTableView/KtTableView/KtMainTableViewDataSource.h +++ b/KtTableView/KtTableView/KtMainTableViewDataSource.h @@ -2,7 +2,7 @@ // KtMainTableViewDataSource.h // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtMainTableViewDataSource.m b/KtTableView/KtTableView/KtMainTableViewDataSource.m index e9837e3..ebdd3b5 100644 --- a/KtTableView/KtTableView/KtMainTableViewDataSource.m +++ b/KtTableView/KtTableView/KtMainTableViewDataSource.m @@ -2,7 +2,7 @@ // KtMainTableViewDataSource.m // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtTableViewBaseItem.h b/KtTableView/KtTableView/KtTableViewBaseItem.h index 2b58fc4..450904e 100644 --- a/KtTableView/KtTableView/KtTableViewBaseItem.h +++ b/KtTableView/KtTableView/KtTableViewBaseItem.h @@ -2,7 +2,7 @@ // KtTableViewBaseItem.h // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtTableViewBaseItem.m b/KtTableView/KtTableView/KtTableViewBaseItem.m index 04c7182..b0e874b 100644 --- a/KtTableView/KtTableView/KtTableViewBaseItem.m +++ b/KtTableView/KtTableView/KtTableViewBaseItem.m @@ -2,7 +2,7 @@ // KtTableViewBaseItem.m // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtTableViewController.h b/KtTableView/KtTableView/KtTableViewController.h index 1d8585d..f6e3569 100644 --- a/KtTableView/KtTableView/KtTableViewController.h +++ b/KtTableView/KtTableView/KtTableViewController.h @@ -2,7 +2,7 @@ // KtTableViewController.h // KtTableView // -// Created by baidu on 16/4/16. +// Created by bestswifter on 16/4/16. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtTableViewController.m b/KtTableView/KtTableView/KtTableViewController.m index f003450..42337d6 100644 --- a/KtTableView/KtTableView/KtTableViewController.m +++ b/KtTableView/KtTableView/KtTableViewController.m @@ -2,7 +2,7 @@ // KtTableViewController.m // KtTableView // -// Created by baidu on 16/4/16. +// Created by bestswifter on 16/4/16. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtTableViewDataSource.h b/KtTableView/KtTableView/KtTableViewDataSource.h index 4db9abf..558c217 100644 --- a/KtTableView/KtTableView/KtTableViewDataSource.h +++ b/KtTableView/KtTableView/KtTableViewDataSource.h @@ -2,7 +2,7 @@ // KtTableViewDataSource.h // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtTableViewDataSource.m b/KtTableView/KtTableView/KtTableViewDataSource.m index 88e323e..35d5861 100644 --- a/KtTableView/KtTableView/KtTableViewDataSource.m +++ b/KtTableView/KtTableView/KtTableViewDataSource.m @@ -2,7 +2,7 @@ // KtTableViewDataSource.m // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtTableViewSectionObject.h b/KtTableView/KtTableView/KtTableViewSectionObject.h index 27c9399..48ac8ad 100644 --- a/KtTableView/KtTableView/KtTableViewSectionObject.h +++ b/KtTableView/KtTableView/KtTableViewSectionObject.h @@ -2,7 +2,7 @@ // KtTableViewSectionObject.h // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/KtTableViewSectionObject.m b/KtTableView/KtTableView/KtTableViewSectionObject.m index 24e8dc1..8a5125a 100644 --- a/KtTableView/KtTableView/KtTableViewSectionObject.m +++ b/KtTableView/KtTableView/KtTableViewSectionObject.m @@ -2,7 +2,7 @@ // KtTableViewSectionObject.m // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableView/main.m b/KtTableView/KtTableView/main.m index 18b592f..aa21d0d 100644 --- a/KtTableView/KtTableView/main.m +++ b/KtTableView/KtTableView/main.m @@ -2,7 +2,7 @@ // main.m // KtTableView // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableViewTests/KtTableViewTests.m b/KtTableView/KtTableViewTests/KtTableViewTests.m index 53e925b..532b1f9 100644 --- a/KtTableView/KtTableViewTests/KtTableViewTests.m +++ b/KtTableView/KtTableViewTests/KtTableViewTests.m @@ -2,7 +2,7 @@ // KtTableViewTests.m // KtTableViewTests // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/KtTableView/KtTableViewUITests/KtTableViewUITests.m b/KtTableView/KtTableViewUITests/KtTableViewUITests.m index 780997f..786578c 100644 --- a/KtTableView/KtTableViewUITests/KtTableViewUITests.m +++ b/KtTableView/KtTableViewUITests/KtTableViewUITests.m @@ -2,7 +2,7 @@ // KtTableViewUITests.m // KtTableViewUITests // -// Created by baidu on 16/4/13. +// Created by bestswifter on 16/4/13. // Copyright © 2016年 zxy. All rights reserved. // diff --git a/NodeRequireTest/.vscode/launch.json b/NodeRequireTest/.vscode/launch.json new file mode 100644 index 0000000..95828bc --- /dev/null +++ b/NodeRequireTest/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "type": "node", + "request": "launch", + "name": "Launch Program", + "program": "${workspaceFolder}/b.js" + } + ] +} \ No newline at end of file diff --git a/NodeRequireTest/README.md b/NodeRequireTest/README.md new file mode 100644 index 0000000..c52ea19 --- /dev/null +++ b/NodeRequireTest/README.md @@ -0,0 +1,107 @@ +这是一篇水文,讲讲踩坑的经历。 + +# 背景 + +起因是在写 Node 时,受够了 `require ('../../../../helper.js')` 这种相对路径。不够直观不谈,如果将来在别的地方用,都不能直接 copy 过来,还得重新计算相对路径,因此希望用绝对路径(换句话说就是永远相对根路径)来表示。 + +一种比较简单的方案是封装 `require` 函数: + +```js +global.rootRequire = function(name) { + return require(__dirname + '/' + name); +} +``` + +在我们的 `rootRequire` 函数中,所有的路径都会被加上 `__dirname` 的前缀,也就实现了绝对路径。 + +这么做功能上没有问题,然而似乎 VSCode 对这种写法支持得不够好(有了解的大佬还望指教),表现为以下两个问题: + +1. 虽然我们把 `rootRequire` 定义为全局的,但在别的文件中输入这个单词时,并没有自动补全 +2. 通过这种方式引入的模块,不能跳转到模块的实现,也看不到模块的内部结构,如果用 `require` 引入则没有问题。 + +经过更进一步的测试,甚至于这种写法也是不行的: + +```js +let r = require +let a = r('../test/a') +``` + +在 VSCode 中会发现 `a` 的类型为 `any` 并且丢失了很多信息。 + +# 解决方案 + +换句话说,封装 `require` 的路是行不通了,只能用原生的 `require` 函数,那么只能看看有什么办法可以影响到模块查找的流程了。 + +内置的那套流程和顺序肯定是改不了,看起来只能从 `NODE_PATH` 这个全局变量下手了。我们知道 `require` 函数会去 `NODE_PATH` 的目录里查找模块,所以只要把它设置为工程的根路径,就可以实现绝对路径加载了。试验一下,项目目录如下所示: + +``` +project + |-----main + |------index.js + |-----util + |------utils.js +``` + +很简单的定义一下 `utils.js`,就导出一个对象: + +```js +// utils.js +module.exports = { + key:' value' +} +``` + +在 `index.js` 中这么写: + +```js +let utils = require('utils/utils') +console.log(utils.key) +``` + +然后执行 `node main/index.js`,肯定会编译失败。 + +但如果指定了 `NODE_PATH` 就不一样了,此时可以正常运行: + +```shell +export NODE_PATH=$PWD && node main/index.js +``` + +# 优化 + +直接在命令行中指定 `NODE_PATH` 有两个问题: + +1. 改变了项目的启动方式,别的开发者也会受到影响,不过这一点问题不大,因为一般都是通过命令来启动的。 +2. 如果在不同的路径下启动 node,那么 `$PWD` 是会变的,这种方式不够安全。 + +所以比较好的做法是,在入口文件中指定 `NODE_PATH`,因为这个文件的路径一般不会改变。所以 `index.js` 可以改造成这样: + +```js +let path = require('path') +process.env.NODE_PATH = path.resolve(__dirname, '../') ; +require('module').Module._initPaths(); + +let utils = require('utils/utils') + +console.log(utils.key) +``` + +这种写法的好处在于,无论我们在哪里执行 `node path/to/index.js` 都会得到正确的结果。 + +最后还需要修正一下写 `require` 函数时,路径补全的问题,只要在根目录里面加上一个 `jsconfig.json` 文件并添加如下内容即可: + +```json +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "baseUrl": "./", + }, + "exclude": [ + "node_modules" + ] +} +``` + +核心在于 `"baseUrl": "./"` 这一行。这样当我们写 `utils` 这个单词的时候,就可以享受到自动补全了。 + +至此,无论是 Node 的执行,还是路径补全,抑或是定义跳转功能,都正常工作了。 \ No newline at end of file diff --git a/NodeRequireTest/jsconfig.json b/NodeRequireTest/jsconfig.json new file mode 100644 index 0000000..182a516 --- /dev/null +++ b/NodeRequireTest/jsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + // "target": "es6", + // "module": "commonjs", + "baseUrl": "./", + // "paths": { + // "*": [ + // "*" + // ] + // } + }, + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/NodeRequireTest/main/index.js b/NodeRequireTest/main/index.js new file mode 100644 index 0000000..495b7f5 --- /dev/null +++ b/NodeRequireTest/main/index.js @@ -0,0 +1,7 @@ +let path = require('path') +process.env.NODE_PATH = path.resolve(__dirname, '../') ; +require('module').Module._initPaths(); + +let utils = require('ut') + +console.log(utils.key) \ No newline at end of file diff --git a/NodeRequireTest/package.json b/NodeRequireTest/package.json new file mode 100644 index 0000000..29efd98 --- /dev/null +++ b/NodeRequireTest/package.json @@ -0,0 +1,14 @@ +{ + "name": "require", + "version": "1.0.0", + "description": "", + "main": "index.js", + "directories": { + "test": "test" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC" +} diff --git a/NodeRequireTest/utils/utils.js b/NodeRequireTest/utils/utils.js new file mode 100644 index 0000000..287927d --- /dev/null +++ b/NodeRequireTest/utils/utils.js @@ -0,0 +1,4 @@ + +module.exports = { + key:' value' +} \ No newline at end of file diff --git a/RunloopAndThread/RunloopAndThread.xcodeproj/project.pbxproj b/RunloopAndThread/RunloopAndThread.xcodeproj/project.pbxproj index 2b68ea4..b81fcd1 100644 --- a/RunloopAndThread/RunloopAndThread.xcodeproj/project.pbxproj +++ b/RunloopAndThread/RunloopAndThread.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ 9BAA82B11D451A0E00E5B98A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9BAA82AF1D451A0E00E5B98A /* Main.storyboard */; }; 9BAA82B31D451A0E00E5B98A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9BAA82B21D451A0E00E5B98A /* Assets.xcassets */; }; 9BAA82B61D451A0E00E5B98A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9BAA82B41D451A0E00E5B98A /* LaunchScreen.storyboard */; }; + E59118CB1D9B84FE00F25FF6 /* NSObject+DeallocBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = E59118CA1D9B84FE00F25FF6 /* NSObject+DeallocBlock.m */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -26,6 +27,8 @@ 9BAA82B21D451A0E00E5B98A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 9BAA82B51D451A0E00E5B98A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 9BAA82B71D451A0E00E5B98A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E59118C91D9B84FE00F25FF6 /* NSObject+DeallocBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+DeallocBlock.h"; sourceTree = ""; }; + E59118CA1D9B84FE00F25FF6 /* NSObject+DeallocBlock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+DeallocBlock.m"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -58,6 +61,8 @@ 9BAA82A51D451A0E00E5B98A /* RunloopAndThread */ = { isa = PBXGroup; children = ( + E59118C91D9B84FE00F25FF6 /* NSObject+DeallocBlock.h */, + E59118CA1D9B84FE00F25FF6 /* NSObject+DeallocBlock.m */, 9BAA82A91D451A0E00E5B98A /* AppDelegate.h */, 9BAA82AA1D451A0E00E5B98A /* AppDelegate.m */, 9BAA82AC1D451A0E00E5B98A /* ViewController.h */, @@ -110,7 +115,7 @@ TargetAttributes = { 9BAA82A21D451A0E00E5B98A = { CreatedOnToolsVersion = 7.3.1; - DevelopmentTeam = U2HX3RFD94; + DevelopmentTeam = RN42P92PY7; }; }; }; @@ -150,6 +155,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + E59118CB1D9B84FE00F25FF6 /* NSObject+DeallocBlock.m in Sources */, 9BAA82AE1D451A0E00E5B98A /* ViewController.m in Sources */, 9BAA82AB1D451A0E00E5B98A /* AppDelegate.m in Sources */, 9BAA82A81D451A0E00E5B98A /* main.m in Sources */, @@ -264,9 +270,10 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + DEVELOPMENT_TEAM = RN42P92PY7; INFOPLIST_FILE = RunloopAndThread/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = baidu.RunloopAndThread; + PRODUCT_BUNDLE_IDENTIFIER = bestswifter.RunloopAndThread; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -275,9 +282,10 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + DEVELOPMENT_TEAM = RN42P92PY7; INFOPLIST_FILE = RunloopAndThread/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = baidu.RunloopAndThread; + PRODUCT_BUNDLE_IDENTIFIER = bestswifter.RunloopAndThread; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -301,6 +309,7 @@ 9BAA82BC1D451A0E00E5B98A /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; diff --git a/RunloopAndThread/RunloopAndThread/NSObject+DeallocBlock.h b/RunloopAndThread/RunloopAndThread/NSObject+DeallocBlock.h new file mode 100644 index 0000000..6ac38b3 --- /dev/null +++ b/RunloopAndThread/RunloopAndThread/NSObject+DeallocBlock.h @@ -0,0 +1,14 @@ +// +// NSObject+DeallocBlock.h +// pengpeng +// +// Created by jianwei.chen on 15/9/6. +// Copyright (c) 2015年 AsiaInnovations. All rights reserved. +// + +#import + +@interface NSObject (DeallocBlock) + +-(void)runAtDealloc:(dispatch_block_t)block; +@end diff --git a/RunloopAndThread/RunloopAndThread/NSObject+DeallocBlock.m b/RunloopAndThread/RunloopAndThread/NSObject+DeallocBlock.m new file mode 100644 index 0000000..c9d83e7 --- /dev/null +++ b/RunloopAndThread/RunloopAndThread/NSObject+DeallocBlock.m @@ -0,0 +1,45 @@ +// +// NSObject+DeallocBlock.m +// pengpeng +// +// Created by jianwei.chen on 15/9/6. +// Copyright (c) 2015年 AsiaInnovations. All rights reserved. +// + +#import "NSObject+DeallocBlock.h" +#import + +@interface NBDeallocBlockExecutor : NSObject{ + dispatch_block_t _block; +} +- (id)initWithBlock:(dispatch_block_t)block; +@end + +@implementation NBDeallocBlockExecutor +- (id)initWithBlock:(dispatch_block_t)aBlock +{ + self = [super init]; + if (self) { + _block = [aBlock copy]; + } + return self; +} +- (void)dealloc +{ + _block ? _block() : nil; +} +@end + + +static char *dealloc_key; +@implementation NSObject (DeallocBlock) + +-(void)runAtDealloc:(dispatch_block_t)block +{ + if(block){ + NBDeallocBlockExecutor *executor = [[NBDeallocBlockExecutor alloc] initWithBlock:block]; + objc_setAssociatedObject(self, &dealloc_key, executor, OBJC_ASSOCIATION_RETAIN);//不要强应用 + } +} + +@end diff --git a/RunloopAndThread/RunloopAndThread/ViewController.m b/RunloopAndThread/RunloopAndThread/ViewController.m index c3d8721..e5b97d1 100644 --- a/RunloopAndThread/RunloopAndThread/ViewController.m +++ b/RunloopAndThread/RunloopAndThread/ViewController.m @@ -7,6 +7,7 @@ // #import "ViewController.h" +#import "NSObject+DeallocBlock.h" @interface ViewController () @@ -18,23 +19,35 @@ @interface ViewController () @implementation ViewController + - (void)viewDidLoad { [super viewDidLoad]; -// [self memoryTest]; + [self memoryTest]; + NSLog(@"test"); // [self runloopTest]; } #pragma --mark 内存占用测试 - (void)memoryTest { for (int i = 0; i < 100000; ++i) { + //总结:test At: xcode8,ios 9.3.4 + //1,当用CFRunLoopRun(),然后调用CFRunLoopStop,此方法是后果会输出current thread,thread dealloc,current thread,thread dealloc ...所以不会用内存问题 + //2,当用 [runLoop run];,然后调用CFRunLoopStop,此方法会current thread,current thread,... 最后输出[NSThread start]: Thread creation failed with error 35.然后app卡住,然后app crash. 内存不会暴增。但是线程无法销毁 + //3,当用 [runLoop runMode:NSRunLoopCommonModes beforeDate:[NSDate distantFuture]];,然后调用CFRunLoopStop,此方法会。[ViewController performSelector:onThread:withObject:waitUntilDone:modes:]: target thread exited while waiting for the perform' crash。是因为 [runLoop runMode:NSRunLoopCommonModes beforeDate:[NSDate distantFuture]]; 无法阻塞线程,所以线程很快执行完run 方法。然后线程exit,导致奔溃(在一个退出的线程,当然这个时候线程没有释放,执行方法奔溃) + NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil]; + [thread runAtDealloc:^{ + NSLog(@"thread dealloc"); + }]; [thread start]; [self performSelector:@selector(stopThread) onThread:thread withObject:nil waitUntilDone:YES]; } + NSLog(@"test over"); } - (void)stopThread { CFRunLoopStop(CFRunLoopGetCurrent()); +// [[NSRunLoop currentRunLoop] removePort:self.emptyPort forMode:NSDefaultRunLoopMode]; NSThread *thread = [NSThread currentThread]; [thread cancel]; } @@ -49,8 +62,9 @@ - (void)run { [runLoop addPort:self.emptyPort forMode:NSDefaultRunLoopMode]; // 下面这两种写法都不可取 // [runLoop run]; -// [runLoop runMode:NSRunLoopCommonModes beforeDate:[NSDate distantFuture]]; - CFRunLoopRun(); + [runLoop runMode:NSRunLoopCommonModes beforeDate:[NSDate distantFuture]]; +// CFRunLoopRun(); + NSLog(@"run over"); } }