[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
using
"</Library/Frameworks/MacRuby.framework>".
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
"$TARGET_BUILD_DIR/$PROJECT_NAME.app"
}}}
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
name
/Library/Frameworks/MacRuby.framework/Versions/0.8/usr/lib/libmacruby.dylib
(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
method.
{{{
# changes to fix dylib id to something that doesn't flag an app store
rejection
patterns = [ File.join(app_macruby_usr, 'lib/libmacruby*.dylib') ]
patterns.each do |pat|
Dir.glob(pat).each do |bin|
execute("#{@install_name_tool} -id
@executable_path/../Frameworks/MacRuby.framework/Versions/#{@macruby_install_version}/usr/lib/libmacruby.dylib
'#{bin}'")
end
end
}}}
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