iOS uygulaması gönderimi: 64 bit desteği eksik


91

Dün sorunsuz bir şekilde incelenmek üzere bir uygulama gönderdim. Daha sonra yapmam gereken çok az bir düzeltme olduğunu fark ettim (bir haritanın maksimum yakınlaştırma düzeyini 19'dan 18'e değiştirmek, başka bir şey yok), bu yüzden ikili dosyayı iTunes Connect'ten kaldırdım ve yeniden göndermeyi denedim.

Şimdi şu uyarıyı alıyorum:

uyarı_x kodu

Mimarilerim olduğu gibi nedenini anlamıyorum:

  • mimariler: armv7
  • geçerli mimariler: armv6, armv7, armv7s, arm64

Uygulama simülatörde iyi çalışıyor. Uyarıda önerildiği gibi standart mimarileri (armv7, arm64) kullanmaya çalışırsam, uygulama oluşturulmaz ve şunu alırım:

  • X86_64 mimarisi için tanımlanmamış semboller
  • ld: x86_64 mimarisi için semboller bulunamadı

Lib route-me kullanıyorum ve aynı mimari ayarlarını yapıyorum.


Bizim de bu sorun var. :(
Nazik

Ayrıca sadece dünden beri mi?
Tim Autin

1) bunu değiştirdikten sonra Xcode için DerivedData'yı temizlemeyi deneyin; 2) belki daha eski bir harici api, sdk, çerçeve vb.
Kullanıyor musunuz

@Tim Bunu düzeltmeyi başardınız mı? bunun için bir çözüm gönderir misiniz lütfen?
user2056563

Merhaba, özür dilerim çözümü bulamadım ve artık bu proje üzerinde çalışmıyorum. Şimdilik sadece bir uyarı, bu yüzden uygulamayı gönderebildim.
Tim Autin

Yanıtlar:


106

" Standard architectures" İfadesini şu şekilde kullanın :

  • Mimari: "Standart mimariler" arm7, arm64
  • Geçerli Mimariler: " arm64 ", armv7 ...
  • Yalnızca Aktif Mimari Oluşturun - HAYIR (özellikle ... bağlı cihazınız arm64 uyumlu değilse)

bunun gibi:

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

  • Ek olarak, özellikle 32 bit sürümlerse, iPhone'ları ve iPad'leri Mac'ten çıkarmanın yardımcı olduğu bilinmektedir.

2
Cevabınız için teşekkürler, ancak
sorumda

3
@Tim, evet ben de armv7 and arm64Architechtures'da yaşadım . Yine de, uygulama gönderim için doğrulanırken eksik 64 bit destek uyarısı oluşuyor.
Nazik

@NAZIK Her iki satırda da arm64 var mı (Mimariler ve Geçerli Mimariler)? Aynı hatayı aldım ve çözüm
buydu

@Tim DerivedData'nızı temizlemeyi deneyin ve en son harici çerçevenizi veya
SDK'nızı

3
Ayrıca, son derlemeyi arşivlerken cihazınızın bağlı OLMADIĞINDAN emin olun. Aşağıdaki @powertoold cevabına bakın ( stackoverflow.com/a/26848865/1715004 )
Filipe Borges

68

Doğru mimarileri onayladıktan sonra, App Store'a göndermek için son yapıyı ARŞİVLEME YAPARKEN cihazınızın bilgisayarınıza bağlı OLMADIĞINDAN emin olun.

Bu uyarının görünmesinin nedeni, bağladığınız CİHAZ'ın muhtemelen arm64 uyumlu olmamasıdır.


4
Şapkalar çıkar! : D zamanımı kurtardın
Vaibhav Limbani

1
Büyük yardım !! Bu sefer bana çok zaman kazandırdı. Eski uygulamaları yükseltmek için iyi bir ipucu.
harry

Yapı ayarını Build Active Architecture Onlyolarak değiştirirseniz 64 bit olmayan cihazlarınızı bağlı tutabileceğinizi düşünüyorum No. Bu, xcode'u hangi aygıtın bağlı olduğuna bakılmaksızın 64 bitlik ikili oluşturmaya zorlar.
jxmallett

3
Yanıt 'ın @jxmallett ek olarak, emin hangi Arşiv Release olarak ayarlı Şema yapılandırmasını yapmak Build Active Architectureiçin ayarlanır No. Arşiv Şemasını Ayarla
KarenAnne

1
Bilginize Bunun çalışması için cihazımın bağlantısını kesmem, simülatöre geçmem ve ardından "iOS Cihazı" na geri dönmem gerekiyordu.
nwkeeley

37

Tony'nin yazdığı gibi, her iki satırda da bu ayarların olması önemlidir. Benim (ve tabii ki sizin) projem arm64 standarda eklenmeden önce oluşturulduğundan, gösterilse bile "Geçerli Mimarilere" yansıtılmamaktadır. , Standart olarak .

Ben ne yaptım:

  • Proje (Hedef) yapılandırmasına gittim
  • Yazılan (otomatik hedefleri ve şemalar yansıtılır Geçerli Mimarilerle içinde "arm64"

Temizlemeden / oluşturduktan sonra, float'ın CGFloat'a uygun olmayan şekilde dönüştürülmesiyle ilgili bazı uyarılar bile alıyorum, bu nedenle ayarlar açıkça uygulandı.

Doğrulama uyarısı da kayboldu!

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


1
> Standart olarak gösterilse bile "Geçerli Mimariler" e yansımıyor Bu benim için önemliydi. Teşekkür!
Romain

1
Başkalarına yardımcı olması durumunda işe
koyulmak

@djburdick Teşekkürler. Bu benim için başka hiçbir şey yapmadığında çalıştı.
Dave Chambers

27

Fiziksel cihazınızı Mac'ten çıkarın. Cihaz listesindeki XCode'da iOS Cihazını seçin ve tekrar Arşiv oluşturun. Benim için çalıştı.


5

Bugün bu sorunu aşağıdaki adımlarla çözüyorum:

Bina Ayarları:

Mimariler: Standart mimariler (arm7, arm64) - $ (ARCH_STANDARD)

Geçerli Mimariler: armv7 armv7s arm64

  1. İPhone bağlıyken uygulamanızı temizleyin ve oluşturun
  2. İPhone'unuzun bağlantısını kesin ve "iOS Cihazı" ndaysa üst çubuğu kontrol edin
  3. Arşiv
  4. Doğrula ve Gönder

@ Timuçin. Geç cevap verdiğim için üzgünüm, haklısınız: armv7 armv7s arm64.
Leonel Folmer


2

Tamam bu çılgıncaydı. Her cevabı denedim . Ancak yalnızca Geçerli Mimarilerden arm64önce armv7ve armv7ssonra yerleştirdiğimde işe yaradı .

Not: xcode version : 7.2


1
Evet. ancak o zaman ve ancak bir cihazı bağladıktan sonra gerçek hata günlüğü görünüyordu. Daha sonra kullanımdan kaldırılan ve düzeltilmesi gereken (kırmızı) bazı kod satırları ve RSA kitaplığıyla ilgili bazı sorunlar ortaya çıktı.
maxweber

1

Sorunu değiştirerek çözdüm,

Mimariler: arm7, arm64

Geçerli mimari: arm7, arm64

Yalnızca aktif mimari oluştur: Evet


1

Görüntü olarak yapılandırma ile başarıyı gönderdim: görüntü açıklamasını buraya girin

(Gerçek cihazla arşivlenmiştir)


1
Bırakma modunu hayır olarak ayarlamalı
ZYiOS

1

Her uyarıdan kurtuldum. Her şeyi defalarca gözden geçirdim. Tek kelimelik cevabı yukarıda buldum.

"Yalnızca Aktif Mimari Oluşturun - HAYIR (özellikle ... bağlı cihazınız arm64 uyumlu değilse)"

İPad'im 64 bit değil. Build Active Architecture için HAYIR yazın ve sunumum işe yaradı!


0

İOS geliştirme hedefinizi en az 5.1.1 olarak değiştirin veya alternatif olarak standart mimariler ayarını silin ve yeniden uygulayın. Arm64'ün oluşturma hedefinizle uyumlu olmadığına dair bir uyarı görmüş olabilirsiniz. Genel bakış sayfasında, hem derleme hem de hedef "dağıtım hedefi" ayarlarını kontrol edin. Benim durumumda hedef 6.0 idi ama proje 5.0 idi.

Ayrıca, hem hedefinizde hem de projenizde "Geçerli Mimariler" i işaretleyin. Projede doğru ayarları yaptım ama hedefte yoktu. Bundan sonra benim için çalıştı.

Kutunun sol üst köşesindeki genel bakış sayfasında proje / hedef arasında geçiş yapın.


Gerçekten 5.1.1 mi demek istiyorsun? 5.1 yeterince yeni değil mi?
Dirk

Uzun zaman olmuştu. Bunun mantığını bilmiyorum veya hatırlamıyorum. Sadece adımları at ve bir şey yerine oturabilir. Mimarilerle ve bahsedilen tüm sayfalarla oynayın.
user1122069

0

Lütfen Aktif Mimari Oluştur seçeneğini işaretleyin. HAYIR olarak ayarlayın. Benim için çalışıyor.

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.