finish_installation deployment target is 10.6, not 10.5 #121

Closed
danwood opened this Issue Nov 18, 2011 · 2 comments

Projects

None yet

3 participants

@danwood
danwood commented Nov 18, 2011

The current version of Sparkle, as-is, will not work on 10.5 systems.

How to reproduce:

  • Built the current (Nov 18) version of Sparkle. I'm using Xcode 3.2.x on Snow Leopard.
  • Dig into the info.plist of finish_installation. Notice that the Minimum system version is 10.6.

Apparently this is coming from these lines in finish_installation-Info.plist:

<key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string>

So how is MACOSX_DEPLOYMENT_TARGET set to 10.6? Hmm....

If you look in ConfigCommon.xcconfig, you find these lines:

MACOSX_DEPLOYMENT_TARGET[arch=ppc] = 10.4
MACOSX_DEPLOYMENT_TARGET[arch=ppc64] = 10.5
MACOSX_DEPLOYMENT_TARGET[arch=i386] = 10.4
MACOSX_DEPLOYMENT_TARGET[arch=x86_64] = 10.5

So that should set it up for 10.4 or 10.5, right? Well, apparently not! I'm guessing these variations mean nothing in processing of the info.plist.

What I did was insert the following line after this, just to make it 10.5 overall:

MACOSX_DEPLOYMENT_TARGET = 10.5

I don't know what the ideal solution is, if you are really trying to target a combination of 10.4 and 10.5, and yet then specify a single value for LSMinimumSystemVersion.

Are there any people who are using new builds of Sparkle and targeting as far back as 10.4? Maybe it's just simpler to say no more 10.4. I don't know.

@andymatuschak
Contributor

It's unfortunate that that property can't be specified on a per-architecture basis. I've changed it to be 10.4.

Are there any people who are using new builds of Sparkle and targeting as far back as 10.4? Maybe it's just simpler to say no more 10.4. I don't know.

There are, unfortunately. And unfortunately, I don't have a 10.4 (or 10.5!) machine to test on. Not ideal.

@hofman
Contributor
hofman commented Nov 24, 2011

That property can be set by architecture. Use the LSMinimumSystemVersionByArchitecture Info.plist key. Its value is a dictionary whose keys are archs and values are versions (these only need to contain the exceptions to the value set in LSMinimumSystemVersion). This should be used, otherwise the app would fail on 10.4 running on 64 bits.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment