Unfortunately, I think the screen saver executable in there only works on 10.6, and the app and widget no longer work on 10.4, and I can't figure out how to fix that.
That's where you come in, dear Lazyweb.
To make it build on 10.6, I had to make these changes in XCode:
- Architectures: Standard (32/64-bit Universal)
- Base SDK: Mac OS X 10.5 (10.6 for the .saver)
- C/C++ Compiler Version: GCC 4.0 (not 4.2)
- Objective-C Garbage Collection: Supported
- Info.plist: change "LSMinimumSystemVersion" from "10.4.0" to "10.4".
But it's obviously unacceptable that this should be a 10.6-only binary.
- How to I build DaliClock.app in such a way that it is runnable on 10.4, 10.5, and 10.6 systems?
When I set the Base SDK to 10.4, I get "warning: Mac OS X version 10.5 or later is needed for use of the new objc abi", followed by "#error 64-bit not supported" from from objc/objc.h, included via Foundation.h.
I suspect this means that you can't build a 10.4 version of the x86_64 binary, which is fine. Since 10.4 was perfectly happy running the i386 or ppc binaries, it's ok if the x86_64 build be 10.6-only, and the i386 and ppc builds be 10.4. But I don't see a way to specify that.
How to I build DaliClock.saver in such a way that it is runnable on even 10.5 systems?
When I set the Base SDK to 10.5, I get "ld: warning: in MacOSX10.5.sdk ScreenSaver.framework, missing required architecture x86_64 in file".
Maybe this is the same kind of problem. But it's worse, because it means I can't build a 10.5-compatible version of the saver at all.
How do I make these warnings go away?
"AppController.m warning: passing argument 3 of 'addObserver:forKeyPath:options:context:' makes integer from pointer without a cast"
The code in question is this, which had been warning-free before:
- [userDefaultsController addObserver:self