yürütülebilir uygulamada gerekli bir mimari armv6 eksik


81

XCode 4.2 kullanıyorum ve uygulamamı dağıtmaya çalışıyorum. Doğrulamada aşağıdaki hata mesajıyla başarısız oluyorum:

application executable is missing a required architecture armv6

Mimarilerimin değeri Standart (armv7) olarak ayarlandı. Bu, açılır listedeki TEK seçenektir. Temel SDK: iOS 5.0 (Bu tek seçenektir) Dağıtım SDK'sı: 3.2 Yalnızca Etkin Mimari Oluşturma: YOK Geçerli Mimariler: armv6 armv7 armv7f armv7k

Bu sorunun çözümünü bilen var mı?



Aslında yinelenen sorunun farklı bir çözümü var ve xCode'un eski sürümüne geri dönmek. Mevcut sürüm için bu sorunu çözmenin bir yolu olup olmadığını merak ediyordum.
azamsharp

Tek çözümün xCode 4.2'yi kaldırmak ve xCode 4.1'i kurmak olduğu ortaya çıktı
azamsharp

1
İOS 5.0 ve Xcode 4.2 beta yazılım oldukları için hala Gizlilik Sözleşmesi kapsamındadır. En iyi seçeneğiniz, bunları Apple'ın Geliştirici Forumları'nda tartışmaktır: devforums.apple.com . Araçlarla ilgili bir hatayla karşılaşırsanız , bugreport.apple.com adresine bir rapor gönderdiğinizden emin olun .
Brad Larson

Yanıtlar:


83

Xcode 4.2 GM'de bu hala bir sorundur ancak aşağıdakileri yaparak sorunu çözebilirsiniz.

  1. Xcode projesinde dosyalar / klasörler görünümüne geçin

  2. Projenizi seçin (mavi simge)

  3. Ekranın ortasındaki Hedefler altında Uygulamanızı seçin.

  4. Oluşturma ayarlarına git

  5. Mimarileri Bul> Dağıtım

  6. Hem Debug hem de Release'i görebilmek için bu bölümü genişletin

  7. "Standart (armv7) - $ (ARCH_STANDARD_32_BIT)" değerini "Diğer ..." olarak değiştirin.

  8. "Standart (armv7) - $ (ARCH_STANDARD_32_BIT)" yerine "armv6" yazın, ardından yeni bir öğe "armv7" ekleyin

Bunu, TAPKU gibi çerçeveler dahil tüm projeler için yapmanız gerekebileceğini unutmayın.

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


8. adımı gerçekten anlamıyorum ... Lütfen biraz detaylandırır mısınız?
Samuel

4
Açılır listeden DİĞER'i seçerseniz, ızgaraları olan bir kutu elde edersiniz, bir satıra armv6 ve sonraki satıra armv7 ekleyebilirsiniz. Eklediğiniz ekran görüntüsü yanlış.
J3RM

Bu beni kurtardı. Çok teşekkürler !
fyasar

1
"Yalnızca Etkin Mimari Oluştur" seçeneğinin "Hayır" olarak
ayarlandığından

46

Xcode 4.5 için dağıtım hedefini en az iOS 4.3 olarak ayarlayın ve bu sorunu çözecektir. armv6 ve iOS'un önceki sürümleri neredeyse tükendi.


2
Bunun için çok teşekkürler, şimdiden 2 saatlik bir baş ağrısına mal oldu!
RickJansen

2
evet, hedefi iOS 4.3'e ayarlamak, sorunu en son 4.5.1'de de çözüyor ... thx
Jim Jose

40

Bunu yapmanın kolay yolu:

1) Proje simgesine sol tıklayın ( mavi simge "Çalıştır" düğmesinin altındaki ).

2) Proje simgesinin yanında (sağında), "PROJE" altında proje adına sol tıklayın (Beyaz arka plan) .

3) "Yapı Ayarları" sekmesini seçin ve "Mimariler" alt menüsünü arayın (Birincisi). "Standart (armv7) $ (ARCH_STANDARD_32_BIT)" üzerine sol tıklayın ve seçin "Diğer ..."

4) Orijinal değeri kaldırmak için "-" simgesine tıklayın ( "$ (ARCH_STANDARD_32_BIT)" ). "+" Simgesine tıklayın ve "armv6" yazın (çift tırnaklar olmadan). Tekrar "+" simgesine tıklayın ve "armv7" ekleyin (çift tırnak işareti de olmadan). "Bitti" yi tıklayın .

5) "Yalnızca Etkin Mimari Oluştur" seçeneğinin "Hayır" olarak ayarlandığından emin olun (olmalıdır)

6) Proje simgesinin yanında (sağında), "HEDEFLER" altında proje adına sol tıklayın ve 3, 4 ve 5. adımları tekrarlayın.

7) Klavyenizdeki cmd + I tuşlarına basın (veya Xcode menüsünde Ürün -> Profil ) ve her şeyin yolunda olup olmadığını kontrol edin.


3
Bu talimatları daha açık buluyorum, ancak @ J3RM'den gelen şu önemli notu unutmayın: "Bunu, TAPKU gibi çerçeveler olarak dahil tüm projeler için yapmanız gerekebileceğini unutmayın"
benvolioT

ayarlarım "Yalnızca Aktif Mimari Oluştur" doğru olacak şekilde ayarlanmış - çözüm için teşekkürler!
Chris Brandt

4. adımda Bitti'yi tıklamadan bahsettiniz. Ancak herhangi bir DOne düğmesi görmüyorum. : / Burada bir şey mi eksik?
rohan-patel

5

Ortamım Xcode 4.5.1'di. İki şeyi değiştirmek bu sorunu benim için çözdü.

  1. Dağıtım hedefini en az iOS 4.3 olarak ayarlama.
  2. Yapım ayarları altında Mimariler listesinde yalnızca armv7 mimarisinin tutulması ve diğerlerinin (armv6 dahil) açıkça kaldırılması.

Evet, ben de. Yalnızca iPad uygulamam, armv7'leri mimariler listesinden kaldırana kadar geliştirmeyi reddetti.
Mike Gledhill

4

Uyarıya bir çözüm ararken şu soruya rastlıyorum:

warning: iPad: application executable is missing a required architecture.
At least one of the following architecture(s) must be present: armv7 (-19033)
Unable to validate your application. - (null)

Diğer cevaplar problemimi çözmedi, sonra bir değerini değiştirdiğimi fark ettim CFBundleExecutable. Eski değere döndüğümde her şey tekrar sorunsuz gitti.

Bu uyarının doğrudan nedeninin ne olduğundan emin değilim, ancak en azından Ad Hoc yapılarını yeniden dağıtabilirim.


Gerçekten tuhaf, aynı uyarıyı aldım ve ilgisiz olanlarla birlikte. CFBundleExecutableGeri dönme değerini eskisine çevirdi ve her şey yolunda gitti. Teşekkür!
Adriano Lucas

3

Xcode 4.2.1 kullanarak tüm cevaplar durumuma yardımcı olmadı.

Yaptığım şey değişiyor olduğu Architecturesgelen armv7etmek armv6 armv7ve işe yaradı. Bunun gibi:

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


3

Xcode 4.5 ile aynı sorunu çözmek için armv6 eklemek sadece kısmen problemdi. Ayrıca işe yaraması için dağıtım hedefimi iOS 4.1'den iOS 5.0'a yükseltmem gerekiyordu. Böyle basit bir düzeltme için saatlerce süren hayal kırıklığı. Umarım yardımcı olur.


5
Hedefi 4,3'e çıkarmak yeterli.
SK9

-1

Sadece armv6Mimariler altında belirlediğimde bana yardımcı oldu

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.