mirror of
https://github.com/zhigang1992/RubyMotion.git
synced 2026-04-11 22:42:04 +08:00
39fe2585080e985dfcef83a2c623606075c99982
http://hipbyte.myjetbrains.com/youtrack/issue/RM-247 1) String#encode cannot convert from UTF8-MAC to UTF-8 propery. Looks like iconv library handles it, however Ruby 2.0 does not bundle iconv library. So, we need to bundle the tool/library to convert the encoding using the Objective-C API in order to convert reliably. If we bundled it as Ruby C extension library, it will not work between 1.8/1.9/2.0 because Ruby 1.8/1.9/2.0 have not binary compatibility. So, we need to bundle three binaries for 1.8/1.9/2.0. Therefore, we bundles an executable binary to convert the encoding. 2) If we converted from NFD to NFC, it might not match between original NFC and converted NFC even if we used Objective-C API. We should normalized with NFD where it handles the string which retrived from filesystem.
How to set up
Set up LLVM
$ curl -O http://llvm.org/releases/2.9/llvm-2.9.tgz
$ tar xvzf llvm-2.9.tgz
$ cd llvm-2.9
$ env UNIVERSAL=1 UNIVERSAL_ARCH="i386 x86_64" CC=/usr/bin/gcc CXX=/usr/bin/g++ ./configure --enable-bindings=none --enable-optimized --with-llvmgccdir=/tmp
$ env UNIVERSAL=1 UNIVERSAL_ARCH="i386 x86_64" CC=/usr/bin/gcc CXX=/usr/bin/g++ make
$ sudo env UNIVERSAL=1 UNIVERSAL_ARCH="i386 x86_64" CC=/usr/bin/gcc CXX=/usr/bin/g++ make install
Then,
$ cp /Library/RubyMotion/bin/llc /usr/local/bin/
Set up RubyMotion
$ git clone git@github.com:lrz/RubyMotion.git
$ cd RubyMotion
$ git submodule init
$ git submodule update
$ bundle install
How to debug on RubyMotion app
First, comment out [ios, sim].map ... (line 31) in data/Rakefile as following:
29 # remove debug symbols
30 strip = File.join(PLATFORMS_DIR, '../usr/bin/strip')
31 # [ios, sim].map { |x| Dir.glob(x + '/*.{a,dylib}') }.flatten.each { |x| sh("\"#{strip}\" -S \"#{x}\"") }
Then, build RubyMotion
$ rake optz_level=0
$ sudo rake install
At last, debug on RubyMotion app
$ rake debug=1 no_continue=1
Or, debug on RubyMotion app in iOS device
$ rake device debug=1 no_continue=1
Description
Languages
Ruby
98.5%
HTML
1.3%
Python
0.2%