Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Potential fix for #456 #457

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Potential fix for #456 #457

wants to merge 1 commit into from

Conversation

markrickert
Copy link
Collaborator

@rromanchuk can you please verify?

Not sure why actually opening the class and including works and sending :include doesn't.

@rromanchuk can you please verify?

Not sure why actually opening the class and including works and sending `:include` doesn't.
@rromanchuk
Copy link
Contributor

checking now, thanks for the quick reply @markrickert

@markrickert
Copy link
Collaborator Author

👍 Specs passed locally, so travis should be good. If it all works out I'll merge and publish a bugfix release.

@markrickert
Copy link
Collaborator Author

Also, I really appreciate the demo project that reproduces the bug.

💯 internet points you you, sir!

@rromanchuk
Copy link
Contributor

@markrickert OK getting closer, it now no longer fails on string.rb but composer.rb, is this some sort of internal RM class? I don't see thing being related to BW?

Link ./build/iPhoneOS-7.0-Release/Frontback.app/Frontback
Undefined symbols for architecture armv7:
  "_NSString", referenced from:
      _MREP_B2BE8E9878674677B02706F6A9100B76 in composer.rb.o
     (maybe you meant: _NSStringFromFBSDKLikeControlStyle, _NSStringFromFBSDKLikeControlHorizontalAlignment , _NSStringFromFBSDKLikeControlAuxiliaryPosition , _NSStringFromFBSDKAppGroupPrivacy , _NSStringFromFBSDKShareDialogMode , _Init_NSString , _NSStringFromFBSDKLikeObjectType )
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
rake aborted!
Command failed with status (1): [/Applications/Xcode.app/Contents/Developer...]
/Library/RubyMotion3.9/lib/motion/project/builder.rb:329:in `build'
/Users/ryan/.rvm/gems/ruby-2.2.1/gems/motion-env-0.0.4/lib/motion-env/builder.rb:32:in `build_with_env'
/Library/RubyMotion3.9/lib/motion/project/app.rb:78:in `build'
/Users/ryan/.rvm/gems/ruby-2.2.1/gems/motion-cocoapods-1.7.0/lib/motion/project/cocoapods.rb:53:in `build_with_cocoapods'
/Library/RubyMotion3.9/lib/motion/project/template/ios.rb:74:in `block (2 levels) in <top (required)>'
/Users/ryan/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `eval'
/Users/ryan/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => production => archive => build:device
(See full trace by running task with --trace)

@rromanchuk
Copy link
Contributor

@markrickert although, let me try with a clean repo, i don't trust rake clean, especially with the recent change in .build folder locations

@markrickert
Copy link
Collaborator Author

@markrickert
Copy link
Collaborator Author

 |2.1.0| Marks-MacBook-Pro-2 in ~/Documents/Rickert/BubbleWrap
± |fix-456 ✓| → find . -name "*composer*"

I'm not seeing any files named "composer" in bubblewrap.

I'm getting a different error in your example repos:

 |2.1.0| Marks-MacBook-Pro-2 in ~/Desktop/DebugFacebookSDK
± |master ✗| → r
     Build ./build/iPhoneSimulator-8.3-Development
   Compile /Users/mrickert/Documents/Rickert/BubbleWrap/motion/core/string.rb
      Link ./build/iPhoneSimulator-8.3-Development/FacbookIntegration.app/FacbookIntegration
ld: warning: too many personality routines for compact unwind to encode
    Create ./build/iPhoneSimulator-8.3-Development/FacbookIntegration.app/Info.plist
    Create ./build/iPhoneSimulator-8.3-Development/FacbookIntegration.app.dSYM
      Copy ./build/iPhoneSimulator-8.3-Development/FacbookIntegration.app.dSYM
  Simulate ./build/iPhoneSimulator-8.3-Development/FacbookIntegration.app
(main)> Objective-C stub for message `startWithCompletionHandler:' type `@@:@?' not precompiled. Make sure you properly link with the framework or library that defines this message.

================================================================================
The application terminated. A crash report file may have been generated by the
system, use `rake crashlog' to open it. Use `rake debug=1' to restart the app
in the debugger.
================================================================================

@rromanchuk
Copy link
Contributor

@markrickert haha nice. Ok on my debug project it's building, Oh yeah, there are actually two ongoing problems with facebook right now, that was the first one. But if you got there it looks like it's working fine.

@markrickert
Copy link
Collaborator Author

Looks like in my debug project i'd have to define some "ghost methods" in rubymotion to make sure they're precompiled from the objective-c world. I'm assuming you've done that and know what I mean, but if not, i can point you in the right direction.

@rromanchuk
Copy link
Contributor

The error you are seeing there is from an incorrect bridge support definition, but that's unrelated to this. It looks like my production project isn't working because of build cruft/cache, going to nuke everything and try again, but it's a good sign the debug project is working now.

@markrickert
Copy link
Collaborator Author

Cool. Let me know and I'll merge this and release version 1.8.1

@rromanchuk
Copy link
Contributor

@markrickert i'm curious, do you have any idea where composer.rb comes from? Maybe i'm losing my mind, but i can't find this file anywhere or who is responsible for it, could it be some dynamically generated build file?

@markrickert
Copy link
Collaborator Author

No clue...

https://github.com/HipByte/RubyMotion/search?q=composer&type=Code&utf8=%E2%9C%93

I'm not seeing that error, so maybe it's from another cocoapod or gem?

@rromanchuk
Copy link
Contributor

Ughhh, i found it ./.rvm/gems/ruby-2.0.0-p353/gems/twittermotion-0.0.2/lib/twittermotion/composer.rb

@rromanchuk
Copy link
Contributor

@rromanchuk
Copy link
Contributor

@markrickert sent you a msg on gitter

@rromanchuk
Copy link
Contributor

@markrickert ok, so it turns out it's even more general, here is a reproducible project that is distilled down

https://github.com/rromanchuk/BrokenNSString

@markrickert
Copy link
Collaborator Author

OK, it seems to be an actual RubyMotion issue... I'll hold off on merging this for now till you hear back from HipByte.

@markrickert
Copy link
Collaborator Author

Looks like this may be resolved in RM 3.12.

@rromanchuk can you test and see?

= RubyMotion 3.12 =

  * [Android] Added support for Android M (experimental). To target it, set
    `app.api_version' to `MNC'.
  * [Android] Improved Object#raise to accept an exception class or instance.
  * [Android, iOS, OSX] Introduced a new experimental file dependency resolver.
    If you have any file dependency manually specified in the Rakefile, the new
    resolver should make those unnecessary. To try it, set the environmental
    variable "experimental_dependency" (e.g. 'rake experimental_dependency=1').
    The new resolver will become the default in a future release.
  * [iOS] Fixed "duplicate symbol" error when it would build app for iOS device
    using Xcode 6.2.
  * [iOS] Fixed a bug where the latest version of the Facebook iOS SDK would
    not compile correctly.
  * [iOS, OSX] Improved compilation time for projects that have many source
    files. 2~ times faster.

@markrickert
Copy link
Collaborator Author

@rromanchuk can you verify that this is fixed in > RM 3.12 and I'll close this PR?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants