Skip to content

Added Xcode project with shared schemes to enable Carthage compatibility - #4

Merged
klundberg merged 1 commit into
StarryInternet:masterfrom
gwikiera:carthage
Mar 7, 2022
Merged

Added Xcode project with shared schemes to enable Carthage compatibility#4
klundberg merged 1 commit into
StarryInternet:masterfrom
gwikiera:carthage

Conversation

@gwikiera

Copy link
Copy Markdown
Contributor

Carthage needs shared xcschemes to be able to fetch dependencies.
This PR adds xcproj with shared xcschemes for all supported platforms.

@gwikiera gwikiera mentioned this pull request Feb 24, 2022
@klundberg

Copy link
Copy Markdown
Contributor

Thanks for this PR, it should allow this to be used with carthage easily!

I have a question and some requests though:
For my question; I'm curious what the use case for using carthage here is, when carthage frameworks and swift packages can be both mixed into the same project? Will this be a transitive dependency with another carthage library, or will the frameworks be cached somewhere or something?

As for my concerns, we don't use carthage internally, and I'm worried about the added maintenance of an xcodeproj file with many targets. If we make or accept changes to the swift package, we'd need to make sure to reflect any changes to file structure or file additions in the project too, which is less than ideal. Could you change this PR to instead say, include a workspace that has the swift package as a reference, and also an xcode project with a framework target that just statically links the swift package? I think that should work with carthage, though that's worth a test. If we do this, then the project will just be an empty shell that will need minimal maintenance.

Secondly, would it be possible to condense the frameworks down to one multi-platform framework target/scheme? I believe this should be possible with some changes to the build settings of a target, and as I recall having used carthage in the past it should work with carthage as well I believe? That'd make maintenance of the project file even easier since build/target settings won't need to change for four targets, only one if changes need to be made.

Thanks!

@klundberg

Copy link
Copy Markdown
Contributor

I've decided I'll merge this as is, and explore those enhancements later so that folks can start using this with carthage sooner :)

@klundberg
klundberg merged commit 3cc82f3 into StarryInternet:master Mar 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants