Apa arti peringatan "Memetakan arsitektur arm64 ke x86_64"?

95

Setelah memigrasi framework saya ke Xcode 10 beta (10L176w) saya mulai mendapatkan peringatan seperti:

Memetakan arm64 arsitektur ke x86_64. Pastikan bahwa pengaturan build Arsitektur dan Arsitektur yang Valid milik target ini dikonfigurasi dengan benar untuk platform iOS Simulator.

... dan:

Memetakan arsitektur armv7 ke i386. Pastikan bahwa pengaturan build Arsitektur dan Arsitektur yang Valid milik target ini dikonfigurasi dengan benar untuk platform iOS Simulator.

Terlepas dari peringatan ini, build dan pengujian unit semuanya lulus Ok. Saya menggunakan Swift 4.2.

Namun, tentang apakah peringatan ini?

sopan santun
sumber
Saya melihat ini saat menyetel ketika mencoba membangun 64 bit hanya menggunakan ARCHS = $(ARCHS_STANDARD_64_BIT)danVALID_ARCHS = $(inherited) x86_64 i386
Kdawgwilk

Jawaban:

101

Pergi ke Build Settings dan lakukan seperti yang ditunjukkan di bawah ini

masukkan deskripsi gambar di sini

Hassan Taleb
sumber
5
Saya mengonfirmasi, ini berhasil untuk saya - saya tidak tahu mengapa, tetapi pengaturan itu disorot dalam huruf tebal baik pada pengaturan proyek dan target build. Kemudian saya menghapus seperti yang disebutkan di atas (di kedua tempat!), Dan ini baru saja menghapus sorotan tebal (dikembalikan ke default, jelas), dan peringatan hilang
Nick Entin
23
Sekadar klarifikasi, ini harus dilakukan pada proyek dan target.
palmi
2
Jawaban yang bagus, saya usulkan ini menjadi solusinya.
Heider Sati
8
Ketika saya menghapusnya, tidak ada yang muncul di Terselesaikan dan saya mendapatkanThere are no valid architectures to compile for because the VALID_ARCHS build setting is an empty list
Crystal
2
sepertinya tidak berfungsi lagi. Saya mendapatkan masalah yang sama Crystal melaporkan dengan Xcode 11 beta 6. @ Jawaban John berfungsi untuk saya sebagai gantinya
Fabian Streitel
70

Saya dapat membungkam peringatan ini dengan mengubah pengaturan Arsitektur Valid saya $(ARCHS_STANDARD)yang cocok dengan pengaturan Arsitektur saya juga.

Anehnya, ini ditampilkan sebagai armv7 arm64(dibandingkan dengan pengaturan default armv7 armv7s arm64), tetapi mengaturnya ke nilai itu secara manual masih menyebabkan peringatan. Tidak yakin apa pentingnya itu, tetapi saya belum melihat ada masalah dalam pengujian saya.

John Montgomery
sumber
2
Pengaturan ini bekerja untuk saya untuk kerangka kerja "universal" yang menargetkan iOS dan macOS.
Yohanes
1
Itu solusi saya. Saya menetapkan arsitektur yang valid: $ (ARCHS_STANDARD) di Proyek dan di Target. Terima kasih.
CGN
2
@CGN bagaimana u set di Project? saya berhasil menetapkan untuk Target.
Erum
@Erum: lihat 2 screenshot di bawah
CGN
27

Anda mungkin mengganti setelan build VALID_ARCHS ("Arsitektur yang Valid"), baik untuk target atau projectnya. Ini adalah pengaturan build yang akan mendapatkan nilainya secara otomatis berdasarkan tujuan menjalankan mana yang Anda buat. Saat Anda mengetahui dari mana asal penggantian ini (pengaturan build akan ditampilkan dalam huruf tebal saat diganti), pilih dan tekan tombol hapus untuk memulihkannya ke nilai default.

Rick Ballard
sumber
2
Saya juga melihat kesalahan ini. Saya belum mengganti pengaturan VALID_ARCHS. Ini berisi arm64untuk debug dan rilis.
funkenstrahlen
10
Ini tampaknya menjadi bug di Xcode 10. Masih terjadi dengan pengaturan default
Kdawgwilk
5
Ini tetapi tampaknya masih muncul dengan versi rilis Xcode 10. Ada yang punya pembaruan tentang ini?
plivesey
1
me2, saya baru saja googling tentang ini, tetapi tidak berhasil
MegaManX
2
Saya perlu pergi ke semua sub proyek dan target saya dan menghapus VALID_ARCHSuntuk mengaturnya ke default dan kemudian membersihkan dan menutup / membuka Xcode lagi agar berfungsi sepenuhnya untuk saya
manman
16

Untuk TARGET yang melaporkan peringatan, Ubah setelan "Arsitektur yang Valid" ke:

$(VALID_ARCHS)
x86_64

masukkan deskripsi gambar di sini

Quanhua Guan
sumber
Jawaban terbaik pasti!
Supertecnoboff
8

Mirip dengan jawaban lain, saya dapat menghapus peringatan dengan mengubah $(VALID_ARCHS)(Arsitektur yang Valid) menjadi $(ARCHS_STANDARD). Dari sana, saya menghapus semua Data Berasal dan memulai ulang Xcode 10.0. Ini membuat peringatan itu hilang sama sekali. Menghapus semuanya dari Arsitektur yang Valid hanya membuat peringatan yang berbeda muncul ("Tidak ditemukan arsitektur yang valid").

jldailey.dll
sumber
1

Solusinya lebih sederhana: dalam Arsitektur yang Valid, cukup ganti arm64 dengan x86_64 .

Memiliki masalah serupa dan tiga peringatan berikut dalam proyek saya: Memiliki masalah serupa dan peringatan berikut dalam proyek saya

Arsitektur Valid Saya awalnya ** Archtectures Valid ** saya awalnya adalah

Mengganti:

  • armv7 dengan i386,
  • armv7s dengan i386,
  • dan, arm64 dengan x86_64

(seperti yang disebutkan dalam Peringatan) adalah solusi saya. Hasil dalam pengaturan Arsitektur yang Valid adalah:

Mengganti armv7 dengan i386, armv7s dengan i386, dan, arm64 dengan x86_64 seperti yang disebutkan dalam Peringatan adalah solusi saya

Setelah penggantian, tiga peringatan saya di atas menghilang.

Info lebih mendalam tentang Arsitektur dapat ditemukan di sini: https://docs.elementscompiler.com/Platforms/Cocoa/CpuArchitectures/

Menurut saya formulasi peringatan ini di Xcode agak membingungkan.

CGN
sumber
1

Jika Anda menghadapi masalah di Flutter:

  1. Hapus folder Podfile, Podfile.lock, Pods, Runner.xcworkspace, Flutter.framework.

  2. Lari flutter clean.

  3. Lari flutter build ios.
Deepak Ror
sumber
0

Saya melihat peringatan ini ketika saya mencoba mengkompilasi kode untuk iOS dan Mac OS. Saya bisa menyiasatinya dengan terlebih dahulu melakukan apa yang disarankan Hassan Taleb dalam jawabannya: membersihkan arsitektur sehingga hanya arsitektur iPhone yang valid yang ada di sana. Dan terakhir, untuk mempertahankan kemampuan membangun untuk Mac OS, gerakkan mouse Anda ke Arsitektur yang Valid sehingga tombol tambah muncul. Klik itu dan kemudian Anda dapat menambahkan pengaturan terpisah untuk platform berbeda sesuai kebutuhan, termasuk arsitektur CPU yang berbeda. Untuk SDK macOS, saya dapat mengatur Arsitektur Valid saya menjadi hanya x86_64 jika saya mau.Untuk SDK macOS, saya dapat mengatur Arsitektur Valid saya menjadi hanya x86_64 jika saya mau

joelliusp
sumber
pada Xcode saat ini, opsi ini sudah tidak ada lagi.
JBarros35
@lambdapool opsi mana yang tidak Anda lihat? Apakah itu "Arsitektur yang Valid" / "VALID_ARCHS"?
joelliusp
0

Saya menemukan cara termudah untuk menyelesaikan ini adalah dengan membuka proyek di editor teks saya, lalu mencari dan menghapus semua VALID_ARCHSbaris.

Jonathan
sumber
0

Saya juga menghadapi masalah yang sama. Untuk resolusi, saya baru saja mengubah sistem build dari Standard ke Legacy dan itu menyelesaikan masalah.

Harsh Gupta
sumber
0

Saya telah melihat peringatan yang sama saat saya membangun kerangka kerja saya. Setelah beberapa saat perhatikan nilai arsitektur yang valid ini bervariasi tergantung pada jenis perangkat terlepas dari nilai dalam pengaturan build.

Real devices-> arm64 
Simulator devices ->x86-64
simpleDrinker
sumber
-2

jika [Pengaturan build] Anda adalah armv7 armv7s arm64, hapus armv7s. peringatan itu akan dibatalkan.

wilson wang
sumber
ini bukan hanya tentang armv7, ini adalah masalah umum dan saran Anda tidak melihat ke depan
amuk