GC / ARC question regarding screensavers under Mavericks
GC / ARC question regarding screensavers under Mavericks
- Subject: GC / ARC question regarding screensavers under Mavericks
- From: Gabriel Zachmann <email@hidden>
- Date: Sun, 04 Jan 2015 02:31:50 +0100
I am trying to make my screensaver compile and run under Mavericks.
I haven’t touched the code for some years, and I haven’t recompiled it for a few years.
I have the latest Xcode and Mac OS X 10.9.5 on a MacBookPro 2014.
When I opened the project, Xcode said that it had to convert it to ARC and 64-bit.
So, and also inserted a few bridged casts.
However, when I run the screensaver in System Preferences, I get the error message
“You cannot use the screen saver with this version of Mac OS X …”.
I get that message also if I try to run the preview of my screensaver from SystemPreferences.
I cleared the build setting GCC_ENABLE_OBJC_GC in Xcode build settings.
(can’t seem to delete it, though, I was just able to clear it.)
The output of 'otool -oV’ seems to tell me in the __objc_imageinfo section that my screen saver is indeed
no longer with garbage collection.
(I.e., no mentioning of OBJC_IMAGE_SUPPORTS_GC in that section.)
Now, when I look in the system.log, I get these funny error messages:
Jan 4 01:29:14 gzsretik2014nov.speedport_w723_v_typ_a_1_01_009 System Preferences[29427]: Garbage Collection enabled !
Jan 4 01:29:17 gzsretik2014nov.speedport_w723_v_typ_a_1_01_009 System Preferences[29427]: Error loading /System/Library/PrivateFrameworks/iTunesAccess.framework/iTunesAccess: dlopen(/System/Library/PrivateFrameworks/iTunesAccess.framework/iTunesAccess, 265): no suitable image found. Did find:
/System/Library/PrivateFrameworks/iTunesAccess.framework/iTunesAccess: GC capability mismatch
Jan 4 01:29:18 --- last message repeated 4 times ---
Jan 4 01:29:18 mylaptop System Preferences[29427]: Attempted search for modules of unknown type (4)
Jan 4 01:29:18 mylaptop System Preferences[29427]: Error loading /Users/zach/Library/Screen Savers/MySaver.saver/Contents/MacOS/MySaver: dlopen(/Users/zach/Library/Screen Savers/MySaver.saver/Contents/MacOS/MySaver, 265): no suitable image found. Did find:
/Users/zach/Library/Screen Savers/MySaver.saver/Contents/MacOS/MySaver: GC capability mismatch
Could it be that System Preferences does still expect screen savers to be compiled with garbage collection?
In the "64-Bit Transition Guide” I found this passage:
“"
In OS X v10.7 and later, all Apple applications shipping as part of the OS are 64-bit executables. This means that users with 64-bit-capable computers will be running the 64-bit slice of key system components. And beginning in OS X v10.8 and later, built-in apps are generally 64-bit-only. This means that any plug-ins (screen savers, printer dialog extensions, and so on) that need to load in these applications must be recompiled as 64-bit plug-ins.
As a special exception, the System Preferences application provides a 32-bit fallback mode. If the user selects a system preferences pane without a 64-bit slice, it relaunches itself as a 32-bit executable (after displaying a dialog box). To maximize your users’ experience, however, you should still transition these preference panes to 64-bit plug-ins as soon as possible.
“”
The last paragraph seems to hint at something like a 32-bit mode. But I didn’t get any dialog box of System Preferences.
I’d appreciate very much any kind of help, hints, suggestions, pointers, etc.
Best regards,
Gabriel.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden