From fe4c0958e50f30cf1389289b70752e14b0ba8bab Mon Sep 17 00:00:00 2001 From: xsl Date: Tue, 10 Mar 2026 10:40:02 +0800 Subject: [PATCH] init --- .../MyCameraKit.xcodeproj/project.pbxproj | 360 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 23865 bytes .../xcschemes/xcschememanagement.plist | 14 + MyCameraKit/MyCameraKit/DeviceInfo.h | 19 + MyCameraKit/MyCameraKit/DeviceInfo.m | 15 + .../MyCameraKit.docc/MyCameraKit.md | 13 + MyCameraKit/MyCameraKit/MyCameraKit.h | 19 + 8 files changed, 447 insertions(+) create mode 100644 MyCameraKit/MyCameraKit.xcodeproj/project.pbxproj create mode 100644 MyCameraKit/MyCameraKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 MyCameraKit/MyCameraKit.xcodeproj/project.xcworkspace/xcuserdata/feast.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 MyCameraKit/MyCameraKit.xcodeproj/xcuserdata/feast.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 MyCameraKit/MyCameraKit/DeviceInfo.h create mode 100644 MyCameraKit/MyCameraKit/DeviceInfo.m create mode 100644 MyCameraKit/MyCameraKit/MyCameraKit.docc/MyCameraKit.md create mode 100644 MyCameraKit/MyCameraKit/MyCameraKit.h diff --git a/MyCameraKit/MyCameraKit.xcodeproj/project.pbxproj b/MyCameraKit/MyCameraKit.xcodeproj/project.pbxproj new file mode 100644 index 0000000..fc24e64 --- /dev/null +++ b/MyCameraKit/MyCameraKit.xcodeproj/project.pbxproj @@ -0,0 +1,360 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXFileReference section */ + BDFF045B2F5FB91B00A2EFC7 /* MyCameraKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MyCameraKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ + BDFF04622F5FB91B00A2EFC7 /* Exceptions for "MyCameraKit" folder in "MyCameraKit" target */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + publicHeaders = ( + DeviceInfo.h, + MyCameraKit.h, + ); + target = BDFF045A2F5FB91B00A2EFC7 /* MyCameraKit */; + }; +/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ + +/* Begin PBXFileSystemSynchronizedRootGroup section */ + BDFF045D2F5FB91B00A2EFC7 /* MyCameraKit */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + BDFF04622F5FB91B00A2EFC7 /* Exceptions for "MyCameraKit" folder in "MyCameraKit" target */, + ); + path = MyCameraKit; + sourceTree = ""; + }; +/* End PBXFileSystemSynchronizedRootGroup section */ + +/* Begin PBXFrameworksBuildPhase section */ + BDFF04582F5FB91B00A2EFC7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + BDFF04512F5FB91B00A2EFC7 = { + isa = PBXGroup; + children = ( + BDFF045D2F5FB91B00A2EFC7 /* MyCameraKit */, + BDFF045C2F5FB91B00A2EFC7 /* Products */, + ); + sourceTree = ""; + }; + BDFF045C2F5FB91B00A2EFC7 /* Products */ = { + isa = PBXGroup; + children = ( + BDFF045B2F5FB91B00A2EFC7 /* MyCameraKit.framework */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + BDFF04562F5FB91B00A2EFC7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + BDFF045A2F5FB91B00A2EFC7 /* MyCameraKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = BDFF04632F5FB91B00A2EFC7 /* Build configuration list for PBXNativeTarget "MyCameraKit" */; + buildPhases = ( + BDFF04562F5FB91B00A2EFC7 /* Headers */, + BDFF04572F5FB91B00A2EFC7 /* Sources */, + BDFF04582F5FB91B00A2EFC7 /* Frameworks */, + BDFF04592F5FB91B00A2EFC7 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + BDFF045D2F5FB91B00A2EFC7 /* MyCameraKit */, + ); + name = MyCameraKit; + packageProductDependencies = ( + ); + productName = MyCameraKit; + productReference = BDFF045B2F5FB91B00A2EFC7 /* MyCameraKit.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BDFF04522F5FB91B00A2EFC7 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastUpgradeCheck = 1610; + TargetAttributes = { + BDFF045A2F5FB91B00A2EFC7 = { + CreatedOnToolsVersion = 16.1; + }; + }; + }; + buildConfigurationList = BDFF04552F5FB91B00A2EFC7 /* Build configuration list for PBXProject "MyCameraKit" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = BDFF04512F5FB91B00A2EFC7; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = BDFF045C2F5FB91B00A2EFC7 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + BDFF045A2F5FB91B00A2EFC7 /* MyCameraKit */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + BDFF04592F5FB91B00A2EFC7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + BDFF04572F5FB91B00A2EFC7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + BDFF04642F5FB91B00A2EFC7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MARKETING_VERSION = 1.0; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; + PRODUCT_BUNDLE_IDENTIFIER = com.hmwl.MyCameraKit; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + BDFF04652F5FB91B00A2EFC7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MARKETING_VERSION = 1.0; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; + PRODUCT_BUNDLE_IDENTIFIER = com.hmwl.MyCameraKit; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + BDFF04662F5FB91B00A2EFC7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_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_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + 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 = 18.1; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + BDFF04672F5FB91B00A2EFC7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_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_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + 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 = 18.1; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + BDFF04552F5FB91B00A2EFC7 /* Build configuration list for PBXProject "MyCameraKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDFF04662F5FB91B00A2EFC7 /* Debug */, + BDFF04672F5FB91B00A2EFC7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BDFF04632F5FB91B00A2EFC7 /* Build configuration list for PBXNativeTarget "MyCameraKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BDFF04642F5FB91B00A2EFC7 /* Debug */, + BDFF04652F5FB91B00A2EFC7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BDFF04522F5FB91B00A2EFC7 /* Project object */; +} diff --git a/MyCameraKit/MyCameraKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/MyCameraKit/MyCameraKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/MyCameraKit/MyCameraKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/MyCameraKit/MyCameraKit.xcodeproj/project.xcworkspace/xcuserdata/feast.xcuserdatad/UserInterfaceState.xcuserstate b/MyCameraKit/MyCameraKit.xcodeproj/project.xcworkspace/xcuserdata/feast.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..1c6fb0989aaacd2cd9a0b174e9477af031c749c0 GIT binary patch literal 23865 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 literal 0 HcmV?d00001 diff --git a/MyCameraKit/MyCameraKit.xcodeproj/xcuserdata/feast.xcuserdatad/xcschemes/xcschememanagement.plist b/MyCameraKit/MyCameraKit.xcodeproj/xcuserdata/feast.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..7ed79ab --- /dev/null +++ b/MyCameraKit/MyCameraKit.xcodeproj/xcuserdata/feast.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + MyCameraKit.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/MyCameraKit/MyCameraKit/DeviceInfo.h b/MyCameraKit/MyCameraKit/DeviceInfo.h new file mode 100644 index 0000000..ad8887d --- /dev/null +++ b/MyCameraKit/MyCameraKit/DeviceInfo.h @@ -0,0 +1,19 @@ +// +// DeviceInfo.h +// MyCameraKit +// +// Created by Feast on 2026/3/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface DeviceInfo : NSObject + +/// 公开的 API:获取当前设备型号 ++(NSString *)getCurrentDeviceModel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/MyCameraKit/MyCameraKit/DeviceInfo.m b/MyCameraKit/MyCameraKit/DeviceInfo.m new file mode 100644 index 0000000..810ad0b --- /dev/null +++ b/MyCameraKit/MyCameraKit/DeviceInfo.m @@ -0,0 +1,15 @@ +// +// DeviceInfo.m +// MyCameraKit +// +// Created by Feast on 2026/3/10. +// + +#import "DeviceInfo.h" +#import + +@implementation DeviceInfo + +@implementation DeviceInfo + (NSString *)getCurrentDeviceModel { struct utsname systemInfo; uname(&systemInfo); NSString *machineString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; // machineString 类似 "iPhone14,2" 或 "x86_64"(模拟器) return machineString; } + +@end diff --git a/MyCameraKit/MyCameraKit/MyCameraKit.docc/MyCameraKit.md b/MyCameraKit/MyCameraKit/MyCameraKit.docc/MyCameraKit.md new file mode 100644 index 0000000..ef7c58c --- /dev/null +++ b/MyCameraKit/MyCameraKit/MyCameraKit.docc/MyCameraKit.md @@ -0,0 +1,13 @@ +# ``MyCameraKit`` + +Summary + +## Overview + +Text + +## Topics + +### Group + +- ``Symbol`` \ No newline at end of file diff --git a/MyCameraKit/MyCameraKit/MyCameraKit.h b/MyCameraKit/MyCameraKit/MyCameraKit.h new file mode 100644 index 0000000..34901ca --- /dev/null +++ b/MyCameraKit/MyCameraKit/MyCameraKit.h @@ -0,0 +1,19 @@ +// +// MyCameraKit.h +// MyCameraKit +// +// Created by Feast on 2026/3/10. +// + +#import + +//! Project version number for MyCameraKit. +FOUNDATION_EXPORT double MyCameraKitVersionNumber; + +//! Project version string for MyCameraKit. +FOUNDATION_EXPORT const unsigned char MyCameraKitVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import +#import + +