{"id":50418100,"url":"https://github.com/angeloavv/dart_xcodeproj","last_synced_at":"2026-05-31T07:02:21.478Z","repository":{"id":359856237,"uuid":"1247733267","full_name":"AngeloAvv/dart_xcodeproj","owner":"AngeloAvv","description":"A Dart library for parsing and working with Xcode projects. Manipulate .xcodeproj, .xcworkspace, .xcscheme, and .xcconfig files from pure Dart code","archived":false,"fork":false,"pushed_at":"2026-05-23T20:14:57.000Z","size":222,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-23T20:25:15.223Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AngeloAvv.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-23T17:51:48.000Z","updated_at":"2026-05-23T20:11:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/AngeloAvv/dart_xcodeproj","commit_stats":null,"previous_names":["angeloavv/dart_xcodeproj"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/AngeloAvv/dart_xcodeproj","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AngeloAvv%2Fdart_xcodeproj","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AngeloAvv%2Fdart_xcodeproj/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AngeloAvv%2Fdart_xcodeproj/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AngeloAvv%2Fdart_xcodeproj/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AngeloAvv","download_url":"https://codeload.github.com/AngeloAvv/dart_xcodeproj/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AngeloAvv%2Fdart_xcodeproj/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33722156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2026-05-31T07:02:20.649Z","updated_at":"2026-05-31T07:02:21.467Z","avatar_url":"https://github.com/AngeloAvv.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dart_xcodeproj\n\n[![pub package](https://img.shields.io/pub/v/dart_xcodeproj.svg)](https://pub.dev/packages/dart_xcodeproj)\n[![Build](https://github.com/AngeloAvv/dart_xcodeproj/actions/workflows/default.yml/badge.svg)](https://github.com/AngeloAvv/dart_xcodeproj/actions/workflows/default.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\nA Dart library for parsing and working with Xcode projects. Manipulate\n`.xcodeproj`, `.xcworkspace`, `.xcscheme`, and `.xcconfig` files from pure\nDart code — cross-platform (macOS, Windows, Linux), zero native code. Heavily\ninspired by [CocoaPods/Xcodeproj](https://github.com/CocoaPods/Xcodeproj) and\n[xcode](https://github.com/nicklockwood/SwiftFormat).\n\n## Why\n\nFlutter and Dart tools that touch Xcode projects often require external tooling\ninstalled on every developer machine and every CI runner. `dart_xcodeproj`\nremoves that dependency: the same operations are available as a pure-Dart\nlibrary and CLI.\n\n## Installation\n\n```yaml\ndependencies:\n  dart_xcodeproj: ^0.1.0\n```\n\nOr via the command line:\n\n```bash\ndart pub add dart_xcodeproj\n```\n\n## Quick-start\n\n```dart\nimport 'package:dart_xcodeproj/dart_xcodeproj.dart';\n\nFuture\u003cvoid\u003e main() async {\n  // Open an existing project\n  final project = await XcodeProject.open('ios/Runner.xcodeproj');\n\n  // Inspect targets\n  for (final target in project.targets) {\n    print('Target: ${target.name}');\n  }\n\n  // Mutate + save\n  project.newFile('Generated/AppConfig.swift');\n  await project.save();\n}\n```\n\nSee [example/main.dart](example/main.dart) for a complete end-to-end\ncreate-project / add-target / add-file / save workflow.\n\n## Library API overview\n\n| Type | Purpose |\n|------|---------|\n| `XcodeProject` | Open, create, mutate, and save `.xcodeproj` files |\n| `ProjectHelper` | High-level helpers: `newTarget`, `newResourcesBundle`, `newAggregateTarget` |\n| `XCWorkspace` | Read and write `.xcworkspace` files |\n| `XCScheme` | Read and write `.xcscheme` files |\n| `XcConfig` | Read, merge, and write `.xcconfig` files |\n| `Differ` | UUID-agnostic recursive diff between two projects |\n| `UuidGenerator` | Generate 24-char uppercase hex UUIDs (random + deterministic) |\n| `Constants` | Xcode file types, product types, SDK versions, and more |\n| `OtherLinkerFlagsParser` | Parse `OTHER_LDFLAGS`-style settings |\n| `PBXNativeTarget` | Native app/framework/library target |\n| `PBXAggregateTarget` | Aggregate (script-only) target |\n| `PBXFileReference` | File reference in the project navigator |\n| `PBXGroup` | Group in the project navigator |\n| `XCBuildConfiguration` | A single named build configuration |\n| `XCConfigurationList` | The list of build configurations for a target or project |\n\n## CLI usage\n\nThe package ships a `dart_xcodeproj` executable with four subcommands.\n\nInstall globally:\n\n```bash\ndart pub global activate dart_xcodeproj\n```\n\n### `show` — print a project as YAML\n\n```bash\ndart run dart_xcodeproj show path/to/Runner.xcodeproj\ndart run dart_xcodeproj show --format=tree_hash path/to/Runner.xcodeproj\n```\n\nFormat options: `hash`, `tree_hash`, `raw`. Default is a structured\npretty-print.\n\n### `sort` — sort groups and files in place\n\n```bash\ndart run dart_xcodeproj sort path/to/Runner.xcodeproj\ndart run dart_xcodeproj sort --group-option=above path/to/Runner.xcodeproj\n```\n\nGroup option: `above` (groups first), `below` (groups last). Omit for\ninterleaved order.\n\n### `project-diff` — UUID-agnostic diff between two projects\n\n```bash\ndart run dart_xcodeproj project-diff P1.xcodeproj P2.xcodeproj\ndart run dart_xcodeproj project-diff -i path -i sourceTree P1.xcodeproj P2.xcodeproj\n```\n\nArray ordering is ignored. Repeat `--ignore=KEY` (or `-i KEY`) to suppress\nspecific keys from the comparison.\n\n### `config-dump` — write per-target xcconfig files\n\n```bash\ndart run dart_xcodeproj config-dump path/to/Runner.xcodeproj ./out\n```\n\nWrites one directory per target under the output directory, each containing\na `{Target}_base.xcconfig` with common settings and one\n`{Target}_{configuration}.xcconfig` per build configuration. The source\nproject is not modified.\n\n## Platform support\n\nPure Dart. Runs on macOS, Linux, and Windows. No native code, no FFI, no\n`xcodebuild` calls — every operation is on-disk file manipulation.\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangeloavv%2Fdart_xcodeproj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fangeloavv%2Fdart_xcodeproj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangeloavv%2Fdart_xcodeproj/lists"}