// !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 77; objects = { /* Begin PBXBuildFile section */ 5EFA4CA44808FF863ED92634 /* KeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1FE0B102D57EB278A4082A2 /* KeyboardViewController.swift */; }; C1FF8BD1BC8F768241336592 /* KeyboardExt.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = EAA33751C91327A7AE634E51 /* KeyboardExt.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; CD60E8C0617C91B4DF3702B5 /* SpikeApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96C8C18A4141166114A8C057 /* SpikeApp.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ 321CB212E7664C13F19344EF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = A69F0DD8B57227DFFA74D6DC /* Project object */; proxyType = 1; remoteGlobalIDString = CA51BBE9CE0929E95F148070; remoteInfo = KeyboardExt; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ C5A47F06868FFA1224F15FC1 /* Embed Foundation Extensions */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 13; files = ( C1FF8BD1BC8F768241336592 /* KeyboardExt.appex in Embed Foundation Extensions */, ); name = "Embed Foundation Extensions"; runOnlyForDeploymentPostprocessing = 0; }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ 642D04C053A4F9B82CA9200F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; 96C8C18A4141166114A8C057 /* SpikeApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpikeApp.swift; sourceTree = ""; }; B5EE542ABFB96B6F5823F4CB /* App.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; }; C1FE0B102D57EB278A4082A2 /* KeyboardViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardViewController.swift; sourceTree = ""; }; EAA33751C91327A7AE634E51 /* KeyboardExt.appex */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "wrapper.app-extension"; path = KeyboardExt.appex; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXGroup section */ 2D5607189AC0BE713CD39446 /* KeyboardExt */ = { isa = PBXGroup; children = ( 642D04C053A4F9B82CA9200F /* Info.plist */, C1FE0B102D57EB278A4082A2 /* KeyboardViewController.swift */, ); path = KeyboardExt; sourceTree = ""; }; 7659DF33F4F19FD06928CDC4 = { isa = PBXGroup; children = ( ED9770B6B6CC37623925B3C8 /* App */, 2D5607189AC0BE713CD39446 /* KeyboardExt */, 9372AAC1311344DC3AEED011 /* Products */, ); sourceTree = ""; }; 9372AAC1311344DC3AEED011 /* Products */ = { isa = PBXGroup; children = ( B5EE542ABFB96B6F5823F4CB /* App.app */, EAA33751C91327A7AE634E51 /* KeyboardExt.appex */, ); name = Products; sourceTree = ""; }; ED9770B6B6CC37623925B3C8 /* App */ = { isa = PBXGroup; children = ( 96C8C18A4141166114A8C057 /* SpikeApp.swift */, ); path = App; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 2007A063D8B0067C3D704326 /* App */ = { isa = PBXNativeTarget; buildConfigurationList = 54BD9396E49168A7EE5A2CFD /* Build configuration list for PBXNativeTarget "App" */; buildPhases = ( 317D8937589C426FA9A4BBBB /* Sources */, C5A47F06868FFA1224F15FC1 /* Embed Foundation Extensions */, ); buildRules = ( ); dependencies = ( 2C59DBCCD8144857610DE5DF /* PBXTargetDependency */, ); name = App; packageProductDependencies = ( ); productName = App; productReference = B5EE542ABFB96B6F5823F4CB /* App.app */; productType = "com.apple.product-type.application"; }; CA51BBE9CE0929E95F148070 /* KeyboardExt */ = { isa = PBXNativeTarget; buildConfigurationList = 7BB4AA808EBA7CDD8D3C50A3 /* Build configuration list for PBXNativeTarget "KeyboardExt" */; buildPhases = ( FCE6E8B6326FC9D614E0A5C3 /* Sources */, ); buildRules = ( ); dependencies = ( ); name = KeyboardExt; packageProductDependencies = ( ); productName = KeyboardExt; productReference = EAA33751C91327A7AE634E51 /* KeyboardExt.appex */; productType = "com.apple.product-type.app-extension"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ A69F0DD8B57227DFFA74D6DC /* Project object */ = { isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; LastUpgradeCheck = 1430; TargetAttributes = { 2007A063D8B0067C3D704326 = { DevelopmentTeam = FVVBJ8M8PU; ProvisioningStyle = Automatic; }; CA51BBE9CE0929E95F148070 = { DevelopmentTeam = FVVBJ8M8PU; ProvisioningStyle = Automatic; }; }; }; buildConfigurationList = A2BF69604C5A7B464A13E0B6 /* Build configuration list for PBXProject "DuduKbMicSpike" */; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( Base, en, ); mainGroup = 7659DF33F4F19FD06928CDC4; minimizedProjectReferenceProxies = 1; preferredProjectObjectVersion = 77; productRefGroup = 9372AAC1311344DC3AEED011 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 2007A063D8B0067C3D704326 /* App */, CA51BBE9CE0929E95F148070 /* KeyboardExt */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ 317D8937589C426FA9A4BBBB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( CD60E8C0617C91B4DF3702B5 /* SpikeApp.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; FCE6E8B6326FC9D614E0A5C3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 5EFA4CA44808FF863ED92634 /* KeyboardViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ 2C59DBCCD8144857610DE5DF /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = CA51BBE9CE0929E95F148070 /* KeyboardExt */; targetProxy = 321CB212E7664C13F19344EF /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ 3297BB96EEF3CF6EE8636BD9 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; 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; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = FVVBJ8M8PU; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu11; 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 = 17.0; MARKETING_VERSION = 1.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; }; name = Release; }; 4933ECD448368C64D0BA0A6D /* Release */ = { isa = XCBuildConfiguration; buildSettings = { GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = KeyboardExt/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = app.dudu.spike.kbmic.keyboard; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; }; 9F6E47030745AAF0E7207719 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; 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; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = FVVBJ8M8PU; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", "DEBUG=1", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 17.0; MARKETING_VERSION = 1.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; }; name = Debug; }; CC89E47264E48BED9C8E0883 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = KeyboardExt/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = app.dudu.spike.kbmic.keyboard; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; CE1BA7F6ECF54A020BB82507 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSMicrophoneUsageDescription = "spike:验证键盘扩展录音可行性"; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = app.dudu.spike.kbmic; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; }; E298F9BBB39D8C531417AAD9 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSMicrophoneUsageDescription = "spike:验证键盘扩展录音可行性"; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = app.dudu.spike.kbmic; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 54BD9396E49168A7EE5A2CFD /* Build configuration list for PBXNativeTarget "App" */ = { isa = XCConfigurationList; buildConfigurations = ( E298F9BBB39D8C531417AAD9 /* Debug */, CE1BA7F6ECF54A020BB82507 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; 7BB4AA808EBA7CDD8D3C50A3 /* Build configuration list for PBXNativeTarget "KeyboardExt" */ = { isa = XCConfigurationList; buildConfigurations = ( CC89E47264E48BED9C8E0883 /* Debug */, 4933ECD448368C64D0BA0A6D /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; A2BF69604C5A7B464A13E0B6 /* Build configuration list for PBXProject "DuduKbMicSpike" */ = { isa = XCConfigurationList; buildConfigurations = ( 9F6E47030745AAF0E7207719 /* Debug */, 3297BB96EEF3CF6EE8636BD9 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; /* End XCConfigurationList section */ }; rootObject = A69F0DD8B57227DFFA74D6DC /* Project object */; }