Ok here is a few questions that I'm not sure I understand well. Since I still have users using 3.1.x I need to support iOS4/3.2/3.1.x. My question is as follows, I have older xcode and sdk's for the older devices but when building/deploying/releasing the application to the app store how sould I build it? Should I build it in the older version and release it? Within the code I am using: #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 40000 #endif But I do believe that just avoids compiling that code in based on the target device? So if I built the project for iOS 3.1.2 but once a user tries to use it on the iOS4 device they still will not be able to use the features in those build statements? If anyone could answer these questions, or point me to a resource that could give me more information I would greatly appreciate it!