apps built on Intel won't run on Power PC (sometimes)

Hello,

I’m having problems getting A.S.S. apps which have been built on an Intel based Mac, to run on a Power PC Mac. I’ve actually been successfull a few times but it seems to be hit or miss. I believe it has something to do with the “Cross-Develop Using Target SDK” options under “Edit Project Settings”, but again, what I’m doing doesn’t always work. Does anyone have an exact solution?

Thanks
-Rob

Universal Binary Programming Guidelines, Second Edition: Building a Universal Binary

I’ll definately take a look at that. Thanks for the direction.

-rob

When I complied an app I developed as my first project in xcode, it seemed to default to building an universal binary. Get info showed it as one. (and a friend with an intel said it worked fine) Of course, i’m on PPC, not Intel, so that may be a difference.

  1. Are you absolutely sure that it did? An Intel machine can run a PPC binary, after all.

  2. It would appear that by default, Xcode does not build Universal, at least on Intel. (This may extend to PPC. I’m not sure.) That is, I clearly recall having to clean, reconfigure for both architectures, and rebuild for projects on fresh Intel machines, because I had to do it to dozens of projects after the Intel machines arrived in our office.

http://img487.imageshack.us/img487/4671/picture1yu9.png

yup. I don’t recall ever changing anything in xcode. I am running OS X 10.4.7.

Is that a debug build? Set up debug and release build configurations to build as Universal, clean your project (debug and release both), and build in release mode. Does your program run on PPC machines now?

That was a release build, but not ment for release. (I sent it to my friend to basically beat the crap outta it and try to uncover any bugs he could)

If you double click on the top file of your project. (In the list on the left, it would be whatever your app is called, and all the way at the top) it will come up with a panel with various info about your app. Towards the bottom, under General, you will see “Cross Develop With Target SDK”. I have that set to Mac OS X 10.4 (Universal). It seems to go to that by default.

Yes, but did you actually set your architectures in the inspector window for your core project file?

In the menu bar, go to Project > Edit Active Target ‘blah’. In the window that comes up, click on the tab Build, set the popup menu Configuration to Release, and set Collection to Architectures. Select the only setting in the table, and click on the button Edit. In the sheet that comes up, make sure both options are selected.

Or he could just, you know, read the documentation I linked to, which explains this really clearly. It even has screenshots.

It looks like he only read the top of “Building Your Code” and wondered why it didn’t work.

I think you’re confusing me, and the person who asked for help here :stuck_out_tongue_winking_eye:

I’m pretty sure I’m not confusing anything. I posted documentation that explains how to set the architecture flags in this thread, you posted in this thread, therefore I should assume you read the rest of the thread before you posted.

Just sayin’.