David Livesay wrote:
If "the expectation is that developers will figure things out for themselves" then why take up disk space with obsolete documentation?
Because it would take a lot of effort to review all the shipping documentation and remove the obsolete stuff. If they had that much time they would have updated the documentation to begin with. Periodically they do go through and get rid of obsolete documentation, but not very often. Xcode 3.0 only came out recently. They have pretty much gotten rid of all the old ProjectBuilder documentation. They will do it eventually, but they do expect developers to put up with many more rough edges than end-users ever would.
Besides, how does someone become a developer without any documentation? I can figure out a lot of things on my own, but how a particular software program works is subject to the choices the authors of that program made, and they really owe it to their users to document those arbitrary choices accurately.
Learning to develop for a specific, non-market leading platform using free tools does have a steep learning curve. If you were on MS Windows, there would be lots of books available. If you were on something odd like VxWorks, your company would fly in a VxWorks training for a couple of weeks in addition to the extensive documentation that your several thousand dollars-per-seat license would have provided.
On MacOS X, you are going to have make to with what is available, learn on your own, and make use of resources such as this discussion forum to fill in the missing information. I even started a blog just for myself so that I could have a place to remember all of these tiny, undocumented, critically important MacOS X development topics I have to deal with. Sometimes I have to go through quite a bit of research to find the best way to do something and I need to remember the final answer along with the reasoning that got me to that answer.
Using a shell script target isn't what I'm trying to do. According to the documentation, if you use the right kind of target you can use the "run" and "clean" commands in Xcode instead of calling the shell commands. If I wanted to do that I'd just run them from the shell. I'm trying to learn how to build makefile projects with Xcode.
You have an excellent point. I have a couple of projects in Xcode that are websites. I have "make" hooked up to build the site (using XSLT) but I don't have "clean" hooked up, but I would like to. I will look into it right now and see if I can track it down.
I don't want this to seem discouraging for a new developer. This is part of the excitement about using a platform like MacOS X. Once you figure something out on your own, you could be one of the few people in the world to know how to do something. "one of the few people in the world" may be an exaggeration, but it is not an exaggeration to say that this "lack of documentation" really levels the playing field between small developers and big corporations on MacOS X. For example, in the first version of Mac Office 2008, the Microsoft developers didn't do their installer correctly. I could honestly say that I know how to do things that programmers at multinational corporations hadn't figured out yet. So, if you stick with it and don't give up, you can crest that learning curve and quickly become a true expert.