If you have a workspace containing a library, and a project that includes 
the library, then if you make a change to the library then that change is 
never, I repeat *never*, included in your app/.ipa.
This applies to libraries only afaik.

I've spent two days digging into this and have however found the steps 
necessary for a workaround:

1) XCode/XCodeBuild does not cope very well with static libraries in 
general (I've noticed lots of glitches over the past several months). If 
you build, then make a change to the library, then build again then 
XCodeBuild will not include your change into the app unless you do a clean 
first.
So if you are using XCodeBuild in conjunction with static libraries make 
sure you also do something like this:

xcodebuild -workspace /Users/User/Workspace.xcworkspace -scheme 
NameOfScheme clean


2) Note that clicking the Clean Before Build flag in the Jenkins XCode 
plugin will *not* achieve the same affect. Look at the console output from 
the above command and look at the console output from Jenkins with this 
flag set - it is not the same, nor is the result, therefore if you need to 
properly clean things add a call to XCodeBuild clean explicitly.


3) Even if you add the two lines explicitly to the Jenkins script, then 
changes to the library are still not included. I found the only way to get 
the change included in the build output was to first delete XCodes build 
directory for your workspace, thus you need to add this line to the Jenkins 
script before the build starts:


rm -r /Users/User/Library/Developer/XCode/DerivedData/*


(If you have more than one workspace then adapt this command accordingly to 
only delete folders for the particular workspace you are dealing with - 
directories with the name NameOfWorkspace-randomstring get generated in 
DerivedData folder).


If you do that then finally your changes will be applied to your build. 
This last step is not necessary if not using Jenkins, therefore my 
conclusion is it is *yet another* bug with the XCode plugin.

Not the first problem I've found with it - use it at your peril if your 
project isn't striaghtforward.






Reply via email to