From c57ab859eb67b42c47c3fe69d8df04065ff482c1 Mon Sep 17 00:00:00 2001 From: tigerenwork Date: Sun, 28 Jun 2026 20:59:51 +0800 Subject: [PATCH] fix: rewrite pbxproj to fix duplicate groups and broken hierarchy - Removed duplicate PBXGroup definitions (Models, Services, Views, etc.) - Removed orphan groups (.claude, docs, scripts, etc.) - Added proper Products group for productRefGroup reference - Fixed main group to reference Sources, Resources, Products - Clean single-definition group hierarchy Co-Authored-By: Claude --- Bugger.xcodeproj/project.pbxproj | 314 +++++++++---------------------- 1 file changed, 88 insertions(+), 226 deletions(-) diff --git a/Bugger.xcodeproj/project.pbxproj b/Bugger.xcodeproj/project.pbxproj index bd71bba..dda12f5 100644 --- a/Bugger.xcodeproj/project.pbxproj +++ b/Bugger.xcodeproj/project.pbxproj @@ -77,281 +77,143 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 15D1373CDE06DCCF0DEC22FE = { + 8C4FDD7B635240BD562EBB49 = { isa = PBXGroup; children = ( - + EE6F40F7464432A6C2A761DA /* Sources */, + 7C4EE8955498EEF65ED6C84A /* Resources */, + B23D89B2D2DF3745A003AEB1 /* Products */, ); - path = .claude; sourceTree = ""; }; - B75E6ED1F517C8DE98A7DAEA = { + EE6F40F7464432A6C2A761DA /* Sources */ = { isa = PBXGroup; children = ( - - ); - path = Bugger.xcodeproj; - sourceTree = ""; - }; - 7C0FCEE666858DE48E2D02AD = { - isa = PBXGroup; - children = ( - - ); - path = AppIcon.appiconset; - sourceTree = ""; - }; - FB79BDD8FFC3CC36C25BA315 = { - isa = PBXGroup; - children = ( - 7C0FCEE666858DE48E2D02AD, - ); - path = Assets.xcassets; - sourceTree = ""; - }; - 7C4EE8955498EEF65ED6C84A = { - isa = PBXGroup; - children = ( - 6A93EEBDA5A740C84995D959, - 2EB7B1BD755DF7F2FB5F8392, - 86B3BC083DF59791BE56CFAE, - ); - path = Resources; - sourceTree = ""; - }; - B805360275E47AAD7192E4AE = { - isa = PBXGroup; - children = ( - AE8899127BDCD00F1D39E8FD, - C4DE27079694EBA15A0DFAAB, - FE785F676266AFB5EA636597, - ADA8A640EF741D9404316C39, - 649CAAB9009813D6C1FD07E3, - ); - path = Models; - sourceTree = ""; - }; - 0B0ED8A1BE17CC4C0B3A787B = { - isa = PBXGroup; - children = ( - 264DA84D71E29D64DEC1B038, - 38A9F363FE066CAE6226A050, - 973BF857A0044A0262A1F56F, - 66321820D32BCC5D05265115, - ); - path = Feishu; - sourceTree = ""; - }; - EF310F3F9A8796C845F345F5 = { - isa = PBXGroup; - children = ( - E3148982E653318C7E3CD13F, - 0B0ED8A1BE17CC4C0B3A787B, - C98E94F5A859B0EEC7326C60, - BD2692AA96D65949109FEC0E, - 9677914DC46FD106A90CA724, - ); - path = Services; - sourceTree = ""; - }; - B38F908829C30D6B6F967EEA = { - isa = PBXGroup; - children = ( - 968D99A1DA7131447D075F27, - 0BE6905A92E43B24E24CDE29, - 527F9B3FF513B72F175A8429, - E390AA6A998B6C83BD779018, - ); - path = Utils; - sourceTree = ""; - }; - 56714C7161F5C8195EA19816 = { - isa = PBXGroup; - children = ( - 6C251D0198118D6B5D4B7C69, - ); - path = ViewModels; - sourceTree = ""; - }; - 82B5ED67A4830EDA75C6CDE1 = { - isa = PBXGroup; - children = ( - 5DC24ADCEDA5C16DFF9FA6EA, - ); - path = FloatingWidget; - sourceTree = ""; - }; - 24C578F83DCF9CEAFCAF2E73 = { - isa = PBXGroup; - children = ( - 17D10F852D16E2F4FC269FD2, - C3F3DB4764E379E663475EBD, - ); - path = MenuBar; - sourceTree = ""; - }; - 0308B80FA0CF6FBE7D8C7EB3 = { - isa = PBXGroup; - children = ( - E29172EAB6F6B4526BDA23C2, - ); - path = OAuth; - sourceTree = ""; - }; - 3053DFBFF1BD7F53471B36BB = { - isa = PBXGroup; - children = ( - 9F9AD7665552E1BC2E76337C, - ); - path = Settings; - sourceTree = ""; - }; - F4ED3EC6534567974F720F99 = { - isa = PBXGroup; - children = ( - 82B5ED67A4830EDA75C6CDE1, - 24C578F83DCF9CEAFCAF2E73, - 0308B80FA0CF6FBE7D8C7EB3, - 3053DFBFF1BD7F53471B36BB, - ); - path = Views; - sourceTree = ""; - }; - EE6F40F7464432A6C2A761DA = { - isa = PBXGroup; - children = ( - B2ADE595D33ADF5BA01B253B, - 7705247A59F50F6B6E6D286F, - B805360275E47AAD7192E4AE, - EF310F3F9A8796C845F345F5, - B38F908829C30D6B6F967EEA, - 56714C7161F5C8195EA19816, - F4ED3EC6534567974F720F99, + B2ADE595D33ADF5BA01B253B /* AppDelegate.swift */, + 7705247A59F50F6B6E6D286F /* BuggerApp.swift */, + B805360275E47AAD7192E4AE /* Models */, + EF310F3F9A8796C845F345F5 /* Services */, + B38F908829C30D6B6F967EEA /* Utils */, + 56714C7161F5C8195EA19816 /* ViewModels */, + F4ED3EC6534567974F720F99 /* Views */, ); path = Sources; sourceTree = ""; }; - A250A7E9920D61D34E4FC076 = { + B805360275E47AAD7192E4AE /* Models */ = { isa = PBXGroup; children = ( - - ); - path = docs; - sourceTree = ""; - }; - B3C3812FB431C8E80348A58A = { - isa = PBXGroup; - children = ( - - ); - path = scripts; - sourceTree = ""; - }; - 8C4FDD7B635240BD562EBB49 = { - isa = PBXGroup; - children = ( - 287BE755981C092238309A9A, - 8AD6A16612A2DB7B2F899787, - B23D89B2D2DF3745A003AEB1, - ); - sourceTree = ""; - }; - B805360275E47AAD7192E4AE = { - isa = PBXGroup; - children = ( - AE8899127BDCD00F1D39E8FD, - C4DE27079694EBA15A0DFAAB, - FE785F676266AFB5EA636597, - ADA8A640EF741D9404316C39, - 649CAAB9009813D6C1FD07E3, + AE8899127BDCD00F1D39E8FD /* AppConfig.swift */, + C4DE27079694EBA15A0DFAAB /* Bug.swift */, + FE785F676266AFB5EA636597 /* BugChange.swift */, + ADA8A640EF741D9404316C39 /* BugPriority.swift */, + 649CAAB9009813D6C1FD07E3 /* BugStatus.swift */, ); path = Models; sourceTree = ""; }; - 0B0ED8A1BE17CC4C0B3A787B = { + EF310F3F9A8796C845F345F5 /* Services */ = { isa = PBXGroup; children = ( - 264DA84D71E29D64DEC1B038, - 38A9F363FE066CAE6226A050, - 973BF857A0044A0262A1F56F, - 66321820D32BCC5D05265115, - ); - path = Feishu; - sourceTree = ""; - }; - EF310F3F9A8796C845F345F5 = { - isa = PBXGroup; - children = ( - E3148982E653318C7E3CD13F, - 0B0ED8A1BE17CC4C0B3A787B, - C98E94F5A859B0EEC7326C60, - BD2692AA96D65949109FEC0E, - 9677914DC46FD106A90CA724, + E3148982E653318C7E3CD13F /* AppStateService.swift */, + 0B0ED8A1BE17CC4C0B3A787B /* Feishu */, + C98E94F5A859B0EEC7326C60 /* NotificationService.swift */, + BD2692AA96D65949109FEC0E /* PollerService.swift */, + 9677914DC46FD106A90CA724 /* TokenManager.swift */, ); path = Services; sourceTree = ""; }; - B38F908829C30D6B6F967EEA = { + 0B0ED8A1BE17CC4C0B3A787B /* Feishu */ = { isa = PBXGroup; children = ( - 968D99A1DA7131447D075F27, - 0BE6905A92E43B24E24CDE29, - 527F9B3FF513B72F175A8429, - E390AA6A998B6C83BD779018, + 264DA84D71E29D64DEC1B038 /* FeishuAuthService.swift */, + 38A9F363FE066CAE6226A050 /* FeishuError.swift */, + 973BF857A0044A0262A1F56F /* FeishuModels.swift */, + 66321820D32BCC5D05265115 /* FeishuService.swift */, + ); + path = Feishu; + sourceTree = ""; + }; + B38F908829C30D6B6F967EEA /* Utils */ = { + isa = PBXGroup; + children = ( + 968D99A1DA7131447D075F27 /* Color+Extensions.swift */, + 0BE6905A92E43B24E24CDE29 /* DateFormatter+Extensions.swift */, + 527F9B3FF513B72F175A8429 /* KeychainHelper.swift */, + E390AA6A998B6C83BD779018 /* URL+Feishu.swift */, ); path = Utils; sourceTree = ""; }; - 56714C7161F5C8195EA19816 = { + 56714C7161F5C8195EA19816 /* ViewModels */ = { isa = PBXGroup; children = ( - 6C251D0198118D6B5D4B7C69, + 6C251D0198118D6B5D4B7C69 /* BugStore.swift */, ); path = ViewModels; sourceTree = ""; }; - 82B5ED67A4830EDA75C6CDE1 = { + F4ED3EC6534567974F720F99 /* Views */ = { isa = PBXGroup; children = ( - 5DC24ADCEDA5C16DFF9FA6EA, + 82B5ED67A4830EDA75C6CDE1 /* FloatingWidget */, + 24C578F83DCF9CEAFCAF2E73 /* MenuBar */, + 0308B80FA0CF6FBE7D8C7EB3 /* OAuth */, + 3053DFBFF1BD7F53471B36BB /* Settings */, + ); + path = Views; + sourceTree = ""; + }; + 82B5ED67A4830EDA75C6CDE1 /* FloatingWidget */ = { + isa = PBXGroup; + children = ( + 5DC24ADCEDA5C16DFF9FA6EA /* FloatingWidgetWindow.swift */, ); path = FloatingWidget; sourceTree = ""; }; - 24C578F83DCF9CEAFCAF2E73 = { + 24C578F83DCF9CEAFCAF2E73 /* MenuBar */ = { isa = PBXGroup; children = ( - 17D10F852D16E2F4FC269FD2, - C3F3DB4764E379E663475EBD, + 17D10F852D16E2F4FC269FD2 /* BugListPopover.swift */, + C3F3DB4764E379E663475EBD /* BugRow.swift */, ); path = MenuBar; sourceTree = ""; }; - 0308B80FA0CF6FBE7D8C7EB3 = { + 0308B80FA0CF6FBE7D8C7EB3 /* OAuth */ = { isa = PBXGroup; children = ( - E29172EAB6F6B4526BDA23C2, + E29172EAB6F6B4526BDA23C2 /* OAuthSetupView.swift */, ); path = OAuth; sourceTree = ""; }; - 3053DFBFF1BD7F53471B36BB = { + 3053DFBFF1BD7F53471B36BB /* Settings */ = { isa = PBXGroup; children = ( - 9F9AD7665552E1BC2E76337C, + 9F9AD7665552E1BC2E76337C /* SettingsView.swift */, ); path = Settings; sourceTree = ""; }; - F4ED3EC6534567974F720F99 = { + 7C4EE8955498EEF65ED6C84A /* Resources */ = { isa = PBXGroup; children = ( - 82B5ED67A4830EDA75C6CDE1, - 24C578F83DCF9CEAFCAF2E73, - 0308B80FA0CF6FBE7D8C7EB3, - 3053DFBFF1BD7F53471B36BB, + 6A93EEBDA5A740C84995D959 /* Assets.xcassets */, + 2EB7B1BD755DF7F2FB5F8392 /* Info.plist */, + 86B3BC083DF59791BE56CFAE /* Bugger.entitlements */, ); - path = Views; + path = Resources; + sourceTree = ""; + }; + B23D89B2D2DF3745A003AEB1 /* Products */ = { + isa = PBXGroup; + children = ( + EF0182DF85A7CD0319333F24 /* Bugger.app */, + ); + name = Products; sourceTree = ""; }; /* End PBXGroup section */ @@ -490,18 +352,18 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = ; + DEVELOPMENT_TEAM = ""; ENABLE_HARDENED_RUNTIME = YES; - FEISHU_APP_ID = ; - FEISHU_APP_SECRET = ; - FEISHU_BASE_DOMAIN = xorbitlab.feishu.cn; + FEISHU_APP_ID = "$(FEISHU_APP_ID)"; + FEISHU_APP_SECRET = "$(FEISHU_APP_SECRET)"; + FEISHU_BASE_DOMAIN = "xorbitlab.feishu.cn"; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = Resources/Info.plist; - LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/../Frameworks; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 14.0; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = com.xorbitlab.bugger; - PRODUCT_NAME = $(TARGET_NAME); + PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; }; @@ -515,18 +377,18 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = ; + DEVELOPMENT_TEAM = ""; ENABLE_HARDENED_RUNTIME = YES; - FEISHU_APP_ID = ; - FEISHU_APP_SECRET = ; - FEISHU_BASE_DOMAIN = xorbitlab.feishu.cn; + FEISHU_APP_ID = "$(FEISHU_APP_ID)"; + FEISHU_APP_SECRET = "$(FEISHU_APP_SECRET)"; + FEISHU_BASE_DOMAIN = "xorbitlab.feishu.cn"; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = Resources/Info.plist; - LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/../Frameworks; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 14.0; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = com.xorbitlab.bugger; - PRODUCT_NAME = $(TARGET_NAME); + PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; }; @@ -556,4 +418,4 @@ /* End XCConfigurationList section */ }; rootObject = 46F86FAA6BBF9AC94A7E4595 /* Project object */; -} \ No newline at end of file +}