[MacRuby] #1178: Mac App Store reviewers rejecting MacRuby app's due to library name

MacRuby ruby-noreply at macosforge.org
Fri Mar 4 17:43:58 PST 2011

#1178: Mac App Store reviewers rejecting MacRuby app's due to library name
 Reporter:  rsepulveda2@…          |       Owner:  lsansonetti@…        
     Type:  defect                 |      Status:  new                  
 Priority:  blocker                |   Milestone:                       
Component:  MacRuby                |    Keywords:                       
 My App Store app was rejected twice because the testers claimed that i was
 But i am in fact embedding MacRuby.framework in my package using the
 macruby_deploy script in XCode, which uses the install_name_tool to fix
 the library paths.

   PATH="$PATH:/usr/local/bin" macruby_deploy --verbose --embed


 I finally figured out what they were finding by running:

   find . -exec otool -l {} \; > libs

   grep libs MacRuby


 They are apparently flagging:

         cmd LC_ID_DYLIB
       cmdsize 104
 (offset 24)
    time stamp 1 Wed Dec 31 18:00:01 1969
       current version 0.8.0
 compatibility version 0.8.0
 Load command 4


 which contains the name '/Library/Frameworks/MacRuby.framework'.This is
 found in the dylibs themselves.. which really isn't accessing a library
 but is instead their ID.

 I made a small modification to the macruby_deploy script to change the id
 of the libraries... By adding the following to the fix_install_name

     # changes to fix dylib id to something that doesn't flag an app store

     patterns = [ File.join(app_macruby_usr, 'lib/libmacruby*.dylib') ]
     patterns.each do |pat|
       Dir.glob(pat).each do |bin|
         execute("#{@install_name_tool} -id


 I am not sure if this is the best solution but it works and my app was
 accepted the next time it was submitted.

Ticket URL: <http://www.macruby.org/trac/ticket/1178>
MacRuby <http://macruby.org/>

More information about the macruby-tickets mailing list