2017-09-26 11 views
2

Xcodeに切り替えた後9エラーが発生しました。このように見えます。Xcode 9 x86システムに未定義のシンボルがあります。

enter image description here

私はプロジェクトとクラス名はブランクが、.oのサフィックスで終わるclassessのリストがあります。 Xcode 8.3.2ではすべてが動作します。私には2つのプロジェクトがあり、1つは問題なく構築しているライブラリです。もう1つのプロジェクトは、Podfileの:pathディレクティブによってライブラリを指し示すテストアプリケーションです。どちらのプロジェクトでも、ビルド設定 - >アーキテクチャは標準アーキテクチャに設定されており、アクティブなアーキテクチャのみをビルドするのはDEBUGに設定されています:はい、RELEASE:いいえ。ヘルプをいただきありがとうございます。

+0

ポッドが更新されましたか –

+0

私はちょうどそれらを更新しましたが、同じエラー –

+0

あなたはデバイスまたはシミュレータで試していますか、あなたのファイルはシミュレータをサポートしていません –

答えて

0

プロファイリングのためにビルドを実行したときに機能していましたが、古典的なビルドではエラーが発生しました。ログを検索した後、特に-fprofile-instr-generateのような奇妙なフラグがあるようです。解決策は、ライブラリープロジェクトのビルド設定でEnable Code CoverageをNoに設定することでした。これは暗闇の中に撃たれていたが、何とかそれが働いていた。

0

Cocoapodsを使用しているため、それらを更新する必要があります。

これは、プロジェクトディレクトリ内のコマンドラインでpod updateを実行し、次にXcodeでプロジェクトを再構築する必要があることを意味します。

一般に、新しいメジャーバージョンのXcodeを使用する場合、すべてのコンポーネントを再構築する必要があります。あなたのエラーメッセージはあなたが既に持っているオブジェクトファイル(* .oファイルは基本的にコンパイラがソースファイルから生成するものです)が新しくコンパイルされたオブジェクトファイルと互換性がないことを伝えています(あなたのケースで不平を言うリンカはすべてのオブジェクトファイルを結合または「リンク」する目的)。

派生データ(Xcodeキャッシュ)をクリーニングする必要があることがあります。これを行うには、XcodeのProductメニューに行き、Option/Altキーを押しながらメニュー項目 'clean build folder'を選択します。

+0

両方のプロジェクトでポッドアップデートを行い、提案した方法でビルドフォルダをきれいにしましたが、まだこれらのエラーが飛び出しました。 –

+0

両方のプロジェクトでSwiftバージョンを設定しましたか? テストアプリケーションの参照フレームワークは、新しく作成するフレームワークではなく古いフレームワークではありませんか? –

+0

あなたはあなたのアプリから依存関係をリンクされたフレームワークから削除し、再びドラッグすることができます –

1

ここに簡単なトリック:Go - >フォルダに移動 "/ Library/Developer/Xcode"削除されたデータは、次にプロジェクトをクリーンアップしてから実行します。

3

同様の問題があります。誰にでも役立つことができるように、ここに投稿してください。それはのアーカイブを構築することができなかったXcode9/Swift4にXcode8/Swift3からアップグレードした後

は我々のアプリのObjective-CのクラスBの(スウィフト3にし、自分自身によって書かれた)フレームワークのクラスAbcServiceを使用していましたリンク時にこのクラスのUndefined symbolsエラーによる設定を、リリース:

Undefined symbols for architecture arm64: 
    "_OBJC_CLASS_$__TtC15XxxabcServices17AbcService", referenced from: 

奇妙なことがあり、デバッグ設定をアーカイブうまく働いて、エミュレータで実行されているため。根本的な原因を見つけるために、ほぼ1日を過ごした

:スウィフトクラスをAbcService枠組みの中では、public修飾子がありませんでした。

+0

これで何週間も頭を掻き回していました。ありがとう!! –

関連する問題