7

RubyMotion では、サード パーティ コードをベンダー化するための次の手順を提供しています: http://www.rubymotion.com/developer-center/guides/project-management/#_files_dependencies

Parse.com の iOS SDK を追加しようとしています。これを XCode プロジェクトに追加する手順は次のとおりです: https://parse.com/apps/quickstart#ios/existing。ただし、RubyMotion を使用しているため、XCode は使用していません。

ここで私の試みを文書化しました:https://github.com/adelevie/RubyMotionSamples/commit/603bf4428995bb203cce7e7e8e6989d6e86bda3b

そして、ここに私が得ているエラーがあります: https://gist.github.com/2595284

4

3 に答える 3

8

ここでは実際に静的ライブラリを扱っていると思いますので、2 番目のオプションとして :Xcode ではなく :static を指定する必要があると思います。

Rakefile に次のコードを含めると、アプリはコンパイルされます。

    app.libs << '/usr/lib/libz.1.1.3.dylib'
    app.frameworks += [
        'AudioToolbox',
        'CFNetwork',
        'SystemConfiguration',
        'MobileCoreServices',
        'Security',
        'QuartzCore']

    app.vendor_project('vendor/Parse.framework', :static,
        :products => ['Parse'],
        :headers_dir => 'Heiders')

ただし、Parse setApplicationId メソッドを実行すると、次のエラーが発生します。

(main)>> Objective-C stub for message `setApplicationId:clientKey:' type `v@:@@' not precompiled. Make sure you properly link with the framework or library that defines this message.
于 2012-05-04T18:03:36.717 に答える
2

リンクされているドキュメントには、「RubyMotion プロジェクトでサードパーティ ライブラリを販売するには、ソース コードがファイル システムのどこかで利用可能でなければなりません」と書かれています。したがって、そこに .framework ファイルをドロップしてもうまくいかないと思います。

parse.com/docs から「Blank Xcode w/ SDK」と呼ばれる ParseStartProject をダウンロードしてみてください。そのプロジェクト フォルダーを販売すると、RubyMotion は探しているような xcode プロジェクトを見つけることができます。もちろん、プロジェクトには Parse.framework のみを含める必要があるため、xcode プロジェクトから .m ファイルと .h ファイルを削除する必要があります。

私は実際にこれを試していません。動作するようになったらお知らせください。

于 2012-05-04T16:43:47.950 に答える
1

これをRubyMotionグループの回答からコピーしました。スタブエラーメッセージが修正されたようです。

ここで、これを機能させるために、/ Library / RubyMotion / lib / motion / project / vendor.rbを変更し、38行目のDir.globを次のように変更しました。

source_files = (opts.delete(:source_files) or Dir.glob('*. 
{c,m,cpp,cxx,mm,h}')) 

に:

source_files = (opts.delete(:source_files) or Dir.glob('**/*. 
{c,m,cpp,cxx,mm,h}'))

http://groups.google.com/group/rubymotion/msg/0efa74214523d0f5

于 2012-05-09T11:28:42.780 に答える