Sparkle: generate_appcast: Not built with Carthage

Created on 14 Mar 2017  Â·  7Comments  Â·  Source: sparkle-project/Sparkle

When using Carthage to pull in Sparkle as a project's dependency, the generate_appcast utility doesn't get built/exposed for use, so cannot be used as specified in the documentation.

With Carthage, the deliverables are:

  • Carthage/Checkouts containing Sparkle git checkout (clean)
  • Carthage/Build containing Sparkle.framework[.dSYM] built from the Sparkle git checkout

I looked at the possible solution of specifying Sparkle as a binary project. However, unfortunately it looks like this don't give you any readily accessible directory containing the unpacked binary archive (which contains the generate_appcast binary). In addition to only supporting binary frameworks distributed as .zip files, and not .tar.bz2 that Sparkle is distributed as.

My current workaround is to do:

xcodebuild -project Carthage/Checkouts/Sparkle/Sparkle.xcodeproj -target generate_appcast
cp Carthage/Checkouts/Sparkle/build/Release/generate_appcast Carthage/Checkouts/Sparkle/bin

After this it can be used as documented.

If a better solution can't be found, then a subsection might need to be added in the documentation to deal with Carthage-specific issues (as there already is for CocoaPods).

Most helpful comment

Nope, this is still happening on master. Carthage won't build anything apart from frameworks – this is 💯 expected. Perhaps it would help to have a separate script for exclusively building the tools, so it can be invoked after updates?

It would be awesome to have first citizen support for Carthage – it already has more stars than CocoaPods and there's a good reason for that. With that said, I don't see how this can be done apart from including all tool binaries with the repo. Carthage supports prebuilds, but after a test this doesn't appear to be a solution – Carthage picks out only specific files out and doesn't copy the entire archive content, which could include the tools… Another option would be to include the tool as part of the framework. Not the best solution either, but can be explored further.

Maybe anyone can come up with a better approach?

All 7 comments

I don't know Carthage. Is there something we can change in the project to make it better?

@pornel ,
Carthage is just a kind of Dependency Manager that will not make Sparkle better but it provide one more way for developer to integrate their projects with Sparkle.

For me, I don't like Cocoapods because it auto create a Workspace and modify my project file.
Carthage don't do that.
Hai,

I've meant is there something we can change in Sparkle, its Xcode project, directory layout or build scripts, to make it more Carthage-friendly?

I see there's a problem with generate_appcast, but I don't know what to do to fix it.

@pornel,
just mark Xcode Sparkle target to share schemes then it will can be build by Carthage
Carthage build log
Dependency "Sparkle" has no shared framework schemes for any of the platforms: iOS

Hopefully it's fixed now

Nope, this is still happening on master. Carthage won't build anything apart from frameworks – this is 💯 expected. Perhaps it would help to have a separate script for exclusively building the tools, so it can be invoked after updates?

It would be awesome to have first citizen support for Carthage – it already has more stars than CocoaPods and there's a good reason for that. With that said, I don't see how this can be done apart from including all tool binaries with the repo. Carthage supports prebuilds, but after a test this doesn't appear to be a solution – Carthage picks out only specific files out and doesn't copy the entire archive content, which could include the tools… Another option would be to include the tool as part of the framework. Not the best solution either, but can be explored further.

Maybe anyone can come up with a better approach?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

k06a picture k06a  Â·  18Comments

Sunil-P picture Sunil-P  Â·  10Comments

frankrei picture frankrei  Â·  8Comments

ianbytchek picture ianbytchek  Â·  5Comments

vadi2 picture vadi2  Â·  10Comments