[{"data":1,"prerenderedAt":9},["ShallowReactive",2],{"post-\u002Fblog\u002Fxcodegen":3},{"path":4,"title":5,"description":6,"date":7,"rawbody":8},"\u002Fblog\u002Fxcodegen","Kill the .xcodeproj","Project management without the headaches.","2025-12-19","---\ntitle: 'Kill the .xcodeproj'\ndescription: 'Project management without the headaches.'\ndate: '2025-12-19'\n---\n\n`pbxproj` merge conflicts are a special kind of hell. You don't need to live there anymore.\n\nXcodeGen turns your messy, 5000-line project file into a clean, readable YAML. Your project becomes a side effect of your code, not a burden you have to carry.\n\n> \"Your project file is not your code. Stop treating it like it is.\"\n\n### How it works\n\nStop adding files via the Xcode UI. Just put them in a folder and let the tool do the work.\n\n1. **Install:** `brew install xcodegen`\n2. **Define:** Create a `project.yml` at the root.\n3. **Run:** `xcodegen generate`\n\n```yaml\nname: MyProject\ntargets:\n  MyProject:\n    type: application\n    platform: macOS\n    sources: [Sources]\n```\n\n### The result\n\nEvery time you run the command, XcodeGen scans your folders and builds a fresh project file. No more \"Missing file\" errors, no more Git conflicts, no more bullshit.\n\nCommit the YAML. Ignore the project.\n",1783267423469]