yonaskolb / yonaskolb/XcodeGen

Generate default shared schemes?

Open
#215 7 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Swift
Stars
8.8k
Forks
908
Avg merge
17d 14h
Merged PRs (30d)
2

Description

At the moment shared schemes are only generated if they are defined in target.scheme or schemes. The problem is if someone wants to generate a simple shared scheme with no special options, the best way is to specify a target scheme with no options which looks a bit weird.

targets:
  MyTarget:
    scheme: {}

This issue is highlighted here https://github.com/yonaskolb/XcodeGen/issues/57

When Xcode opens a project it creates default private schemes for each target if they don't exist already. What we could do is generate a default shared scheme for each target, possibly just app targets. You could still provide options for this via target.scheme, and if a top level scheme with the same name was created, it would override this default scheme.
Possibly this could even live behind an option. Thoughts?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test is named. Start by locating the code that handles target.scheme and top-level schemes, then trace how shared schemes are emitted. Define the scope for default generation and any option needed; done means simple shared schemes no longer require an empty scheme declaration while explicit schemes still override defaults.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.