{"id":17767040,"url":"https://github.com/odnoletkov/xcodeproj-format","last_synced_at":"2025-07-15T16:06:38.033Z","repository":{"id":82401052,"uuid":"235474157","full_name":"odnoletkov/xcodeproj-format","owner":"odnoletkov","description":"Format Xcode project file (project.pbxproj)","archived":false,"fork":false,"pushed_at":"2024-11-15T11:39:35.000Z","size":9,"stargazers_count":3,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-15T03:54:22.422Z","etag":null,"topics":["pbxproj","xcode"],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/odnoletkov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-01-22T01:15:04.000Z","updated_at":"2024-11-15T11:39:39.000Z","dependencies_parsed_at":"2025-05-12T21:06:25.238Z","dependency_job_id":"15e96b11-0d0d-4e05-b9b1-e735c4d2281a","html_url":"https://github.com/odnoletkov/xcodeproj-format","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/odnoletkov/xcodeproj-format","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odnoletkov%2Fxcodeproj-format","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odnoletkov%2Fxcodeproj-format/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odnoletkov%2Fxcodeproj-format/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odnoletkov%2Fxcodeproj-format/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/odnoletkov","download_url":"https://codeload.github.com/odnoletkov/xcodeproj-format/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odnoletkov%2Fxcodeproj-format/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265444556,"owners_count":23766431,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pbxproj","xcode"],"created_at":"2024-10-26T20:42:19.460Z","updated_at":"2025-07-15T16:06:38.004Z","avatar_url":"https://github.com/odnoletkov.png","language":"Objective-C","readme":"# xcodeproj-format\n\nFormat Xcode project file (project.pbxproj) exactly the same way Xcode would\nformat it.\n\nXcode always writes project file in normalized format. External changes to the\nfile may leave it not normalized. If it is still valid, Xcode will read it just\nfine - but will re-normalize on save. This causes unrelated changes in the file\nto appear later in commits. Use this tool to keep the file normalized:\n\n# Sample Uses\n\n* Cleanup after merge - especially if conflicts were resolved\n* Cleanup after modifying project file manually or with other tools\n* Detect and reject misformatted or corrupted project files in CI\n* `plutil` can be used to convert project file to JSON for further processing.\n  This tool can be used to convert it back from JSON to the canonic format.\n\n# Install\n\n    brew install odnoletkov/tap/xcodeproj-format\n\n# Build\n\n    git clone https://github.com/odnoletkov/xcodeproj-format\n    cd xcodeproj-format\n    xcodebuild\n    # Produces build/Release/xcodeproj-format\n\n# Usage\n\n```\nxcodeproj-format path/to/foo.xcodeproj\n```\n```\nxcodeproj-format path/to/foo.xcodeproj/project.pbxproj\n```\n```\nxcodeproj-format path1 path2 ...\n```\n```\ncd path/to/project\nxcodeproj-format\n```\n\n# Limitations\n\n* The tool uses Xcode's internal frameworks so it may break with new version\n  (although this hasn't happened in years)\n* ~1 second overhead to load and initialize Xcode state on each invocation\n\n# TODO\n\n* Daemonize to avoid initialization overhead for back-to-back invocations\n* Add stdin-stdout mode\n\n# Credits\n\n* [xcproj](https://github.com/0xced/xcproj)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fodnoletkov%2Fxcodeproj-format","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fodnoletkov%2Fxcodeproj-format","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fodnoletkov%2Fxcodeproj-format/lists"}