rubymotion-community / motion-cocoapods

Integrate 3rd-party libraries in RubyMotion for iOS / OS X projects via CocoaPods
http://rubygems.org/gems/motion-cocoapods
BSD 2-Clause "Simplified" License
203 stars 50 forks source link

SVPullToRefresh giving error about stub for message not precompiled #10

Closed brandonarbini closed 12 years ago

brandonarbini commented 12 years ago

I'm not sure if this is the right place to submit an issue related to a specific cocoapod, but I thought I'd give it a shot. It seems that SVPullToRefresh's .bridgesupport file isn't being properly generated. It is missing the UIScrollView extensions Here it is:


<?xml version='1.0'?>
<signatures version='1.0'>
<class name='SVPullToRefresh'>
<method selector='activityIndicatorViewStyle'>
<retval declared_type='int' type='i'/>
</method>
<method selector='arrowColor'>
<retval declared_type='int*' type='^i'/>
</method>
<method selector='setActivityIndicatorViewStyle:'>
<arg name='activityIndicatorViewStyle' declared_type='int' type='i' index='0'/>
<retval declared_type='void' type='v'/>
</method>
<method selector='setArrowColor:'>
<arg name='arrowColor' declared_type='int*' type='^i' index='0'/>
<retval declared_type='void' type='v'/>
</method>
<method selector='setTextColor:'>
<arg name='textColor' declared_type='int*' type='^i' index='0'/>
<retval declared_type='void' type='v'/>
</method>
<method selector='stopAnimating'>
<retval declared_type='void' type='v'/>
</method>
<method selector='textColor'>
<retval declared_type='int*' type='^i'/>
</method>
</class>
</signatures>

When I try and use the method addPullToRefreshWithActionHandler: I get the following error:

Objective-C stub for message `addPullToRefreshWithActionHandler:' type `v@:@?' not precompiled. Make sure you properly link with the framework or library that defines this message.

Any assistance would be greatly appreciated. Thanks!

lrz commented 12 years ago

Can you try again with motion-cocoapods-1.0.2 and see if you still have the same problem? Thanks!

brandonarbini commented 12 years ago

I'm getting compilation errors now:

On the first build:

     Build ./build/iPhoneSimulator-5.1-Development
     Build vendor/Pods
Build settings from command line:
    ARCHS = i386
    CONFIGURATION_BUILD_DIR = build
    SDKROOT = iphonesimulator5.1

=== BUILD NATIVE TARGET Pods OF PROJECT Pods WITH CONFIGURATION Release ===
Check dependencies

ProcessPCH /var/folders/th/2wq35smn4ms_mxpf2mvrts9w0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders/Pods-prefix-cwxlbnovsvygohbrqsutrtsgpdrm/Pods-prefix.pch.pth Pods-prefix.pch normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    cd /Users/brandon/Code/sandbox/System/vendor/Pods
    setenv LANG en_US.US-ASCII
    setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/brandon/.rvm/gems/ruby-1.9.3-p125@zencoder-system-ios/bin:/Users/brandon/.rvm/gems/ruby-1.9.3-p125@global/bin:/Users/brandon/.rvm/rubies/ruby-1.9.3-p125/bin:/Users/brandon/.rvm/bin:/opt/local/bin:/opt/local/sbin:~/Dropbox/~/bin:/usr/local/bin:/usr/local/sbin:/usr/local/Cellar/gems/1.8/bin:/usr/local/mysql/bin:/usr/local/git/bin:/usr/local/share/python:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin"
    /usr/bin/gcc-4.2 -x objective-c-header -arch i386 -fmessage-length=0 -std=gnu99 -Wno-trigraphs -fpascal-strings -Os -Wno-missing-field-initializers -Wmissing-prototypes -Wreturn-type -Wno-implicit-atomic-properties -Wformat -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-sign-compare -Wno-shorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wno-undeclared-selector -Wno-deprecated-implementations -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk -fexceptions -fasm-blocks -Wprotocol -Wdeprecated-declarations -mmacosx-version-min=10.6 -g -Wno-conversion -Wno-sign-conversion -fobjc-abi-version=2 -fobjc-legacy-dispatch "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" -D__IPHONE_OS_VERSION_MIN_REQUIRED=40300 -I/Users/brandon/Code/sandbox/System/vendor/Pods/build/Pods.build/Release-iphonesimulator/Pods.build/Pods.hmap -I/Users/brandon/Code/sandbox/System/vendor/Pods/build/include -I/Users/brandon/Code/sandbox/System/vendor/Pods/Headers -I/Users/brandon/Code/sandbox/System/vendor/Pods/Headers/SVPullToRefresh -I/Users/brandon/Code/sandbox/System/vendor/Pods/build/Pods.build/Release-iphonesimulator/Pods.build/DerivedSources/i386 -I/Users/brandon/Code/sandbox/System/vendor/Pods/build/Pods.build/Release-iphonesimulator/Pods.build/DerivedSources -F/Users/brandon/Code/sandbox/System/vendor/Pods/build --serialize-diagnostics /var/folders/th/2wq35smn4ms_mxpf2mvrts9w0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders/Pods-prefix-cwxlbnovsvygohbrqsutrtsgpdrm/Pods-prefix.pch.dia -c /Users/brandon/Code/sandbox/System/vendor/Pods/Pods-prefix.pch -o /var/folders/th/2wq35smn4ms_mxpf2mvrts9w0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders/Pods-prefix-cwxlbnovsvygohbrqsutrtsgpdrm/Pods-prefix.pch.pth -MMD -MT dependencies -MF /var/folders/th/2wq35smn4ms_mxpf2mvrts9w0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders/Pods-prefix-cwxlbnovsvygohbrqsutrtsgpdrm/Pods-prefix.pch.d
2012-05-16 15:38:48.531 xcodebuild[77170:3503]  DVTAssertions: Warning in /SourceCache/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-1197/Xcode3Sources/XcodeIDE/Frameworks/DevToolsBase/pbxcore/SpecificationTypes/XCCommandLineToolSpecification.m:817
Details:  Unable to get message category info for tool '/usr/bin/gcc-4.2'.
Reason: i686-apple-darwin11-gcc-4.2.1: no input files

Object:   <XCCompilerSpecificationClang: 0x4007feb20>
Method:   -messageCategoryInfoForExecutablePath:
Thread:   <NSThread: 0x40083f920>{name = (null), num = 4}
Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide.
i686-apple-darwin11-gcc-4.2.1: /var/folders/th/2wq35smn4ms_mxpf2mvrts9w0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders/Pods-prefix-cwxlbnovsvygohbrqsutrtsgpdrm/Pods-prefix.pch.dia: No such file or directory
cc1obj: error: unrecognized command line option "-Wno-implicit-atomic-properties"
cc1obj: error: unrecognized command line option "-Wno-deprecated-implementations"
cc1obj: error: unrecognized command line option "-Wno-sign-conversion"
cc1obj: error: unrecognized command line option "-fserialize-diagnostics"
Command /usr/bin/gcc-4.2 failed with exit code 1

** BUILD FAILED **

The following build commands failed:
    ProcessPCH /var/folders/th/2wq35smn4ms_mxpf2mvrts9w0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders/Pods-prefix-cwxlbnovsvygohbrqsutrtsgpdrm/Pods-prefix.pch.pth Pods-prefix.pch normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
rake aborted!
Command failed with status (65): [/usr/bin/xcodebuild -project "Pods.xcodepr...]

Tasks: TOP => default => simulator => build:simulator
(See full trace by running task with --trace)

On subsequent builds:

     Build ./build/iPhoneSimulator-5.1-Development
     Build vendor/Pods
    ERROR! Building vendor project `vendor/Pods' failed to create at least one `.a' library.
roysab commented 12 years ago

I'm getting a similar 'not precompiled' error when trying to use the CorePlot pod: Objective-C stub for messageplotRangeWithLocation:length:' type @@:{?=b8b4b1b1b18[8S]} {?=b8b4b1b1b18[8S]}' not precompiled. Make sure you properly link with the framework or library that defines this message.

In the code I call it like this: CPTPlotRange.plotRangeWithLocation(-6.0, length:12.0)

It looks like this results from calling .decimalValue on the params -6.0, the return type is not recognised. So I'm not sure if this error is related to the one in the first post.

I'm on Snow Leopard with ruby 1.9.2p136, cocoapods (0.5.1), motion-cocoapods (1.0.2), rubymotion 1.4. Modified the vendor.rb to remove the --no-64-bit.

EDIT: @lrz I found this ticket from you from MacRuby http://macruby.macosforge.org/trac/ticket/7 which mentions that this has to do with the bridge support class/method annotations.

EDIT: I looked at the Pods.bridgesupport file and it did not contain the CorePlot extensions, only the JSONKit ones. I added the dependency 'JSONKit' first and executed rake. Then later I added dependency 'CorePlot' and did a rake again. It seems that it did not update the Pods.bridgesupport file yet it started the app in the simulator.

When I remove the contents of the vendor folder in my project and then run rake, while having the dependency 'CorePlot' in my rakefile, it now shows an error after the build when executing gen_bridge_metadata:

In file included from /Users/roy/Dev/ios/rubymotion/Plotter/vendor/Pods/Headers/CorePlot/CorePlot-CocoaTouch.h:17:
/Users/roy/Dev/ios/rubymotion/Plotter/vendor/Pods/Headers/CorePlot/CPTGraphHostingView.h:2:24: error: UIKit/UIKit.h: No such file or directory
/usr/bin/cpp-4.2 returned 1 exit status
line was: /usr/bin/cpp-4.2 -D__APPLE_CPP__ -include /usr/include/AvailabilityMacros.h
"/Users/roy/Dev/ios/rubymotion/Plotter/vendor/Pods/Headers/CorePlot/CorePlot-CocoaTouch.h" 2>/tmp/.cpp.err
techyak commented 12 years ago

Any update on this issue? I'm getting the same problem with 'NYXImagesKit'. Oddly it works for some of the methods but not for others. I can for instance use image.verticalFlip (works just fine), but image.scaleToFitSize([51, 68]) crashes with the error:

Objective-C stub for message scaleToFitSize:' type@@:{CGSize=ff}' not precompiled. Make sure you properly link with the framework or library that defines this message.

brandonarbini commented 12 years ago

This issue seems to be resolved with the latest RubyMotion, Cocoapods, and motion-cocoapods gem. I think the bug existed in Cocoapods and has since been fixed.

techyak commented 12 years ago

Thats strange. I'm using the latest versions of all three and still getting the issue.

brandonarbini commented 12 years ago

Actually, looks like the prerelease of cocoapods is what fixed it for me.

On Jun 23, 2012, at 11:30 PM, Themios Carabas reply@reply.github.com wrote:

That strange. I'm using the latest versions of all three and still getting the issue.


Reply to this email directly or view it on GitHub: https://github.com/HipByte/motion-cocoapods/issues/10#issuecomment-6530229

lrz commented 12 years ago

Sounds like we can close this ticket :) Thanks guys for the detective work.