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 <noreply@anthropic.com>
This commit is contained in:
tigerenwork 2026-06-28 20:59:51 +08:00
parent d9d8ce3e46
commit c57ab859eb
1 changed files with 88 additions and 226 deletions

View File

@ -77,281 +77,143 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
15D1373CDE06DCCF0DEC22FE = {
8C4FDD7B635240BD562EBB49 = {
isa = PBXGroup;
children = (
EE6F40F7464432A6C2A761DA /* Sources */,
7C4EE8955498EEF65ED6C84A /* Resources */,
B23D89B2D2DF3745A003AEB1 /* Products */,
);
path = .claude;
sourceTree = "<group>";
};
B75E6ED1F517C8DE98A7DAEA = {
EE6F40F7464432A6C2A761DA /* Sources */ = {
isa = PBXGroup;
children = (
);
path = Bugger.xcodeproj;
sourceTree = "<group>";
};
7C0FCEE666858DE48E2D02AD = {
isa = PBXGroup;
children = (
);
path = AppIcon.appiconset;
sourceTree = "<group>";
};
FB79BDD8FFC3CC36C25BA315 = {
isa = PBXGroup;
children = (
7C0FCEE666858DE48E2D02AD,
);
path = Assets.xcassets;
sourceTree = "<group>";
};
7C4EE8955498EEF65ED6C84A = {
isa = PBXGroup;
children = (
6A93EEBDA5A740C84995D959,
2EB7B1BD755DF7F2FB5F8392,
86B3BC083DF59791BE56CFAE,
);
path = Resources;
sourceTree = "<group>";
};
B805360275E47AAD7192E4AE = {
isa = PBXGroup;
children = (
AE8899127BDCD00F1D39E8FD,
C4DE27079694EBA15A0DFAAB,
FE785F676266AFB5EA636597,
ADA8A640EF741D9404316C39,
649CAAB9009813D6C1FD07E3,
);
path = Models;
sourceTree = "<group>";
};
0B0ED8A1BE17CC4C0B3A787B = {
isa = PBXGroup;
children = (
264DA84D71E29D64DEC1B038,
38A9F363FE066CAE6226A050,
973BF857A0044A0262A1F56F,
66321820D32BCC5D05265115,
);
path = Feishu;
sourceTree = "<group>";
};
EF310F3F9A8796C845F345F5 = {
isa = PBXGroup;
children = (
E3148982E653318C7E3CD13F,
0B0ED8A1BE17CC4C0B3A787B,
C98E94F5A859B0EEC7326C60,
BD2692AA96D65949109FEC0E,
9677914DC46FD106A90CA724,
);
path = Services;
sourceTree = "<group>";
};
B38F908829C30D6B6F967EEA = {
isa = PBXGroup;
children = (
968D99A1DA7131447D075F27,
0BE6905A92E43B24E24CDE29,
527F9B3FF513B72F175A8429,
E390AA6A998B6C83BD779018,
);
path = Utils;
sourceTree = "<group>";
};
56714C7161F5C8195EA19816 = {
isa = PBXGroup;
children = (
6C251D0198118D6B5D4B7C69,
);
path = ViewModels;
sourceTree = "<group>";
};
82B5ED67A4830EDA75C6CDE1 = {
isa = PBXGroup;
children = (
5DC24ADCEDA5C16DFF9FA6EA,
);
path = FloatingWidget;
sourceTree = "<group>";
};
24C578F83DCF9CEAFCAF2E73 = {
isa = PBXGroup;
children = (
17D10F852D16E2F4FC269FD2,
C3F3DB4764E379E663475EBD,
);
path = MenuBar;
sourceTree = "<group>";
};
0308B80FA0CF6FBE7D8C7EB3 = {
isa = PBXGroup;
children = (
E29172EAB6F6B4526BDA23C2,
);
path = OAuth;
sourceTree = "<group>";
};
3053DFBFF1BD7F53471B36BB = {
isa = PBXGroup;
children = (
9F9AD7665552E1BC2E76337C,
);
path = Settings;
sourceTree = "<group>";
};
F4ED3EC6534567974F720F99 = {
isa = PBXGroup;
children = (
82B5ED67A4830EDA75C6CDE1,
24C578F83DCF9CEAFCAF2E73,
0308B80FA0CF6FBE7D8C7EB3,
3053DFBFF1BD7F53471B36BB,
);
path = Views;
sourceTree = "<group>";
};
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 = "<group>";
};
A250A7E9920D61D34E4FC076 = {
B805360275E47AAD7192E4AE /* Models */ = {
isa = PBXGroup;
children = (
);
path = docs;
sourceTree = "<group>";
};
B3C3812FB431C8E80348A58A = {
isa = PBXGroup;
children = (
);
path = scripts;
sourceTree = "<group>";
};
8C4FDD7B635240BD562EBB49 = {
isa = PBXGroup;
children = (
287BE755981C092238309A9A,
8AD6A16612A2DB7B2F899787,
B23D89B2D2DF3745A003AEB1,
);
sourceTree = "<group>";
};
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 = "<group>";
};
0B0ED8A1BE17CC4C0B3A787B = {
EF310F3F9A8796C845F345F5 /* Services */ = {
isa = PBXGroup;
children = (
264DA84D71E29D64DEC1B038,
38A9F363FE066CAE6226A050,
973BF857A0044A0262A1F56F,
66321820D32BCC5D05265115,
);
path = Feishu;
sourceTree = "<group>";
};
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 = "<group>";
};
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 = "<group>";
};
B38F908829C30D6B6F967EEA /* Utils */ = {
isa = PBXGroup;
children = (
968D99A1DA7131447D075F27 /* Color+Extensions.swift */,
0BE6905A92E43B24E24CDE29 /* DateFormatter+Extensions.swift */,
527F9B3FF513B72F175A8429 /* KeychainHelper.swift */,
E390AA6A998B6C83BD779018 /* URL+Feishu.swift */,
);
path = Utils;
sourceTree = "<group>";
};
56714C7161F5C8195EA19816 = {
56714C7161F5C8195EA19816 /* ViewModels */ = {
isa = PBXGroup;
children = (
6C251D0198118D6B5D4B7C69,
6C251D0198118D6B5D4B7C69 /* BugStore.swift */,
);
path = ViewModels;
sourceTree = "<group>";
};
82B5ED67A4830EDA75C6CDE1 = {
F4ED3EC6534567974F720F99 /* Views */ = {
isa = PBXGroup;
children = (
5DC24ADCEDA5C16DFF9FA6EA,
82B5ED67A4830EDA75C6CDE1 /* FloatingWidget */,
24C578F83DCF9CEAFCAF2E73 /* MenuBar */,
0308B80FA0CF6FBE7D8C7EB3 /* OAuth */,
3053DFBFF1BD7F53471B36BB /* Settings */,
);
path = Views;
sourceTree = "<group>";
};
82B5ED67A4830EDA75C6CDE1 /* FloatingWidget */ = {
isa = PBXGroup;
children = (
5DC24ADCEDA5C16DFF9FA6EA /* FloatingWidgetWindow.swift */,
);
path = FloatingWidget;
sourceTree = "<group>";
};
24C578F83DCF9CEAFCAF2E73 = {
24C578F83DCF9CEAFCAF2E73 /* MenuBar */ = {
isa = PBXGroup;
children = (
17D10F852D16E2F4FC269FD2,
C3F3DB4764E379E663475EBD,
17D10F852D16E2F4FC269FD2 /* BugListPopover.swift */,
C3F3DB4764E379E663475EBD /* BugRow.swift */,
);
path = MenuBar;
sourceTree = "<group>";
};
0308B80FA0CF6FBE7D8C7EB3 = {
0308B80FA0CF6FBE7D8C7EB3 /* OAuth */ = {
isa = PBXGroup;
children = (
E29172EAB6F6B4526BDA23C2,
E29172EAB6F6B4526BDA23C2 /* OAuthSetupView.swift */,
);
path = OAuth;
sourceTree = "<group>";
};
3053DFBFF1BD7F53471B36BB = {
3053DFBFF1BD7F53471B36BB /* Settings */ = {
isa = PBXGroup;
children = (
9F9AD7665552E1BC2E76337C,
9F9AD7665552E1BC2E76337C /* SettingsView.swift */,
);
path = Settings;
sourceTree = "<group>";
};
F4ED3EC6534567974F720F99 = {
7C4EE8955498EEF65ED6C84A /* Resources */ = {
isa = PBXGroup;
children = (
82B5ED67A4830EDA75C6CDE1,
24C578F83DCF9CEAFCAF2E73,
0308B80FA0CF6FBE7D8C7EB3,
3053DFBFF1BD7F53471B36BB,
6A93EEBDA5A740C84995D959 /* Assets.xcassets */,
2EB7B1BD755DF7F2FB5F8392 /* Info.plist */,
86B3BC083DF59791BE56CFAE /* Bugger.entitlements */,
);
path = Views;
path = Resources;
sourceTree = "<group>";
};
B23D89B2D2DF3745A003AEB1 /* Products */ = {
isa = PBXGroup;
children = (
EF0182DF85A7CD0319333F24 /* Bugger.app */,
);
name = Products;
sourceTree = "<group>";
};
/* 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 */;
}
}