「アーキテクチャarm64をx86_64にマッピングする」という警告はどういう意味ですか?


95

フレームワークをXcode10ベータ(10L176w)に移行した後、次のような警告が表示され始めました。

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

...そして:

アーキテクチャarmv7をi386にマッピングします。このターゲットのアーキテクチャと有効なアーキテクチャのビルド設定がiOSシミュレータプラットフォーム用に正しく構成されていることを確認してください。

これらの警告にもかかわらず、ビルドとユニットテストはすべてOKに合格します。私はSwift4.2を使用しています。

それでも、これらの警告は何についてですか?


ARCHS = $(ARCHS_STANDARD_64_BIT)およびを使用して64ビットのみをビルドしようとしたときに設定するとこれが表示されますVALID_ARCHS = $(inherited) x86_64 i386
Kdawgwilk 2018

回答:


101

ビルド設定に移動し、以下に示すように実行します

ここに画像の説明を入力してください


5
確認しました。これでうまくいきました。理由はわかりませんが、プロジェクトとターゲットの両方のビルド設定で、これらの設定が太字で強調表示されています。次に、上記のように(両方の場所で!)削除しました。これにより、太字のハイライトが削除され(明らかにデフォルトに戻りました)、警告は消えました
Nick Entin 2018年

23
明確にするために、これはプロジェクトとターゲットの両方で実行する必要があります。
パルミ2018年

2
いい答えです、私はこれが解決策になることを提案します。
ハイダーサティ

8
削除すると、Resolvedに何も表示されず、次のようになりますThere are no valid architectures to compile for because the VALID_ARCHS build setting is an empty list
Crystal

2
もう動かないようです。Crystalが
Xcode11

70

私は変更することにより、これらの警告を黙らせることができた有効なアーキテクチャをに設定$(ARCHS_STANDARD)私の一致するアーキテクチャを同様に設定します。

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


2
この設定は、iOSとmacOSの両方を対象とする「ユニバーサル」フレームワークで機能しました。
ジョン

1
それが私の解決策でした。プロジェクトとターゲットで有効なアーキテクチャを設定しました:$(ARCHS_STANDARD)。ありがとう。
CGN

2
@CGNプロジェクトでどのように設定しましたか?ターゲットを正常に設定しました。
Erum

@Erum:以下の2つのスクリーンショットを参照してください
CGN

27

ターゲットまたはそのプロジェクトのいずれかで、VALID_ARCHS(「有効なアーキテクチャ」)ビルド設定が上書きされている可能性があります。これは、ビルドする実行先に基づいて値を自動的に取得するビルド設定です。このオーバーライドがどこから来ているのかがわかったら(オーバーライドするとビルド設定が太字で表示されます)、それを選択してDeleteキーを押すと、デフォルト値に戻ります。


1
このエラーも表示されます。設定を上書きしていませんVALID_ARCHSarm64デバッグとリリースの両方が含まれています。
funkenstrahlen 2018年

10
これは
Xcode10の

5
これは、Xcode 10のリリースバージョンでも表示されるようですが、これに関する更新はありますか?
plivesey 2018

1
me2、私はこれについてグーグルで調べていましたが、役に立ちませんでした
MegaManX 2018

2
私はすべてのサブプロジェクトとターゲットと削除に行くために必要なVALID_ARCHS、それは私のために完全に動作するために、再びデフォルトにそれを設定した後、クリーンでオープン/クローズのXcode
MANMAN

16

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

$(VALID_ARCHS)
x86_64

ここに画像の説明を入力してください


確かにベストアンサー!
スーパー

8

他の回答と同様に、$(VALID_ARCHS)(有効なアーキテクチャ)をに変更することで警告を削除することができました$(ARCHS_STANDARD)。そこから、すべての派生データをクリアし、Xcode10.0を再起動しました。これにより、警告は完全に消えました。有効なアーキテクチャからすべてを削除すると、別の警告が表示されました(「有効なアーキテクチャが見つかりません」)。


1

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

私のプロジェクトで同様の問題と次の3つの警告がありました: 私のプロジェクトで同様の問題と次の警告がありました

私の有効なアーキテクチャは元々 私の**有効なアーキテクチャ**は元々

交換:

  • armv7とi386、
  • armv7sとi386、
  • そして、x86_64を使用したarm64

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

警告に記載されているように、armv7をi386に、armv7sをi386に、arm64をx86_64に置き換えることが私の解決策でした

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

アーキテクチャに関するより深い情報はここにあります: https //docs.elementscompiler.com/Platforms/Cocoa/CpuArchitectures/

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


1

Flutterで問題に直面している場合:

  1. Podfile、Podfile.lock、Podsフォルダー、Runner.xcworkspace、Flutter.frameworkを削除します。

  2. 実行しますflutter clean

  3. 実行しますflutter build ios

0

iOSとMacOSの両方のコードをコンパイルしようとしたときに、この警告が表示されていました。Hassan Talebが彼の答えで提案したことを最初に行うことでそれを回避することができました:有効なiPhoneアーキテクチャだけがそこにあるようにアーキテクチャをクリアしてください。そして最後に、Mac OS向けにビルドできるようにするには、有効なアーキテクチャの上にマウスを置くと、プラスボタンが表示されます。それをクリックすると、必要に応じて、さまざまなCPUアーキテクチャなど、さまざまなプラットフォームに個別の設定を追加できます。macOS SDKの場合、必要に応じて、有効なアーキテクチャをx86_64に設定できます。macOS SDKの場合、必要に応じて有効なアーキテクチャをx86_64に設定できます


現在のXcodeでは、このオプションはもう存在しません。
jBarros 3519年

@lambdapoolどのオプションが表示されていませんか?「有効なアーキテクチャ」/「VALID_ARCHS」ですか?
joelliusp

0

これを解決する最も簡単な方法は、テキストエディタでプロジェクトを開き、すべてのVALID_ARCHS行を見つけて削除することでした。


0

私も同じ問題に直面しています。解決のために、ビルドシステムを標準からレガシーに変更したところ、問題が解決しました。


0

フレームワークを構築するのと同じ警告が表示されました。しばらくすると、これらの有効なアーキテクチャ値は、ビルド設定の値に関係なく、デバイスのタイプによって異なります。

Real devices-> arm64 
Simulator devices ->x86-64

-2

[ビルド設定]がarmv7armv7s arm64の場合は、armv7sを削除してください。警告はキャンセルされます。


それは、一般的な問題だ、ただのARMv7に関するものではありませんし、あなたの提案は楽しみにしていません
逆上
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.