3

I'm new at programming on the Mac. I've got me a brand new copy of XCode 4.0. I've got people asking me what versions of MacOSX we'll be able to support but I'm not sure what to tell them.

I see options for selecting an "SDK" and other options for selecting a target version. It seems the lowest I can go is 10.4 though -- even though we'd like to support 10.3, if possible without a lot of pain.

My question is, could anyone give me a quick rundown of how sdk versions and target versions fit into this? As I'm coding, what kind of things do I need to watch out for to make sure I can still support the smallest version of MacOSX? Likewise, how do I figure the G4/G5 (PowerPC) versions of MacOSX into all this? For example, on Windows, if I write an app in c#, I know that all I need to do is make sure an appropriate version of .net framework is installed, regardless of the OS. Does something similar hold true for the MacOSX?

Thanks in advance.

bugfixr
  • 7,997
  • 18
  • 91
  • 144
  • 2
    What sort of market are you targeting? Unless you have a very specific vertical market which still has significant numbers of 10.3 users (education comes to mind), targeting 10.3 is just going to be difficult to cater for. From a developer's point of view I wouldn't want to go back further than 10.5, because before that you lose Objective-C 2.0. – Rob Keniger Aug 31 '11 at 12:21
  • We are targeting education actually. – bugfixr Aug 31 '11 at 12:23
  • @Rob - So I've got my target set to 10.4 now; you say that I lose Objective-C 2.0 features; I don't know what those features are, so if I write code that uses a 2.0 feature, does the compiler tell me when I try to build or does the app simply not run/crash when I throw it on a 10.4 OS? – bugfixr Aug 31 '11 at 12:26
  • The compiler will refuse to build. If you absolutely must support OS versions older than 10.6 then you really should download Xcode 3, which you can get from [connect.apple.com](http://connect.apple.com). – Rob Keniger Aug 31 '11 at 23:01

2 Answers2

2

I believe Apple has dropped PowerPC support completely, including Rosetta, in Mac OS X so 10.3 is out of the question.

If you want to support PowerPC, see this related question. It looks like a lot of work.

How can we restore ppc/ppc64 as well as full 10.4/10.5 SDK support to Xcode 4?

With the analogy to the .NET Framework, there isn't anything like that for Mac OS X built-in.

Community
  • 1
  • 1
Daniel A. White
  • 187,200
  • 47
  • 362
  • 445
  • So how does new feature support get installed on the older versions of OSX? 10.4 existed long before the latest version of the SDK. How is that supported on OSX 10.4? Does it just require an OS update to 10.4.X to get it to work? – bugfixr Aug 31 '11 at 12:37
  • 1
    They don't do that. They just release a new version of Mac OS X. That's the Apple way... – Daniel A. White Aug 31 '11 at 12:39
0

It is true for Mac OS X. If your program targets 10.3 SDK, it will be able to run on 10.3 or greater. I.e. the Base SDK project setting specifies minimum target OS version.

However, supporting 10.3 IS a lot of pain. Even 10.4 is not that easy, for example Objective-C 2.0 (most important, @property, garbage collection) is only available with 10.5 SDK or above.

The common solution in existing projects is to keep an old version of software available for 10.1-10.4 users, while the new versions will require 10.5 or greater (and also usually are Intel-only).

If you're starting a new project, you will probably want to distribute it via Mac AppStore, which only works on 10.6+, which means you can safely pick 10.6 SDK as the lowest target version.

Apple is way more harsh about upgrades than Microsoft. Mac users don't walk around with 10-years old systems on their laptops. The only reasons I can think of to still use 10.3 are using 10-year old mac, not having Internet connection and not knowing what “to update a software” means. So, I wouldn't care even about 10.4, not to say 10.3.

hamstergene
  • 24,039
  • 5
  • 57
  • 72