3

Chartboost SDK の最新バージョン用の Monotouch iOS バインディングを作成しました。iOS 6 シミュレーターで実行すると正常に動作しますが、iOS 5 シミュレーターでは失敗します。

エラーメッセージ:

NSInvalidArgumentException reason: -[__NSCFDictionary setObject:forKeyedSubscript:]: unrecognized selector sent to instance 0x11b8cce0

0   blockpuzzle      0x0016c94e mono_handle_exception_internal_first_pass + 2190
1   blockpuzzle      0x0016e392 mono_handle_exception_internal + 1602
2   blockpuzzle      0x0016eedf mono_handle_exception + 47
3   blockpuzzle      0x001b2012 mono_x86_throw_exception + 306
4   ???              0x09bc5f8f 0x0 + 163340175
5   blockpuzzle      0x002f40ee monotouch_exception_handler + 158
6   CoreFoundation   0x038ce12c __handleUncaughtException + 76
7   libobjc.A.dylib  0x03a5ff43 _objc_terminate + 86
8   libc++abi.dylib  0x03f738de _ZL19safe_handler_callerPFvvE + 13
9   libc++abi.dylib  0x03f73946 __cxa_bad_typeid + 0
10  libc++abi.dylib  0x03f74ab2 _ZL23__gxx_exception_cleanup19_Unwind_Reason_CodeP17_Unwind_Exception + 0
11  libobjc.A.dylib  0x03a5fe15 _objc_exception_destructor + 0
12  CoreFoundation   0x038cfced -[NSObject doesNotRecognizeSelector:] + 253
13  CoreFoundation   0x03834f00 ___forwarding___ + 432
14  CoreFoundation   0x03834ce2 _CF_forwarding_prep_0 + 50
15  blockpuzzle      0x00026777 -[CBAPIConnection sendRequest:success:failure:] + 1175
16  blockpuzzle      0x000262db -[CBAPIConnection sendRequest:success:] + 55
17  blockpuzzle      0x0002361f -[Chartboost startSession] + 468
at (wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging.void_objc_msgSend (intptr,intptr) <IL 0x0000a, 0x0002c>
at com.blueriver.chartboost.Chartboost.startSession () <IL 0x00016, 0x00028>

プロジェクトの iOS ビルド SDK バージョンを 6.1 に設定し、デプロイ ターゲット (最小 OS バージョン) を 4.3 に設定しました。

私は何が欠けていますか?

[更新] バインドをペーストビンに置きました: http://pastebin.com/KfTztyDP。多分それはいくつかの助けです。

4

2 に答える 2

2

ここのdalexsotoによる回答のおかげで答えが見つかりました: MonoTouch "unrecognized selector sent to instance" not working on iOS5 (but dos on iOS6)

lib arclite.a を Monotouch バインディング プロジェクトに追加するだけで、うまくいきました。

誰かが同じまたは同様の問題を抱えている場合は、https://github.com/PSPDFKit/XamarinBindings/tree/master/AlexTouch.PSPDFKitからそのライブラリをダウンロードして、バインディング プロジェクトに追加してください。
新しい Xamarin Studio のおかげで、バインディングによって作成された dll をいじる必要はありません。メイン プロジェクトにバインディング プロジェクトへの参照を追加するだけで、すべて問題ありません。

于 2013-05-08T11:43:25.333 に答える