Root cause: filenames containing '+' (Color+Extensions.swift,
DateFormatter+Extensions.swift, URL+Feishu.swift) had their path values
unquoted in PBXFileReference entries. In NeXTSTEP plist format, '+'
is an operator character — the parser interpreted 'path = Utils/Color'
followed by '+Extensions.swift' as an addition expression instead of
a file path, causing a parse error.
Fixes:
- Added quote_path() to escape paths with special characters
- Regenerated pbxproj with all 25 source files, subdirectory groups
- Fixed workspace contents.xcworkspacedata (was empty)
- Cleaned up generator script (removed dead code, added scheme gen)
- Proper SWIFT_OPTIMIZATION_LEVEL quoting
Verified: xcodebuild -list parses the project successfully.
Co-Authored-By: Claude <noreply@anthropic.com>