Xcode4.5でMGTwitterEngineのlibOAuthのLinkerがおかしいと言われる場合の対処法
さーてXcode4.5GMきたぞーって思って今まで作ってたアプリを実機で動かしてみてみる。
そうすると、シミュレータではずっと動いていたのにFailed…。
ちょっとなになに何なのと思って警告を見てみると
d: file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/ssdkfk/Desktop/xxxxxx/yyyyyy/SocialComponents/Twitter+OAuth/Libraries & Headers/libOAuth.a for architecture armv7s clang: error: linker command failed with exit code 1 (use -v to see invocation)
とか言ってるんです。
[2012/9/20追記]=======================================
コメントにて、Tadaaki Goさんからご指摘いただきました!
armv7sに対応したコンパイル済みのlibOAuth.aが配布されていました!
https://github.com/bengottlieb/Twitter-OAuth-iPhone/tree/master/Twitter+OAuth/Libraries%20&%20Headers
この中のlibOAuth.oに置き換えて動かしてみたところ、問題なくiPhone4Sでも実機起動を確認いたしました。
Tadaaki Goさんありがとうございます!
===============================================
[以下、応急処置対応。一応残しておきます…]==========================
beta4で動いて、こいつじゃ動かないってことはなんなんだ…と2時間くらい色々格闘した結果、
BuildSetting>Architectures>Valid Architectures
before:
から
armv7s を削除することで解決しました。
参考1:http://apelol.blogspot.jp/2012/09/xcode45facebook-sdk.html
この「armv7」とかそういうのって、CPUのアーキテクチャ。
これらは、iPhoneのバージョンによって動く動かないがある。
今までは「armv6,armv7」だったのが今回で「armv7,armv7s」になった。
おそらく「armv7s」は、iPhone5用のアーキテクチャなのかも。
だからシミュレータだけでは動いて、実機では失敗したのかも。
でもこれはiPhone4Sでの場合。iPhone5ではまたこれでは対応できないんだろうなあ…。どうしたもんか…。
上記にて対応可能
こんにちわ。同じとこでつまづいてたらたどりつきました。
armv7s対応するにはここにアップロードされているものを利用するといいのではないでしょうか。armv7sに対応したコンパイル済みのlibOAuth.aみたいです。
https://github.com/bengottlieb/Twitter-OAuth-iPhone/tree/master/Twitter+OAuth/Libraries%20&%20Headers
ご指摘ありがとうございます!
もう配布されているなんて存じ上げませんでした…。
記事の方も更新させていただきました。本当に有難うございますー!
通りすがりの者です。実はわたしも数年前に作ったアプリを更新しようとした時に同じ問題を経験したのですが、このエントリーの情報がとても役に立ちました。どうもありがとうございました!
お役に立てたようで幸いです!