7

ShareKitをMonoTouchでどのように使用しますか?

GitHubのMonoTouchBindingsプロジェクトには、ShareKitのバインディングがあるようですが、それらを機能させることができません。現在、MonoDevelopでMonoTouchを使用して開発されたiPhoneアプリケーションがありますが、ShareKitを実際にアプリケーションに組み込む方法がわかりません。

MonoTouch Bindingsプロジェクトをダウンロードしましたがmake、ShareKitディレクトリにいると、ShareKit自体が必要なようです。次にShareKitをダウンロードしましたが、ShareKitをXCodeプロジェクトに統合するためのインストール手順に従う必要があるのか​​、それともShareKitをビルドする必要があるのか​​さえわかりません。ShareKitを使用して空のiPhoneアプリケーションプロジェクトを「構築」しようとしましたが、手順の一部が最新のXCodeに対応していないようで、プロセスに行き詰まってしまったようです。私はこれを機能させようとしていますが、これまでのXCodeでの経験は、MonoTouch開発に必要なものに限られていました。

または、MonoTouchで使用できる「プリコンパイルされた」ShareKit iOSバイナリはありますか?

ShareKitが実際にMonoTouchで使用可能であることを確認し、それを機能させるために必要な手順を教えてもらえますか?

前もって感謝します!

4

2 に答える 2

5

ほとんどの場合、MonoTouchでバインディングを使用する場合は、実際のライブラリのバインディング(またはSDK)をダウンロードする必要があります。たとえば、TestFlightバインディングでは、SDKをダウンロードして、makefileと同じディレクトリに配置する必要があります。私はShareKitを個人的に試したことがありませんが、同じように機能すると思います(MTバインディングGitHubプロジェクトのバインディングのすべてではないにしてもほとんどがそのように機能することを私は知っています)。Xcodeを扱う必要はまったくありません。SDKをダウンロードし、正しいディレクトリに配置して、makefileを実行するだけです。これにより、MonoTouchで使用するために参照できるDLLが吐き出されるはずです。

ShareKitバインディングを使用する際の制限の1つは、私が知る限り、リンカーを使用する前に、Objective-CでUIの調整を行う必要があることです。すぐに使用できるUIに問題がなければ、私はそれを選びます。それ以外の場合は、簡単な共有ダイアログを作成するためのオープンソースライブラリが他にもたくさんあります(TwitterがiOSに組み込まれているので、さらに簡単です)。

于 2012-06-08T15:43:00.953 に答える
2

最初に getsharekit.com からダウンロードしましたか、それとも ShareKit 2.0 を使用していますか? getsharekit の DL を使用している場合は、最初にアップグレードすることを強くお勧めします。次に、ShareKit を MonoTouch で動作させるための基本的なインストール手順を次に示します。

手順

1) コードをダウンロードする

2)Xcodeで開き、アプリの場合はiOSライブラリタイプの新しいXcodeプロジェクトを作成します

3) ライブラリをコンパイルし、必要なフレームワークをメモします。これらは、後でモノタッチでリンクするときに役立ちます。

3) lib の i386 Sim バージョンをコンパイルし、名前を libXYZLib_Sim.a に変更します。これをプロジェクトの /Lib にコピーし、そのビルド アクションを None に設定します。これは /ProjectLib/build/Debug-iphonesimulator/ の下にあります。

4) arm6 バージョンを正しいバージョンでコンパイルし、これをプロジェクトの /Lib にコピーして、ビルド アクションを None に設定します。これは /ProjectLib/build/Debug-iphoneos/ にあります。

5) .h ファイルを含むライブラリ ディレクトリに対して、NovellHeaderParser を実行します。

@@ mono "/Users/XX/Projects/NovellHeaderParser/NovellHeaderParser/bin/Debug/NovellHeaderParser.exe" /Users/XX/Documents/ShareKitLib/ShareKit/Core @@

これにより、システムにインポートできる MonoMac.cs ファイルが生成されます。

6) 他のディレクトリに対して手順 5 を繰り返します。注: 実際には、API が直接呼び出すトップレベル クラスなどのエントリ ポイントを含む .h ファイルに対してパーサーを実行するだけで済みます。サブクラス、ユーティリティ、ヘルパー メソッドは解析する必要はありません。

7) すべての MonoMac.cs ファイルを新しい MyLib.cs ファイルに結合し、それを /Lib の下のプロジェクトに追加します - そのビルド オプションを None に設定します

8) MonoMac から MonoTouch への参照をすべて変更します。

10) パーサー、解析された各ディレクトリに対して enum.cs ファイルを作成する場合がありますが、API が必要とする構造体または列挙型を使用して MyLibEnum.cs という名前の独自のファイルを作成しない場合は、/Lib に追加し、ビルド オプションを None に設定します。

11) ターミナル ウィンドウを開き、プロジェクトの /Lib ディレクトリに移動します。

12) 次の btouch コマンド ラインを実行します。これにより、MyLib.cs @@ /Developer/MonoTouch/usr/bin/btouch -v MyLib.cs -s MyLibEnum.cs @@ で定義されたインターフェイスから wrapper.dll が作成されます。

13) 欠落している列挙型または構造体を MyLibEnum.cs に追加し、手順 12 を繰り返します。

14) 名前を変更して、セレクターの複数の宣言を修正します。後で問題が発生する可能性があります (注 1 を参照)。

15) 欠落している参照を修正します。たとえば、NSMutableArray は monotouch に存在しないように見えるので、これらを NSArrays に変更します (これらは monotouch で変更可能だと思います???)

16) 12) に戻り、dll が生成されるまで繰り返します。

17) dll への参照をプロジェクトに追加します。

18) 以下を iPhone ビルドに追加 > 追加の mtouch オプションをシミュレーターのデバッグ/リリース ビルドに追加: @@ -gcc_flags "-L${ProjectDir}/Lib -lMyLib_Sim -framework QuartzCore -framework CoreGraphics -framework MessageUI -framework Security -framework UIKit -framework CFNetwork -force_load ${ProjectDir}/Lib/libMyLib_Sim.a -ObjC" @@

'''知らせ'''

末尾なし / on -L${ProjectDir}/Lib

-lShareKitLib_Sim は、開始 lib プレフィックスまたは .a サフィックスを必要としません。

lib の作成に使用されるフレームワークごとに 1 つの -framework を追加します - 上記は完全なリストではありません

19) iPhone ビルドに以下を追加 > IPHONE デバッグ/リリース ビルドに mtouch オプションを追加: @@ -gcc_flags "-L${ProjectDir}/Lib -lMyLib -framework QuartzCore -framework CoreGraphics -framework MessageUI -framework Security -framework UIKit -framework CFNetwork -force_load ${ProjectDir}/Lib/libMyLib.a -ObjC" @@

20) テストしてみよう!

于 2012-06-13T17:31:56.400 に答える