UrbanApps / Armchair

A simple yet powerful App Review Manager for iOS and OSX in Swift
MIT License
1.2k stars 137 forks source link

Carthage with specified version #59

Closed JagCesar closed 8 years ago

JagCesar commented 8 years ago

Hey!

When I write this in my Cartfile:

github "UrbanApps/Armchair" == 0.1.2

I can't deploy my app to a device. It looks like carthage does something "smart" by downloading the .framework-file attached to that tag. The .framework file in this case has been built by an older compiler (probably a previous version of xcode), and hence I can't deploy it :(

So my question is, why is there a .framework file attached to the tag? And could we get rid of it?

coneybeare commented 8 years ago

See here

JagCesar commented 8 years ago

Cool! Precompiled frameworks are known to not work though, check this out:

Using Swift frameworks built on other machines will cause Xcode's debugger to crash and other strange build errors.

coneybeare commented 8 years ago

That does look like a problem. I'm not a Carthage user and am not developing much in iOS lately... don't really have time to investigate. Can you elaborate on what exactly needs to be done here to fix it?

JagCesar commented 8 years ago

I've investigated this and reached this result:

Attaching the .framework-file doesn't fulfil any purpose, since nobody can use it. So if you're spending time attaching this file to every tag you can stop doing that from now on.

You don't have to remove them on old tags though, if a user wants to use tag 0.1.2 for example he/she just has to add --no-use-binaries to the carthage build command. This flag will force Carthage to compile the framework and not use any pre-built frameworks.

I'm closing this issue, but feel free to reach out if anything is unclear.

Keep up the good work. ✨🚀

coneybeare commented 8 years ago

Thanks for doing the research and posting the solution!