0
votes

I'm developing a Mac OSX application using OSX 10.8. I want to make sure that my application will run correctly on 10.7.

In my source I believe I am not using 10.8 specific API calls (but I could be mistaken). There are third party libraries that I link to that may use 10.8 specific API calls.

I don't have a test system for 10.7. How can I test such a binary (executable or library) to see if it should work on 10.7 or not?

2
In general you can look at the info.plist if there is one, binary is a bit vague. It might be difficult to say if an API call signature is the same on multiple SDKs but implementation changed. This is where documentation comes in handy :( - uchuugaka
Best way is to test your app on 10.7. - asveikau
Making a test for 10.7 with 100% coverage would be very difficult. - koan
@koan - What do you do to test on 10.8? If you can do that to your satisfaction on 10.7 then that is best. - asveikau
@asveikau Best would be an automated test to check the differences betweem 10.7 and 10.8 and then only do one set of manual testing on 10.8. - koan

2 Answers

1
votes

If you have specific API you're looking for, you can use tools like otool and nm to see if a binary includes calls to those APIs. See the man pages of each for details on how they work.

1
votes

The first, best solution is to just compile with the 10.7 SDK. Then you know for certain that it will run on 10.7.

If that's not possible for some reason, then the best tools available are DeployMate and AppCode which can search for incorrect usage.

But I strongly recommend compiling with the SDK that you are targeting. See also Mac SDK: using latest SDK but ensuring backwards compatibility with earlier deployment target

See also https://gist.github.com/rnapier/3370649 for a script to assist in managing this.