I've got a situation where changes made to the source code of an iOS XCode 
project are not being applied to the build application.

BUT source code changes are being picked up on, but the result of that is 
not being applied to the resulting application package. Let me try to 
explain further - suppose I build and install my app, then I make a very 
obvious change (such as a logging statement, a dialog appearing, or even a 
deliberate exception) then rebuild and re-install the app, then when the 
application is run these changes are not present. Consider this relevant 
points:

1) If I add a deliberate syntax error into the source code then the build 
fails at the error line - this proves Jenkins is picking up the changes to 
the source code and compiling it.
2) If I build the application from within Xcode rather than Jenkins and 
install it then changes do appear.

I tried to reproduce this by creating a new application from the Xcode 
templates project but was unable to, however it was not a full reproduction 
because that was just a project whereas my app is a workspace containing a 
library and a project.
I've been investigating this non-stop for 8 hours and am convinced that 
Jenkins, or probably I suspect the Jenkins XCode plugin must be using an 
old cached version of a build. I suspect the fact that the workspace 
contains a static library has some relevance to this - I have noticed that 
XCode itself does not detect source code changes to a library unless the 
project is first cleaned before building. But as my point 1) above shows, 
source changes are being picked up by Jenkins.

Something which adds to the mystery is if I delete the contents of the 
directly where the build output is placed, then rebuild, then the 
timestamps of app created by the build is current, its just that the 
changes aren't present when the app is installed.

Has anybody used the XCode plugin and has experienced something similar?

Reply via email to