yonaskolb / yonaskolb/XcodeGen
Recursive Carthage dependencies
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 8.8k
- Forks
- 908
- Avg merge
- 17d 14h
- Merged PRs (30d)
- 2
Description
I'm not 100% if this is within the scope of this project, but currently, when adding Carthage dependencies you also have to manually add any Carthage dependencies that they may in their turn depend on.
E.g. I might have an iOS application that depends on BioPass. I add github "LinusU/BioPass" ~> 1.1.1 to my Cartfile, and - carthage: BioPass to the dependencies in project.yml.
Now, BioPass in turns depends on PromiseKit, and Carthage will correctly pick this up and install both BioPass and PromiseKit. However, trying to run the built app will crash with: Library not loaded: @rpath/PromiseKit.framework/PromiseKit.
The current fix is to add - carthage: PromiseKit to the list in project.yml, and then all is well. However, I think it would be excellent if this could be done automatically, as Carthage does.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating XcodeGen's handling of Carthage dependencies and reproduce the BioPass/PromiseKit example described in the issue. Trace how the generated project represents direct Carthage dependencies, then verify that a transitive framework is available at runtime without adding it manually to project.yml.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100