Xcode7.3でItunesConnectにUploadしようとしたらこんなエラーが出た際の対応: ERROR ITMS-90087: "Unsupported Architecture. Your executable contains unsupported architecture '[x86_64, i386]'."
Key Points
- 以下のことをやったらUpload出来た
- ただ↑以外にもCartfileをいじったりしていたので、これらが直接的な解決策かはわかりません
では、以下詳細です。
Error
このエラーが何を意味しているのかわからなかったので、調べてみた
Meaning
x86_64, i384というarchitectureは対応しておりませんよー frameworkにそれらが含まれているのでなんとかしてねー
色々調べたけど、ググるよりちゃんと訳す方が早かった。
ERROR ITMS-90087: "Unsupported Architecture. Your executable contains unsupported architecture '[x86_64, i386]'."
Build Settingをとりあえずみます。
あー確かに↑に挙げられているarchitectureは Valid Architecture に入ってない Validって言ってくるくらいだからこれ以外はInvalidなんでしょう。多分。
じゃあそのInvalidなarchitectureはどこにあるの?
Framework Search Pathを見れば分かると思うけど、Carthageの場合は、Build Phases にRun ScriptでframeworkをInput fileしているので、其処を見た方が早い。 (about carthage)
で、(SRCROOT)/Carthage/Build/iOS/にあることはわかったので中身を見てみる
frameworkの中身を見ると
あった。
とりあえず、それら↑を削除してみた
エラーがすごい。。。
scriptがあった
でもこれは前から仕込んでいたので、違う。
いらんarchitectureのframeworkを無視したいだけなのに
ふとcarthage versionを見てみると
$ carthage version 0.9.3
古い気がする
なんか訝しげなことが記載されてるし上げてみる。
ここで起きた問題はこちら
結果。
$ carthage version 0.16.2
で carthage update で全部Buildし直してみる。(必要かな?)
で再度Itunes Connect に Upload。
でも、エラーはなくならない。
copy-framework がダメ?
ググッていくと、Carthageのissueになんだか怪しげなものがあった。
Error submitting to app store with nested dependencies · Issue #353 · Carthage/Carthage · GitHub
とりあえず。Build Phaseの copy-frameworkのscriptを消して、再度upload
結果、、、
ダメ〜
何が問題だったか
色々あって解決したわけですが、以下のことをやったら解決しました。
- Linked Frameworks and Libraries に同名のframeworkが複数存在したので、それぞれ1つにした
- Navigatorのとこも同名のframeworkが複数存在したので整理した
以上です。
これらが直接的な解決策なのかはっきりいえませんが、同名のframeworkが複数存在していたのは問題だったと思います。