"Mimari arm64'ü x86_64 ile eşleme" uyarısı ne anlama geliyor?


95

Çerçevemi Xcode 10 beta'ya (10L176w) taşıdıktan sonra aşağıdaki gibi uyarılar almaya başladım:

Mimari arm64'ü x86_64'e eşleme. Bu hedefin Mimarileri ve Geçerli Mimarileri derleme ayarlarının iOS Simulator platformu için doğru şekilde yapılandırıldığından emin olun.

... ve:

Mimari armv7'yi i386'ya eşleme. Bu hedefin Mimarileri ve Geçerli Mimarileri derleme ayarlarının iOS Simulator platformu için doğru şekilde yapılandırıldığından emin olun.

Bu uyarılara rağmen, yapı ve birim testlerinin tümü Tamam'ı geçti. Swift 4.2 kullanıyorum.

Yine de bu uyarılar ne hakkında?


Bunu sadece ARCHS = $(ARCHS_STANDARD_64_BIT)ve kullanarak 64 bit oluşturmaya çalışırken görüyorumVALID_ARCHS = $(inherited) x86_64 i386
Kdawgwilk

Yanıtlar:


101

Git Ayarlar kurmak aşağıda gösterildiği gibi ve yapılacak

görüntü açıklamasını buraya girin


5
Bunun benim için işe yaradığını onaylıyorum - nedenini bilmiyorum, ancak bu ayarlar hem proje hem de hedef oluşturma ayarlarında kalın olarak vurgulandı. Sonra yukarıda belirtildiği gibi sildim (her iki yerde de!) Ve bu kalın vurguyu kaldırdım (tabii ki varsayılanlara geri döndü) ve uyarılar kayboldu
Nick Entin

23
Sadece açıklığa kavuşturmak için, bu hem proje hem de hedef için yapılmalıdır.
palmi

2
Güzel cevap, bunun çözüm olmasını öneriyorum.
Heider Sati

8
Sildim zaman, hiçbir şey gösterileri sona Çözülmüş ve ben olsunThere are no valid architectures to compile for because the VALID_ARCHS build setting is an empty list
Kristal

2
artık çalışmıyor gibi görünüyor. Crystal'ın Xcode 11 beta 6 ile rapor ettiği aynı sorunu alıyorum. @ John'un cevabı benim için çalışıyor
Fabian Streitel

70

Benim değiştirerek bu uyarıları susturmak başardı Geçerli Architectures'ı ayarını $(ARCHS_STANDARD)benim maçları hangi Architectures'ı de ayar.

Garip bir şekilde, bu armv7 arm64(varsayılan ayarına kıyasla armv7 armv7s arm64) olarak görüntülendi, ancak manuel olarak bu değere ayarlanması hala uyarılara neden oldu. Bunun önemi ne olduğundan emin değilim, ancak testlerimde henüz herhangi bir sorun fark etmedim.


2
Bu ayar benim için hem iOS hem de macOS'u hedefleyen "evrensel" bir çerçeve için çalıştı.
John

1
Bu benim çözümümdü. Geçerli mimarileri ayarladım: Project ve Targets'da $ (ARCHS_STANDARD). Teşekkürler.
CGN

2
@CGN Project'te nasıl ayarlandınız? Hedefler için başarıyla belirledim.
Erum

@Erum: aşağıdaki 2 ekran görüntüsüne bakın
CGN

27

Hedef veya projesi için büyük olasılıkla VALID_ARCHS ("Geçerli Mimariler") yapı ayarı geçersiz kılındı. Bu, inşa ettiğiniz çalışma hedefine göre değerini otomatik olarak alması gereken bir yapı ayarıdır. Bu geçersiz kılmanın nereden geldiğini bulduğunuzda (inşa ayarı, geçersiz kılındığında kalın olarak görüntülenecektir), onu seçin ve varsayılan değere geri yüklemek için silme tuşuna basın.


2
Bu hatayı da görüyorum. Ayarları geçersiz kılmadım VALID_ARCHS. arm64Hem hata ayıklama hem de yayınlama için içerir .
funkenstrahlen

10
Bu, Xcode 10'da bir hata gibi görünüyor. Hala varsayılan ayarlarla ortaya çıkıyor
Kdawgwilk

5
Bu, ancak Xcode 10'un yayın sürümünde hala görünüyor gibi görünüyor. Bu konuda herhangi bir güncelleme olan var mı?
plivesey

1
me2, sadece bu konuda googling yapıyordum ama boşuna
MegaManX

2
Tüm alt projelerime ve hedeflerime VALID_ARCHSgidip varsayılan olarak ayarlamak için
silmem

16

Uyarıları bildiren HEDEF için "Geçerli Mimari" ayarını şu şekilde değiştirin:

$(VALID_ARCHS)
x86_64

görüntü açıklamasını buraya girin


Kesinlikle en iyi cevap!
Supertecnoboff

8

Diğer yanıtlara benzer şekilde, uyarıyı $(VALID_ARCHS)(Geçerli Mimariler) olarak değiştirerek kaldırabildim $(ARCHS_STANDARD). Oradan, tüm Türetilmiş Verileri temizledim ve Xcode 10.0'ı yeniden başlattım. Bu, uyarının tamamen ortadan kalkmasını sağladı. Geçerli Mimarilerden her şeyin silinmesi farklı bir uyarının görünmesine neden oldu ("Geçerli mimari bulunamadı").


1

Çözüm daha basittir: Geçerli Mimarilerde yalnızca arm64'ü x86_64 ile değiştirin .

Projemde benzer bir sorun ve aşağıdaki üç uyarı vardı: Projemde benzer bir sorun ve aşağıdaki uyarı vardı

Benim Geçerli Archtectures başlangıçta vardı Benim ** Geçerli Mimarilerim ** orijinal olarak

Değiştiriliyor:

  • i386 ile armv7,
  • i386 ile armv7s,
  • ve x86_64 ile arm64

(Uyarılarda belirtildiği gibi) benim çözümümdü. Geçerli Mimari ayarındaki sonuç şuydu:

Uyarılarda belirtildiği gibi armv7'yi i386 ile, armv7s'yi i386 ile ve arm64'ü x86_64 ile değiştirmek benim çözümümdü

Değiştirmelerden sonra yukarıdaki üç uyarım kayboldu.

Mimariler hakkında daha derin bilgi burada bulunabilir: https://docs.elementscompiler.com/Platforms/Cocoa/CpuArchitectures/

Xcode'da bu uyarının formülasyonunun biraz kafa karıştırıcı olduğunu düşünüyorum.


1

Flutter'da sorun yaşıyorsanız:

  1. Podfile, Podfile.lock, Pods klasörü, Runner.xcworkspace, Flutter.framework öğelerini silin.

  2. Çalıştır flutter clean.

  3. Çalıştır flutter build ios.

0

Hem iOS hem de Mac OS için kod derlemeye çalıştığımda bu uyarıyı görüyordum. İlk olarak Hassan Taleb'in cevabında önerdiği şeyi yaparak bunun üstesinden gelmeyi başardım: mimarileri temizleyin, böylece sadece geçerli iPhone mimarileri orada olsun. Ve son olarak, Mac OS için geliştirme yapabilmeyi sürdürmek için, farenizi Geçerli Mimariler üzerinde sallayın, böylece bir artı düğmesi görünür. Buna tıklayın ve ardından farklı CPU mimarileri dahil olmak üzere farklı platformlar için gerektiği gibi ayrı ayarlar ekleyebilirsiniz. MacOS SDK için, İstersem Geçerli Mimarilerimi yalnızca x86_64 olarak ayarlayabilirim.MacOS SDK için, İstersem Geçerli Mimarilerimi yalnızca x86_64 olarak ayarlayabilirim


mevcut Xcode'da artık bu seçenek mevcut değil.
JBarros35

@lambdapool hangi seçeneği görmüyorsunuz? "Geçerli Mimariler" / "VALID_ARCHS" mi?
joelliusp

0

Bunu çözmenin en kolay yolunu, projeyi metin düzenleyicimde açıp tüm VALID_ARCHSsatırları bulup silmekti .


0

Ben de aynı sorunla karşı karşıyayım. Çözüm için, yapı sistemini Standarttan Eski olarak değiştirdim ve bu sorunu çözdü.


0

Çerçevemi oluştururken aynı uyarıyı gördüm. Bir süre sonra, bu geçerli mimari değerlerinin, yapı ayarlarındaki değerlere bakılmaksızın cihazların türüne göre değiştiğini fark ettik.

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

-2

[derleme Ayarlarınız] armv7 armv7s arm64 ise, lütfen armv7'leri silin. uyarı iptal edilecektir.


bu sadece armv7 ile ilgili değil, bu genel bir sorun ve öneriniz ileriye dönük değil
amok
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.