1

monotouch (xamarin studio) にバインドしたい Objective-C のライブラリがあります。このライブラリは、サード パーティ ベンダーからダウンロードしたフレームワーク (「Firebase」フレームワーク) を使用しています。ライブラリをコンパイルし、XCode で問題なくビルドしてから、i386 および armv7 アーキテクチャ用の .a ファイルを作成し、lipo を使用して lib.a ファイルを生成しました。ここで、バインディング プロジェクトを作成し、それに .a ファイルを追加しました。これにより、.linkwith.cs ファイルが生成されました。ただし、バインディング プロジェクトを使用すると、次のエラーが発生しました。

「ld: フレームワークが見つかりません Firebase」

私の質問は - Firebase フレームワークを指定するにはどうすればよいですか? 私はこれを試しました:

[assembly: LinkWith ("libtestfirebaseclient.a", LinkTarget.ArmV7 | LinkTarget.Simulator, ForceLoad = true, Frameworks = "CFNetwork Security Foundation Firebase")] 

しかし、まだ問題は解決していないようです。サードパーティのフレームワークに依存する obj-c ライブラリのバインディングを作成する方法を教えてもらえますか?

4

2 に答える 2

2

おそらくプラットフォームとして参照する必要はありませんがFirebase、代わりに ( に含まれていない場合libtestfirebaseclient.a) 新しい LinkWith 属性を追加します。

[assembly: LinkWith ("libtestfirebaseclient.a", LinkTarget.ArmV7 | LinkTarget.Simulator, ForceLoad = true, Frameworks = "CFNetwork Security Foundation")]
[assembly: LinkWith ("libfirebase.a", LinkTarget.ArmV7 | LinkTarget.Simulator, ForceLoad = true, Frameworks = "CFNetwork Security Foundation")]
于 2013-03-07T08:19:09.527 に答える
1

ApiDefinition.csファイルを完成させ、StructsAndEnums.csファイルで必要なすべての列挙型などを定義するなど、必要なすべてのプロセスを完了していることを確認することをお勧めします。また、LinkWithFrameworksセクションにFirebaseを含める必要はないと確信しています。

私の意見では、それを理解する最良の方法は、monotouch-bindingsリポジトリにバインドされている既存のライブラリを調べて、すべてをどのようにレイアウトする必要があるかを正確に確認することです。バインドされているライブラリをダウンロードし、それぞれがどのように対応するかを確認し、プロジェクトに対して同じことを行います。

XamarinのWebサイトには、Objective-Cライブラリのバインドに関する詳細なガイドと、参照としてのバインドタイプリファレンスガイドがあります。

于 2013-03-06T21:45:11.470 に答える