web-dev-qa-db-ja.com

"architecture architecture arm64からx86_64へのマッピング"という警告はどういう意味ですか?

私のフレームワークをXcode 10 beta(10L176w)に移行した後、私は以下のような警告を出し始めました:

アーキテクチャarm64をx86_64にマッピングします。このターゲットの[Architectures]および[Valid Architectures]ビルド設定がiOSシミュレータプラットフォーム用に正しく設定されていることを確認してください。

...そして:

アーキテクチャarmv7からi386へのマッピング。このターゲットの[Architectures]および[Valid Architectures]ビルド設定がiOSシミュレータプラットフォーム用に正しく設定されていることを確認してください。

これらの警告にもかかわらず、ビルドと単体テストはすべて問題なく合格します。私はSwift 4.2を使っています。

それでも、これらの警告は何ですか?

52
Anton Bronnikov

ビルド設定に行き、以下のようにしてください。

enter image description here

60
Hassan Taleb

Valid Architectures設定を$(ARCHS_STANDARD)に変更してArchitectures設定と一致させることで、これらの警告を黙らせることができました。

奇妙なことに、これは(デフォルト設定のarmv7 arm64とは対照的に)armv7 armv7s arm64として表示されていましたが、手動でその値に設定しても警告が発生しました。その意味が何であるかはわかりませんが、私はまだテストで問題に気づいていません。

35
John Montgomery

ターゲットまたはそのプロジェクトに対して、VALID_ARCHS( "Valid Architectures")ビルド設定がオーバーライドされている可能性があります。これは、どの実行先にビルドしているかに基づいて自動的にその値を取得するビルド設定です。この上書きがどこから来たのかを把握したら(上書きされるとビルド設定は太字で表示されます)、それを選択してdeleteキーを押すとデフォルト値に戻ります。

19
Rick Ballard

他の答えと同様に、私は$(VALID_ARCHS)(Valid Architectures)を$(ARCHS_STANDARD)に変更することによって警告を取り除くことができました。そこから、すべての派生データを消去し、Xcode 10.0を再起動しました。これで警告は完全に消えました。 Valid Architecturesからすべてを削除すると、異なる警告が表示されるだけです(「有効なアーキテクチャが見つかりません」)。

4
jldailey

警告を報告するTARGETの場合は、[有効なアーキテクチャ]設定を次のように変更します。

$(VALID_ARCHS)
x86_64

enter image description here

4
Quanhua Guan

解決方法は簡単です。有効なアーキテクチャでは、arm64をx86_64に置き換えるだけです。

私のプロジェクトで同様の問題と次の3つの警告がありました: Had similar issue and the following warning in my project

私の有効なアーキテクチャはもともと ---My **Valid Archtectures** originally were

交換します。

  • i386とのarmv7、
  • i386搭載のarmv7、
  • そして、arm_64とx86_64

(警告で述べたように)私の解決策でした。 有効なアーキテクチャ設定の結果は次のとおりです。

Replacing armv7 with i386, armv7s with i386, and, arm64 with x86_64 as mentioned in the Warnings was my solution

置き換え後、上記の3つの警告は消えました。

アーキテクチャに関するより深い情報はここで見つけることができます: https://docs.elementscompiler.com/Platforms/Cocoa/CpuArchitectures/

私はXcodeでこの警告を定式化することは少し混乱していると思います。

お役に立てれば

0
CGN

IOSとMac OSの両方でコードをコンパイルしようとしたときに、この警告が表示されました。私は最初にHassan Talebが彼の答えで提案したことをすることによってそれを回避することができました:有効なiPhoneアーキテクチャだけがそこにあるようにアーキテクチャを片付けなさい。そして最後に、Mac OS用にビルドできることを維持するために、プラスのボタンが表示されるように、有効アーキテクチャ上にマウスを動かします。それをクリックすると、必要に応じて、さまざまなCPUアーキテクチャなど、さまざまなプラットフォーム用に個別の設定を追加できます。 macOS SDKの場合は、必要に応じて有効アーキテクチャをx86_64だけに設定できます。 For macOS SDK, I can set my Valid Architectures to just x86_64 if I want

0
joelliusp