8

Xcode 5.0 で UrbanAirship 3.0.0 にアップグレードすると、次のコードを呼び出すとエラーが発生します。

[UAirship takeOff:config];

エラーは

+[NSJSONSerialization stringWithObject:]: unrecognized selector sent to class 0x3b2ca9fc
2013-09-19 15:02:31.981 [178:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSJSONSerialization stringWithObject:]: unrecognized selector sent to class 0x3b2ca9fc'

でキー「inProduction」を「YES」に設定すると、これは表示されないようです。これは、AirshipConfig.plisttakeOff: を呼び出すと意味があります。カテゴリによるものと思われますNSJSONSerialization+UAAdditions

これについて何か助けはありますか?ありがとう

4

5 に答える 5

16

この問題を解決するには、プロジェクトのビルド設定にある「その他のリンカー フラグ」に「-ObjC」フラグを含める必要があります。

UAirship ライブラリ 3.x は Objective-C カテゴリを使用するようになったため、ランタイム例外を回避するには、このフラグを設定する必要があります。

この問題の詳細は、次の場所にあります。

https://developer.apple.com/library/mac/qa/qa1490/_index.html

ドキュメントを更新しました:

http://docs.urbanairship.com/build/ios.html#build-settings http://docs.urbanairship.com/topic_guides/ios_migration.html#linker-flags

于 2013-09-20T17:27:36.127 に答える
0

ソースで起こっているようには見えません: https://github.com/urbanairship/ios-library

于 2013-09-19T18:09:29.230 に答える
0

追加するだけで、私の問題は、に-ObjCフラグをproject追加したことであり、設定に追加する必要がありtargetます。

また、それがコンパイルされない場合は、別のオプションがあります

-Wl,-force_load,<PathToYourLib>/libUAirship-4.0.0.a    

また、ターゲットに追加する必要があります。の代わりに lib への実際のパスを入力します<PathToYourLib>

于 2014-07-10T00:42:43.227 に答える
0

両方のライブラリが含まれている必要があります。

  • libUAirship-3.0.0.a
  • libUAirship-iOS5-3.0.0.a

それぞれの iOS のライブラリのいずれかを使用する必要があります。

于 2013-09-20T06:41:21.570 に答える