忍者ブログ
  • 2024.10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 2024.12
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2024/11/22 13:59 】 |
all_loadやら
AdColonyのSDKを導入していて、エラーが出た。


+[NSData adc_dataWithWeaklyEncryptedBase64EncodedString:]: unrecognized selector sent to class 0x25db7e0"


こんな感じ。
同じ問題にぶつかっている人も→いた


adcというのはおそらく AdColony の略だし、要するに、NSDataの拡張(Extension)が読み込まれていないということだろう。

それに対応するため、
Other Linker Flagsに

-ObjC


を追加しろ、とAdColonyのマニュアルには書いてある。ここ

これはObjective-Cのイマイチなところだ。


しかしこれで別のところに問題が出た。


Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_GCController", referenced from:
objc-class-ref in libcocos2dx iOS.a(CCController-iOS.o)
(maybe you meant: _OBJC_CLASS_$_GCControllerConnectionEventHandler)
"_GCControllerDidDisconnectNotification", referenced from:
-[GCControllerConnectionEventHandler observerConnection:disconnection:] in libcocos2dx iOS.a(CCController-iOS.o)
"_GCControllerDidConnectNotification", referenced from:
-[GCControllerConnectionEventHandler observerConnection:disconnection:] in libcocos2dx iOS.a(CCController-iOS.o)



どうやらcocos2d-xのどこかに、未定義の変数が残っているようだ。
GCController***
という名前のものらしい。
該当するソースを読んでみると、どうもコントローラー対応周りの実装だ。

というわけで、
GameController.framework
をプロジェクトに追加して再ビルドしてみる。

…するとうまく行った。

同じ要領で、
GoogleAnalytics周りでもエラーが起きた。
これは
libsqlite3.dylib
libAdIdAccess.a
を追加することで治る。


◯まとめ

・実装があるはずなのにリンクエラーになるメソッド、変数などは
-all_load(または-ObjC)を付加するとうまくいく

・-all_loadをつけたことでエラーになる場合は、実装がプロジェクトに追加されていない。
実装がありそうなライブラリ、フレームワークを予想して追加してみる



本当は、-all_loadってむやみに使いたくない。実行ファイルが大きくなるから。
各社SDKは考慮しておいてほしいところ。



PR
【2015/04/30 20:11 】 | iPhone | 有り難いご意見(0)
<<Androidのアプリ内課金処理 | ホーム | cocos2d-xでのデバイスの画面サイズ調整方法>>
有り難いご意見
貴重なご意見の投稿














<<前ページ | ホーム | 次ページ>>