xcake: A crash again

MaxBook:MKHRequirement maxim$ xcake make

  • Reading Cakefile
  • Creating Project
  • Creating Target<>
  • Creating Target<Tst>
  • Creating Target<MKHRequirement>
  • Resolving Project
  • Resolving Target<>
  • Resolving Target<Tst>
  • Resolving Target<MKHRequirement>
  • Creating build configurations for Project<Main>
  • Creating build configuration Debug for Project<Main>
  • Creating build configuration Release for Project<Main>
  • Creating build configurations for Target<>
  • Creating build configuration Debug for Target<>
  • Creating build configuration Release for Target<>
  • Creating build configurations for Target<Tst>
  • Creating build configuration Debug for Target<Tst>
  • Creating build configuration Release for Target<Tst>
  • Creating build configurations for Target<MKHRequirement>
  • Creating build configuration Debug for Target<MKHRequirement>
  • Creating build configuration Release for Target<MKHRequirement>
  • Creating User Schemes /Users/maxim/.rvm/gems/ruby-2.0.0-p648/gems/xcake-0.8.8/lib/xcake/generator/scheme_generator.rb:33:in block in visit_target': undefined method build_for_running’ for #Xcodeproj::XCScheme::BuildAction:0x007fde710aba70 (NoMethodError) from /Users/maxim/.rvm/gems/ruby-2.0.0-p648/gems/xcake-0.8.8/lib/xcake/generator/scheme_generator.rb:16:in each' from /Users/maxim/.rvm/gems/ruby-2.0.0-p648/gems/xcake-0.8.8/lib/xcake/generator/scheme_generator.rb:16:in visit_target’ from /Users/maxim/.rvm/gems/ruby-2.0.0-p648/gems/xcake-0.8.8/lib/xcake/visitor.rb:45:in visit' from /Users/maxim/.rvm/gems/ruby-2.0.0-p648/gems/xcake-0.8.8/lib/xcake/dsl/project.rb:83:in block in accept’ from /Users/maxim/.rvm/gems/ruby-2.0.0-p648/gems/xcake-0.8.8/lib/xcake/dsl/project.rb:82:in each' from /Users/maxim/.rvm/gems/ruby-2.0.0-p648/gems/xcake-0.8.8/lib/xcake/dsl/project.rb:82:in accept’ from /Users/maxim/.rvm/gems/ruby-2.0.0-p648/gems/xcake-0.8.8/lib/xcake/command/make.rb:25:in block in run' from /Users/maxim/.rvm/gems/ruby-2.0.0-p648/gems/xcake-0.8.8/lib/xcake/command/make.rb:23:in each’ from /Users/maxim/.rvm/gems/ruby-2.0.0-p648/gems/xcake-0.8.8/lib/xcake/command/make.rb:23:in run' from /Users/maxim/.rvm/gems/ruby-2.0.0-p648/gems/claide-1.0.1/lib/claide/command.rb:334:in run’ from /Users/maxim/.rvm/gems/ruby-2.0.0-p648/gems/xcake-0.8.8/bin/xcake:6:in <top (required)>' from /Users/maxim/.rvm/gems/ruby-2.0.0-p648/bin/xcake:22:in load’ from /Users/maxim/.rvm/gems/ruby-2.0.0-p648/bin/xcake:22:in <main>' from /Users/maxim/.rvm/gems/ruby-2.0.0-p648/bin/ruby_executable_hooks:15:in eval’ from /Users/maxim/.rvm/gems/ruby-2.0.0-p648/bin/ruby_executable_hooks:15:in `<main>’

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 79 (44 by maintainers)

Most upvoted comments

@maximkhatskevich Yup! Struct was intended to also act as a middleman for other tooling, so this is absolutely supported. If you are comfortable with ruby, you can require 'struct' and use Struct’s APIs directly to generate Specfiles dynamically.

@maximkhatskevich Yeah, unfortunately there’s no project parsers written in Swift that are as robust as Xcodeproj, so it’d be a huge maintenance burden to move away from Xcodeproj. Also as Swift is a static language, it’s going to be incredibly difficult to write a DSL for it, and it wouldn’t be nearly as flexible as a Ruby DSL.

@maximkhatskevich @lyptt I think in the long term SPM will become the project format for xcode, but not in a long time. Right now its super optimized for Swift frameworks like Kittura.

When I made Xcake, Cocoapods wasn’t used by most developers. Fastlane and SPM didn’t exist (Xcake was originally just a private tool that even used Sigh to download the certificates - @KrauseFx was onto something). It was supposed to in effect be a high-level Xcodeproj that allowed you to simply describe a project and allow you access to Xcode. This has ended up in some complexity as I’ve had to add things like watch app support and some Xcode Features are complex.

If I was building Xcake today 😃 I would probably build it more like Struct, since the times have changed. so its why I’m so excited to be working with someone as insane as me to be working with xcodeproject.

Someday I will write a talk about the project format it is crazy 😃

@maximkhatskevich I think most of our issues are centred around our ‘approach’ to generating projects. With Xcode projects there’s a monumental amount of feature bloat, and factoring that down into something sensible is the hardest task!

The goal for struct was to boil down all these Xcode features and pick out the ones that developers use all the time, and make them incredibly simple to work with. This is basically the overall end-goal for the tool 🚀

@jcampbell05 Oh yeah tell me about it! Xcode is an absolute nightmare - and that’s before you start working with it at such a low level 😂 Makes me wonder why I was insane enough to do it, but I can’t help myself now!

@maximkhatskevich It’s a chat/IRC program that lets you chat to people based on the github repo 😃 so we can talk about Xcake just by going to the same url as this repo on gitter 😃

Pushed 😃

@maximkhatskevich so pushed a fix to master, I am writing some unit tests for it but feel free to pull it down and test it out 😃