{"id":21619058,"url":"https://github.com/bannzai/xcodeproject","last_synced_at":"2025-04-11T08:42:51.310Z","repository":{"id":62291097,"uuid":"106151264","full_name":"bannzai/XcodeProject","owner":"bannzai","description":"Xcode utility for reading and writing pbxproj file format.","archived":false,"fork":false,"pushed_at":"2020-05-10T16:42:37.000Z","size":545,"stargazers_count":62,"open_issues_count":2,"forks_count":8,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T05:00:03.419Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","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/bannzai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-08T04:59:09.000Z","updated_at":"2024-05-10T17:15:13.000Z","dependencies_parsed_at":"2022-10-30T04:31:18.341Z","dependency_job_id":null,"html_url":"https://github.com/bannzai/XcodeProject","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bannzai%2FXcodeProject","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bannzai%2FXcodeProject/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bannzai%2FXcodeProject/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bannzai%2FXcodeProject/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bannzai","download_url":"https://codeload.github.com/bannzai/XcodeProject/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248362510,"owners_count":21091143,"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":[],"created_at":"2024-11-24T23:07:47.353Z","updated_at":"2025-04-11T08:42:51.288Z","avatar_url":"https://github.com/bannzai.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# XcodeProject\n**XcodeProject** is a library for Xcode utility for read structure and it can be overwrite for`project.pbxproj.  \nAnd **XcodeProject** package has executable library about append and remove files and directory to your xcode project on CLI named by **xcp**.\n\n## About XcodeProject Library \n\n### Usage XcodeProject Core Function.\nInstanciate `XcodeProject` class.  `XcodeProject` is necessary edit for `project.pbxproj`.\n\n```swift\n// Prepare for your project `project.pbxproj` file path.\nlet yourProjectPath = \"/Users/bannzai/development/iOSProject/iOSProject.xcodeproj\"\nlet pbxPath = yourProjectPath + \"/project.pbxproj\"\nlet xcodeprojectFileURL = URL(fileURLWithPath: pbxPath)\n\n// Instanciate `XcodeProject`.\nlet xcodeproject = try XcodeProject(xcodeprojectURL: xcodeprojectFileURL)\n```\n\nAppend file with relative wfile path from iOSProject.xcodeproject directory and build target name.  \n\n```Swift\nxcodeproject.appendFile(path: \"iOSProject/Repository/UserRepository.swift\", targetName: \"iOSProject\")\n```\n\nRemove file with relative wfile path from iOSProject.xcodeproject directory and build target name.  \n\n```Swift\n// append file with file path and build target name. \nxcodeproject.removeFile(path: \"Config.swift\", targetName: \"iOSProject\")\n```\n\nIf you want overwrite `project.pbxproj`, You can call `xcodeproject.write()` method.  \n\n```swift\n// Overwrite in pbxproj.\ntry xcodeproject.write()\n```\n\n## Command Line Tool \n### Install\nUsing mint.\n```bash\n$ mint install bannzai/XcodeProject\n```\n\n### Usage\n\n#### Add file\nxcp --add-file \u003cFILE_PATH\u003e \u003cBUILD_TARGET_NAME\u003e  \n\n```bash\n$ xcp --add-file iOSProject/Group/A.swift iOSProject.xcodeproj/project.pbxproj iOSProject \n```\n\n#### Add group\nxcp --add-group \u003cFILE_PATH\u003e \u003cBUILD_TARGET_NAME\u003e  \n\n```bash\n$ xcp --add-group iOSProject/Group/ iOSProject.xcodeproj/project.pbxproj iOSProject\n```\n\n#### Remove file\nxcp --remove-file \u003cFILE_PATH\u003e \u003cBUILD_TARGET_NAME\u003e  \n\n```bash\n$ xcp --remove-file iOSProject/Group/A.swift iOSProject.xcodeproj/project.pbxproj iOSProject \n```\n\n#### Remove group\nxcp --remove-group \u003cFILE_PATH\u003e \u003cBUILD_TARGET_NAME\u003e  \n\n```bash\n$ xcp --remove-group iOSProject/Group/ iOSProject.xcodeproj/project.pbxproj iOSProject\n```\n\n## Used in\n### [Kuri](http://github.com/bannzai/Kuri)\n[Kuri](http://github.com/bannzai/Kuri) is code generate for iOS CleanArchitecture.\n\n## License\n`XcodeProject` is available under the MIT license. See the LICENSE file for more info.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbannzai%2Fxcodeproject","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbannzai%2Fxcodeproject","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbannzai%2Fxcodeproject/lists"}