Xcode Build Settings Script

The current project I’m working on is a static library. Part of the application includes a set of Calabash acceptance tests and a rake script to launch them. This means my build and test script needs to know the location of the built product to launch. When I first started this project back in the early days of Xcode 4, I decided to stick with the legacy build settings and use a build directory in the same location as the project.

Continue Reading »

Controlling Xcode warnings via pragmas

I hate warnings in Xcode. Originally, they didn’t bug me too much and I’d even use the #warning preprocessor directive to note TODO items. I want problems to be the only thing that shows up in the build log so I notice it right away. Then, one day Xcode updates and I get a lot of new warnings. This is a good thing and you should choose to turn the stricter warnings on.

Continue Reading »

→ Automate your environment with Xcoder

I’ve been using Rakefiles with my Xcode projects for over a year now. I really love that all the tasks I perform can be easily automated via a small Ruby method. For example, you can setup a rake task for running mogenerator: rake mogen

The biggest problem I’ve had is getting the xcodebuild command to work properly all the time. A few weeks ago, a coworker found this RubyGem that provides a nice interface to working with Xcode projects from the command line or Rakefile. It even allows you to run unit tests, manipulate the project, publish to TestFlight, and more.

Static Linking with C++ Project in Xcode

This week at NSCoder Night, another developer was trying to statically link the MySQL library. He had initially linked it as a dynamic library and couldn’t seem to get it working with Xcode. After working with it for a little while I figured out what needed to happen; and it wasn’t clear. Here I’ll discuss what process I went through to track down the problem and what tools I used.

Continue Reading »

Things I wish I knew yesterday

Even when you’ve been working in an environment for years, you still find things you never knew. I liken it to learning about a famous actor you had never heard of, but has starred in all your favorite movies. I found two things that I wish I had known or seen, but for whatever reason, I missed. First up, convenience functions for converting a CGRect to a NSString or a NSString to a CGRect.

Continue Reading »