amirrajan / rubymotion-applied

RubyMotion documentation provided by the community. Submit a pull request to the docs for a free one year indie subscription.
Apache License 2.0
49 stars 9 forks source link

Bridge Support 2.0 for OSX vNext #18

Closed amirrajan closed 7 years ago

amirrajan commented 7 years ago

http://community.rubymotion.com/t/cant-build-app-on-macos-10-13/2167/2

amirrajan commented 7 years ago

Context. High Sierra upgraded their minimum ruby version to 2.3, so BridgeSupport needs to be rebuilt against that.

amirrajan commented 7 years ago

Beta:

git clone https://github.com/amirrajan/BridgeSupport.git
cd BridgeSupport
git checkout high-sierra
sudo mv /Library/RubyMotion/lib/BridgeSupport /Library/RubyMotion/lib/BridgeSupport.bak
sudo cp -r ./Versions/2.0/BridgeSupport/ /Library/RubyMotion/lib/BridgeSupport
SimonC4 commented 7 years ago

I'm now getting the following error.

      Link /Users/simon/iOSProjects/shift72-ios/vendor/build/Pods.build/Release-iphonesimulator/Pods-RubyMotion.build/Objects-normal/x86_64/libPods-RubyMotion.a
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/universal-darwin17/rbconfig.rb:214: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': dlopen(/System/Library/BridgeSupport/ruby-2.3/bridgesupportparser.bundle, 0x0009): required dylib '@rpath/libclang.dylib' not found, needed by '/System/Library/BridgeSupport/ruby-2.3/bridgesupportparser.bundle'.  Did try: file not found '/Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.13.xctoolchain/usr/lib/libclang.dylib', file not found '/usr/lib/libclang.dylib', file not found '/usr/local/lib/libclang.dylib' - /System/Library/BridgeSupport/ruby-2.3/bridgesupportparser.bundle (LoadError)
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /System/Library/BridgeSupport/ruby-2.3/bridgesupportparser.rb:6:in `<top (required)>'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Library/RubyMotion/lib/BridgeSupport/usr/bin/gen_bridge_metadata:65:in `<top (required)>'
    from /Library/RubyMotion/bin/gen_bridge_metadata:12:in `load'
    from /Library/RubyMotion/bin/gen_bridge_metadata:12:in `<main>'
rake aborted! 

It's looking for libclang.dylib on this path:

/Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.13.xctoolchain/usr/lib/libclang.dylib

But it's at this path for me:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib
amirrajan commented 7 years ago

workaround until release: cp /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.13.xctoolchain

amirrajan commented 7 years ago

Beta (attempt two):

Update BridgeSupport/pull again, and copy binaries over:

git clone https://github.com/amirrajan/BridgeSupport.git
cd BridgeSupport
git checkout high-sierra
sudo mv /Library/RubyMotion/lib/BridgeSupport /Library/RubyMotion/lib/BridgeSupport.bak
sudo cp -r ./Versions/2.0/BridgeSupport/ /Library/RubyMotion/lib/BridgeSupport

After that do:

cp /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.13.xctoolchain

amirrajan commented 7 years ago

Related: https://github.com/osxfuse/osxfuse/issues/416#issuecomment-330980225

Looks like it may be a bug in Xcode: https://github.com/osxfuse/osxfuse/issues/416#issuecomment-331238045

amirrajan commented 7 years ago

Done.

The following fixed the issue (waiting on Apple to rework their clang bindings):

  unless File.directory? "/Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.13.xctoolchain"
    File.symlink "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain",
                 "/Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.13.xctoolchain"
  end