浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【Objective-C】ビルド時に「missing required architecture x86_64 in file」エラーが発生する時の対処法

Objective-C のプロジェクトをビルドしようとしたときに遭遇したエラーについてです。
実際のエラー文は「Undefined symbol: _OBJC_CLASS_$_AudioUtils」など他多数でしたが、これではヒットしなかったため、他のそれっぽいところからキーワードを抜き出して検索しました。
抜き出したメッセージは「missing required architecture x86_64 in file」とのことで、翻訳したところ「ファイルに必要なアーキテクチャx86_64がありません」と言っていました。
…どうやら、ライブラリの参照が失敗しているよう?

で、参考にさせていただいた記事はこちらです。

自作ライブラリのリンク時に Undefined symbols for architecture エラーが発生する。
https://ez-net.jp/article/0A/7RrII9dI/1LhpEKH-QiM8/

Romo SDK 1.0でデフォルトだとiPhone5までしか対応してなかった問題と解決 – Qiita
https://qiita.com/n0bisuke/items/e7af6bc0939f308c19cf

 

まず一つ目の設定で、デバッグビルドの時のビルド設定を変更します。
TARGETS > Build Settings から「Build Active Architecture Only」を探します。
デフォルトのままの場合、こちらの設定は Debug が Yes、Release が No になっていると思いますが、こちらの DebugYesNo に変更します。
こうすることで、リリースビルドの時と同様に、全てのアーキテクチャーに対応したビルドを生成してくれるとのことです。

次に、アーキテクチャの設定を変更します。
TARGETS > Build Settings から、「Architectures」の項目を探します。
デフォルト値は「$(ARCHS_STANDARD)」なのですが、こちらを「armv7」に変更します。

上記 2点を変更したら、念のため Clean を行ってから、Build を行ってください。
私の環境ではエラーが解消されました!

…が、他のエラーが発生したので、正しく 3歩進んで 2歩下がった感が凄いです…。
前には進んでるはずなので、引き続きデバッグ頑張ります!

 

以上、Objective-C のプロジェクトをビルドしたときに「missing required architecture x86_64 in file」というエラーが発生した時の対処法でした。
ご参考になれば幸いです。

  • この記事いいね! (1)