FROM : Ali Ozer
DATE : Mon Apr 18 20:13:37 2005
In addition to setting the LSMinimumSystemVersion key as others have
described, you can do one of several things, such as check AppKit
version number:
if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_3) {
/* On a 10.3.x or earlier system, put up alert */
}
or check for the Tiger class in question:
if (!NSClassFromString(@"NStigeronlyclass")) {
/* On a 10.3.x or earlier system, put up alert */
}
If you use Tiger symbols or function calls (not methods or classes)
which are not appropriately weakly linked (they aren't declared as
AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER), your app might refuse to
launch at all. From what you describe below this doesn't seem to
be the problem though.
Ali
Begin forwarded message:
> From: John Brownlow <<email_removed>>
> Date: April 18, 2005 10:43:56 PDT
> To: Cocoa List <<email_removed>>
> Subject: Gracefully failing on unsupported OS version
>
>
> My app is targeted at 10.4 and better. I know that whatever I do,
> people are going to download it and try to use it on earlier
> versions. I don't want to use an installer, just the drag-to-
> Applications thing. However, as currently configured, on pre-10.4
> systems the app just fails to launch without a word of explanation.
> The syslog shows that the cause of the crash is "failed
> objc_getClass(NS**tigerOnlyClass**)"
>
> What's the nicest way of catching this problem without using an
> installer? If the app won't launch in, say, 10.3, how can I tell
> the user very politely that they need to upgrade if they want to
> use my app?
>
>
> --
> John Brownlow
> Deep Fried Films, Inc
>
> http://www.johnbrownlow.com
> http://www.pinkheadedbug.com
>
DATE : Mon Apr 18 20:13:37 2005
In addition to setting the LSMinimumSystemVersion key as others have
described, you can do one of several things, such as check AppKit
version number:
if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_3) {
/* On a 10.3.x or earlier system, put up alert */
}
or check for the Tiger class in question:
if (!NSClassFromString(@"NStigeronlyclass")) {
/* On a 10.3.x or earlier system, put up alert */
}
If you use Tiger symbols or function calls (not methods or classes)
which are not appropriately weakly linked (they aren't declared as
AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER), your app might refuse to
launch at all. From what you describe below this doesn't seem to
be the problem though.
Ali
Begin forwarded message:
> From: John Brownlow <<email_removed>>
> Date: April 18, 2005 10:43:56 PDT
> To: Cocoa List <<email_removed>>
> Subject: Gracefully failing on unsupported OS version
>
>
> My app is targeted at 10.4 and better. I know that whatever I do,
> people are going to download it and try to use it on earlier
> versions. I don't want to use an installer, just the drag-to-
> Applications thing. However, as currently configured, on pre-10.4
> systems the app just fails to launch without a word of explanation.
> The syslog shows that the cause of the crash is "failed
> objc_getClass(NS**tigerOnlyClass**)"
>
> What's the nicest way of catching this problem without using an
> installer? If the app won't launch in, say, 10.3, how can I tell
> the user very politely that they need to upgrade if they want to
> use my app?
>
>
> --
> John Brownlow
> Deep Fried Films, Inc
>
> http://www.johnbrownlow.com
> http://www.pinkheadedbug.com
>






Cocoa mail archive

