読者です 読者をやめる 読者になる 読者になる

うちのいぬ Tech Blog

Tech Blog of Uchinoinu/My dog

Xcode7.3でItunesConnectにUploadしようとしたらこんなエラーが出た際の対応: ERROR ITMS-90087: "Unsupported Architecture. Your executable contains unsupported architecture '[x86_64, i386]'."

Key Points

  • 以下のことをやったらUpload出来た
    • Linked Frameworks and Libraries に同名のframeworkが複数存在したので、それぞれ1つにした
    • Navigatorのとこも同名のframeworkが複数存在したので整理した
  • ただ↑以外にもCartfileをいじったりしていたので、これらが直接的な解決策かはわかりません

では、以下詳細です。

Error

f:id:susanne:20160525215517p:plain

このエラーが何を意味しているのかわからなかったので、調べてみた

Meaning

x86_64, i384というarchitectureは対応しておりませんよー frameworkにそれらが含まれているのでなんとかしてねー

色々調べたけど、ググるよりちゃんと訳す方が早かった。

ERROR ITMS-90087: "Unsupported Architecture. Your executable contains unsupported architecture '[x86_64, i386]'."

Build Settingをとりあえずみます。

f:id:susanne:20160525215956p:plain

あー確かに↑に挙げられている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の中身を見ると

f:id:susanne:20160525220513p:plain

あった。

とりあえず、それら↑を削除してみた

f:id:susanne:20160525221155p:plain

エラーがすごい。。。

scriptがあった

stackoverflow.com

でもこれは前から仕込んでいたので、違う。

いらんarchitectureのframeworkを無視したいだけなのに

ふとcarthage versionを見てみると

$ carthage version
0.9.3

古い気がする

f:id:susanne:20160525231256p:plain

なんか訝しげなことが記載されてるし上げてみる。

ここで起きた問題はこちら

uchinoinu.hatenablog.jp

結果。

$ 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が複数存在していたのは問題だったと思います。