LoginSignup
4
5

More than 5 years have passed since last update.

【Xcode】iTunes ConnectへのアップロードでMissing 64-bit supportエラーになったときの対応方法

Posted at

iTunes Connectへのアップロードでエラー

開発しているアプリをiTunes Connectにアップロードしようとしたら iTunes Store Operation Failed とエラーになりました。

64bitError01.png

エラーメッセージには、つぎのように書いてあります。

Missing 64-bit support. iOS apps submitted to the App Store must inclued 64-bit support and be built with the iOS 8 SDK or later. We recommend using the default "Standard Architectures" build setting for "Architectures" in Xcode, to build a single binary with both 32-bit and 64-bit support.

どうやら、 『App Storeに申請するには、64-bitをサポートしていないとダメよ。Xcodeの build settingArchitecturesStandard Architectures にしてね(意訳)』とのことです。

それならそうしましょうというわけで、さっそくXcodeの設定を見てみました。

64-bit対応の設定

64bitError02.png

すると、 build settingArchitecturesStandard architectures になっています。ねんのため、 Valid Architectures も確認しましたが、 arm64 がふくまれています。

おかしいなあと思って調べてみると、stack overflowでXcode Missing 64-bit support with standard architectures enabledという記事を見つけました。

To enable 64-bit support:
You need to add "arm64" under "Valid Architectures" and set "Architecture" as "Standard Architecture" as shown in attached screenshot.
Also make sure to turn "Build Active Architectures Only" to NO.

Answerには、このように書かれています。

Valid Architecturesarm64 を追加して、 ArchitectureStandard Architecture にするんだよ。

ふむふむ、ここまでは対応している。

あと、 Build Active Architectures OnlyNO にしてね。

むっ!  Build Active Architectures OnlyNO に!

もしかしてこれのせいか!? と思って確認してみると、 DebugNO ですが、ReleaseYES になってるではありませんか。

64bitError03.png

というわけで、 Build Active Architectures OnlyReleaseYES に変えてArchiveしました。すると、Validateで無事にOKとなりました。バンザーイ。

64-bit対応してねというエラーが出たら、 Build Active Architectures Only の設定も確認してみてください。

Build Active Architectures Onlyってなに?

無事に解決しましたが、 Build Active Architectures Only ってなんだろう? なぜその設定を NO にしたら解決したのだろう? と疑問に思ったので調べてみました。

ヘルプによると Build Active Architectures Only とはつぎのような設定だそうです。

If enabled, only the active architecture is built.

アクティブなアーキテクチャーだけでビルドしてくれるそうです。ということは、おそらく32-bitのアーキテクチャーがアクティブになっていたために、32-bitでビルドしてしまったということなのでしょう。

ひとつ疑問は解消しました。しかし、この設定にどのような意味があるのか? また、どのような使い道があるのか? この疑問は残ります。

さらに調べてみると、こちらのiOSのビルド高速化 7つの方法という記事にその答えが書いてありました。

XcodeのTarget→Build Setting→Build Active Architecture OnlyでDebugだけYESにしましょう。
これをすると、ビルドしたい端末に最適なアーキテクチャでのみビルドしてくれます。
NOにすると、すべてのアーキテクチャでビルドして全最適化を行われます。
不要なアーキテクチャのビルド分時間がかかるということです。
※Releaseでは必ずNOにしましょう。

なるほど、そういうことなんですね。しかも、 ※Releaseでは必ずNOにしましょう というありがたい注釈つきです(もうすこし早く、この記事に出会いたかった)。

これですべての謎が解けました。よかったよかった。

Xcodeの設定がわかっていないと、今回のようにハマることがあります。すこしずつでも設定を理解していかないといけませんね。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5