Skip to content

Autogenerate XCode project files in the repo #28

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ThomasK33 opened this issue Jan 22, 2025 · 0 comments · Fixed by #32
Closed

Autogenerate XCode project files in the repo #28

ThomasK33 opened this issue Jan 22, 2025 · 0 comments · Fixed by #32
Assignees
Labels
documentation Improvements or additions to documentation enhancement New feature or request

Comments

@ThomasK33
Copy link
Member

ThomasK33 commented Jan 22, 2025

The current Xcode project (.xcodeproj) is challenging to manage and maintain as it contains files that cannot be easily version-controlled. For example, the project.pbxproj file is a text file; it is highly verbose, complex to read, and prone to conflicts during merge scenarios.
Migrating the project configuration to a project.yml file managed by XcodeGen will improve the developer experience, simplify project configuration, and enable better collaboration within the team.

Why This Is Necessary

  1. Improved Version Control:

    • Although project.pbxproj is text-based, its structure is fragile, and merge conflicts are common when multiple team members modify project settings simultaneously.
    • A project.yml file is a human-readable YAML format, making changes more understandable and straightforward to resolve in version control.
  2. Consistency Across Environments:

    • project.pbxproj can accumulate untracked changes due to manual edits or differences in Xcode versions, leading to inconsistencies between team members.
    • XcodeGen generates a consistent and reproducible project file from the project.yml.
  3. Automation and Scalability:

    • XcodeGen makes it easy to automate project file generation as part of future CI/CD workflows or developer setup scripts.
    • Adding new targets, dependencies, or build configurations becomes declarative and repeatable.

Proposed Steps

  1. Analyze the existing .xcodeproj structure to extract all targets, configurations, schemes, and dependencies.
  2. Create a project.yml file to replicate the current project structure and settings.
  3. Validate the migration by generating the .xcodeproj using XcodeGen and ensuring it matches the original.
  4. Update project documentation and Makefile to include instructions for working with XcodeGen.
  5. Remove the manually managed .xcodeproj from version control, replacing it with the project.yml and extending the .gitignore file not to commit .xcodeproj files.
@ThomasK33 ThomasK33 self-assigned this Jan 22, 2025
@coder-labeler coder-labeler bot added documentation Improvements or additions to documentation enhancement New feature or request labels Jan 22, 2025
@ThomasK33 ThomasK33 linked a pull request Jan 24, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant