This is a problem I'm experiencing with XCode 3.1.2 on OSX 10.5. I wanted to see if it was possible to stay completely within the IDE throughout the testing cycle. This included producing and updating test data. Since the test data was text, my first choice for a template with which to create that data file was "Strings". Very educational. Eventually, the testing settled into a "change/extend data, run program, change program" cycle. The strange part was that XCode didn't put up a "Save file" dialog every time the data file was changed. Without the dialog, I (silently) got the old data. Sometimes it did, but not every time. My question is why the notification of unsaved data is inconsistent.
It was surprising to see that XCode did recognize the data dependency the first time. I had only included the data in the target by creating the data file after choosing the new target. There is no direct connection between the program and the data file. The program just reads STDIN. If there is a command line argument (in the IDE's arguments), the program reopens STDIN with the parameter from the command line as the file name. (All testing is done from the IDE, not a real command line) There is no "copy" step in the build. The data file is just part of the target because the file was created from within XCode. And yet data changes are recognized - mostly.
I had a roughtly similar problem with Java right after I updated to 3.1.2. After the update, all projects in C and Obj-C behaved as expected. After changing source code, I got the "Save file" dialog, and a new build, when running the program. In a Java project, however, a change to the source code didn't always bring up a dialog (nor, I believe, a build - but I may have blinked). Sometimes I would change source code, run the program, and get the previous version. If I did an explicit "Save", I would get a new build, but if I was jumping around between multiple files, I could forget the "Save".
Yes, I realize there was a change to ANT for the build process with 3.1.2. The problem occurred with new projects, using only the source code from previous project.
Anyway, the problem with the Java projects continued until I poked around (somewhere - can't find it now) and saw a "Confirm Saves" check box. It was checked. I toggled it off and on. Since then, all Java projects behave as they should. It doesn't really make sense. But I wonder if my current problem with saving a data file might be related. What could I try to "jiggle"?