10

Now i add growl notification support into my app ,when i submitted it to mac app store with organizer,it says that " Unsupported Architecture - Application executables may support either or both of the Intel architectures:

i386 (32-bit) x86_64 (64-bit) " Finally i find that its issue by growl library, so i need to remove the ppc section in growl,so,how to? Please help..

NeXT5tep
  • 861
  • 1
  • 11
  • 23
  • 1
    1.2.2 will be the last version of the framework to include PowerPC support for this reason. We'll drop it in 1.3. http://code.google.com/p/growl/issues/detail?id=191 – Peter Hosey Apr 21 '11 at 07:42

2 Answers2

19

Use the lipo command line utility, which strips architectures off fat binaries (what an appropriate name). First, check which architectures there are in your Growl framework:

$ lipo -info path/to/Growl.framework/Growl
Architectures in the fat file: Growl are: x86_64 i386 ppc

In this case, we simply have ppc, but there are about 10 variants (of which I've met 3). To avoid any surprise, you should run this command any time you want to strip architectures from a file instead of just jumping to the removal part. (If you're curious, man 3 arch has the exhaustive list of possible architectures for fat binaries on Mac OS.)

Then, remove the ppc achitecture:

$ lipo -remove ppc path/to/Growl.framework/Growl -output GrowlIntel

Find the real Growl binary (should be under Versions somewhere) and replace it with GrowlIntel.

zneak
  • 134,922
  • 42
  • 253
  • 328
0

You can also use "ditto". I submitted my last Mac app with frameworks included that are stripped off ppc support using the two below commands. No rejections from Apple.

$ ditto -rsrc --arch i386 --arch x86_64 Growl-WithInstaller Growl-WithInstaller_noppc
$ lipo -info Growl-WithInstaller_noppc
SarpErdag
  • 781
  • 1
  • 8
  • 19