User modules not rebuilding on change in Xcode 10


#1

I haven’t looked deeply into this yet, but it seems like since upgrading to Xcode 10, my user (JUCE) modules are not getting recompiled when changes are made.

The steps to reproduce in my project would be:

  • Make a change in a module used by my project (e.g. DBG() statement)
  • Build and Run

Expected:

  • The project is re-compiled taking into account the changed files

Actual:

  • The previous build runs

In order force a rebuild I have to do a complete clean first, which is time consuming.

I can’t reproduce this for modules within JUCE itself, only with my own module. I didn’t experience this with Xcode 9.

Can anyone else reproduce this?

Jamie


Xcode 10 feedback
#2

I can confirm your findings using Xcode 10 beta 6.

Whoa. Not good.


#3

I’m having the same issue here (Xcode 10.0 release version). I can’t even see the content of my custom module folder within Xcode. The folder appears but is empty (the files exists and are compiled, though, but again, they do not get recompiled if they change).


#4

I can confirm the problem also exists in Xcode 10.1.

I’ve a hunch it has something to do with the unity build idiom used for JUCE modules, but I haven’t had time to investigate further.


#5

Same here. Still on 9. Hoping there’s a solution to this somewhere in the works.


#6

I’m using AppCode instead of Xcode, however, I downloaded Xcode 10 two days ago and suddenly I get similar problems in AppCode. Am I right to expect that in the end AppCode is just a different Editor but using the Xcode build system under the hood, so the update might have affected my AppCode behaviour as well?


#7

https://www.jetbrains.com/help/objc/appcode-and-xcode.html


#8

Edit: not fixed yet by Apple, I guess I’ll have to come back to Xcode 9. It’s a pity, haven’t had any problems with it for a month till now.


#9

You need to enable the “legacy build system” for things to work.

Set “File/Project Settings…/Build System:” to “Legacy Build System”.

This setting will occasionally get erased when making changes in the Projucer.

Btw: When using the legacy build system Xcode displays a brown icon in its top status bar:

16


#10

I can confirm switching to the Legacy Build System resolves this issue. Thanks @yairadix!


#11

And btw on latest JUCE head it now applies this setting for us!


#12

This is good news.

Is there anything else that’s a show stopper with Xcode 10?


#13

No 32 bit
I can get a reliable crash partway through typing an include path
Breakpoints are not always reliably set/hit


#14

Isn’t this fixed with the legacy build system?