AdLantisを使った時はまって泣きそうになった件 その1 ld: duplicate symbol _OBJC_IVAR_$_Reachability.reachabilityRef

iPhoneアプリの広告にAdLantisを用いて表示を行おうとした際に、色々と引っ掛かったのでメモ。

http://tn.adlantis.jp/iPhoneAppOwner/adlantis-iphone-sdkからダウンロードしてきて、とりあえずフォルダごと放り込んでビルドしてみた。

そうすると特別なことは何もしていない(AdLantisを放り込んだじゃないかというツッコミは無しで)のに

のようにリンクエラーが発生しました。

リンクエラーって何が起こるか解らないから大嫌いな私としては困り果ててしまったのですが、

諦めるわけにもいかなかったのでlogを読み読み。

すると

ld: duplicate symbol _OBJC_IVAR_$_Reachability.reachabilityRef

なるものが・・・duplicateになるようなものなんて読み込んでないぞ?

おかしいな〜と思ってにらめっこしてみたら、

 ./adlantis_sdk/asihttprequest/External/

の中にいた Reachability が元々読み込んでいた Sharekit内にあったReachabilityとバッティングしてしまっていたみたい。

adlantisの中にあったReachabilityを削除すると何かしらエラーが出てくるので、ShareKitの中に合ったReachabilityの参照を外すことにしました。

私の場合は問題なかったんですが、何らかの特殊なコードを埋め込んでいた人とかは大変だろうなぁ・・・

今回はShareKit内のReachabilityでバッティングしたけど、昔書いたコードの再利用の際に発生する可能性が非常に高いので注意するべきなんだろうなぁ。