Uygulamalarımı başarıyla gönderdikten sonra “çok fazla sembol dosyası”


201

Xcode 6 GM'yi indirdim ve bugün uygulama mağazasına iki Swift uygulaması gönderdim. Her ikisi de tüm yükleme öncesi doğrulamayı ve geçmek zorunda oldukları diğer tüm bilgileri ve başarıyla gönderildi. Ama sonra Apple'dan iki e-posta aldım ... her program için bir tane ve ikisi de şunu söyledi:

Sevgili geliştirici,

"Xxxxxxxx" için son gönderiminizle ilgili bir veya daha fazla sorun tespit ettik (uygulama adım kaldırıldı). Teslimatınız başarılı oldu, ancak bir sonraki teslimatınızda aşağıdaki sorunları düzeltmek isteyebilirsiniz:

Çok fazla sembol dosyası - Bu sembollerin herhangi bir ikili dosyada karşılık gelen bir dilimi yoktur [1431D977-72BC-308F-AB71-71529F25400B.symbols, 158C72A7-98AC-3F07-B2BE-88427591B413.symbols, 44973EAC-563E-340C-B549-55.AbAAAAA , 678BF06F-0C3D-3A09-BFBF-699C7079FECD.symbols, 90907DDB-0400-38ED-BB5F-0C12333C0624.symbols, 93B79949-5757-374A-97B9-825AEBB0B7A7B0A7B0A7B7 -4422-32B8-8C40-CF9B45A2CCC6. semboller, B0CC9F7D-C542-3E18-A518-B28B7ECABE80. semboller, BF6A4C3B-6FA5-3C51-8404-19C2F132458D.symboller, C9D08G0E9E9E9E9E9E09 -3845-BAD5-F6E51045D396. semboller, D4967AA3-8FB0-3712-B0DE-7F4144AF8F4B.somoller, D813B314-AD37-31D4-B675-442052994495.symbols, DF42A13F0F0F0F3F0F3F0F3F0F3F0F3 -8F7D-C49A36CD5C65.symbols]

Sorunları düzelttikten sonra, iTunes Connect'e yeni bir ikili dosya yüklemek için Xcode veya Uygulama Yükleyici'yi kullanabilirsiniz.

Saygılarımızla,

App Store ekibi

Bunun benimle veya uygulamalarımla gerçekten bir ilgisi olmadığını tahmin edeceğim ... ve bu sadece bir günlük Swift uygulaması gönderilerinin tuhaflığı mı? Her iki uygulama da "Onay bekleniyor" modunda duruyor. Kesinlikle söylediklerini ortadan kaldırmak için değiştirebileceğim bir şey düşünemiyorum! Başka kimse henüz bir Swift uygulaması gönderip bu yanıtı aldı mı? Sadece görmezden gelip ne olacağını görmek için mi beklemeliyim?


Benim dedi ve Invalid Swift Support. Bunu neden alabileceğime dair bir fikrin var mı? En son Xcode'u kullanıyorum.
Dehli

burada aynı sorunu ve benim app inceleme için gönderemezsiniz. bu sorun nedeniyle. herkes çözüldü?
yudun1989

1
burada da aynı sorun var. yine de inceleme için gönderildi .. bakalım ne oluyor :)
dandoen

Swift uygulamalarımın her ikisi de App Store'a onaylandı ... sanırım hiçbir şey için endişelenmedim! Vay be ... :)
Jim Barber

Yanıtlar:


128

Bu, kitaplıklarınızın hata ayıklama bilgilerini proje arşivine dahil ediyorsanız, ancak ikili dosyalar içermiyorsanız gerçekleşir.

  1. Xcode'da Organizatör penceresini açın
  2. Bu sorunu içeren bir arşivi sağ tıklayın ve "Finder'da Göster" i seçin.
  3. Arşiv dosyasına sağ tıklayın ve "Paket İçeriğini Göster" i seçin
  4. "DSYMs" klasöründe birkaç dosya göreceksiniz. Bu dosyalarda dwarfdumpkonsol komutunu çalıştırırsanız, UUID dizelerinin bir listesini alırsınız:

    dwarfdump -u MyFile.dSYM

Apple'ın e-postasında eşleşen bazı UUID'leri bulacağınızdan eminim.

Bu uyarıyı önlemek için arşivinize yalnızca dSYMuygulamanızın dosyalarını eklemeniz gerekir ; kitaplıkları değil. Bunun için bir dSYMdosya oluşturmamak için kitaplıkların yapı yapılandırmasını değiştirmeniz gerekir . Sadece yapılandırmada "ayıklama bilgileri formatında" için arama ve onu değiştirmek DWARF with dSYM Fileiçin DWARFsadece.

Örneğin, aşağıdaki ekran görüntüsünde Stripe iOS çerçevesini bulacaksınız.

Xcode project settings ekran görüntüsü


13
dwarfdump -u *klasördeki tüm UUID'leri görmek için
Jon

@Jon ooooh neden tek tek yaptıktan sonra görüyorum? :) yine de teşekkürler!
Serj Rubens

6
DSYM dosyalarını kaldırmak, 3. taraflarla ilgili herhangi bir çökmenin artık Crashlytics (veya başka bir çökme raporlama aracı) üzerinde sembolize edilmeyeceği anlamına mı geliyor?
Eugenio

Ancak firebase \ fabric kullanıyorsanız, sitedeki kilitlenme günlüklerini görüntülemek için dsym dosyaları kullanılmalıdır. Hala bu değişiklikle çalışıyorlar mı?
Mattia Lancieri

91

CocoaPods kullanırken bu sorunla karşılaştıysanız, Podfile'ınıza ekleyin:

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf'
        end
    end
end

Hata Ayıklama Bilgi Biçimi'ni yalnızca tüm Pod hedefleriniz için DWARF olarak ayarlar (ana uygulama hedefi değil)


@wzbozon Evet, sadece iki kez kontrol etmenizi istiyorum. Çünkü yaptıktan sonra, Crashlyticts çalışmayı bıraktı. Teşekkürler!
Cesar Rodriguez

Crashlytics, uygulamanız için çalışmaya devam etmelidir, çünkü bu komut dosyası yalnızca kapsüller için oluşturma ayarlarını değiştirir.
Stan

1
Katılıyorum. Ancak kapsüller için raporlar görmezsiniz. Biri DWARF'ı dSYM Dosyası ile sadece bazı kapsüller, örneğin geliştirme kapsülleri için ayarlayabilir.
Denis Kutlubaev

@Stan Crashlytics'in çalışmaya devam edeceğini mi söylüyorsun? Cesar Rodriguez işe yaramayacağını söylüyor.
airowe

8
Bu benim için çözdü. Unutmayınpod install
ateşböceği

18

CocoaPods kullanıyorsanız ve uygulamanız yalnızca arm64 kullanacak şekilde ayarlanmışsa (yani, projenizin info.plist'inde yalnızca arm64 vardır)

<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>arm64</string>
</array>

bu sorunu çözmek için Podfile'ınıza aşağıdaki komut dosyasını eklemeyi deneyebilirsiniz.

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
      config.build_settings['ARCHS'] = 'arm64'
    end
  end
end

VE

tüm projelerinizin hedeflerini (Bölmelerdeki hedefleri değil) yalnızca arm64 olarak ayarlayın

Xcode proje ayarları

CocoaPods Github sayı referansı


Muhtemelen arm64e'yi de şimdi eklemelisiniz, değil mi?
shim

Ben simülatör için arm64s dahil ediyorum. Sürüm derlemeleri için otomatik olarak kaldırılır.
cybergen

13

Proje, CocoaPods hedeflerinin geçerli mimari arm64, armv7 ve armv7'lere sahip olduğu geçerli mimari arm64'e sahip olması nedeniyle bu sorunu yaşıyorum .

Hangi hedefin hangi geçerli mimariye sahip olduğunu kontrol etmek için aşağıdaki adımları izleyin

  1. Xcode'da -> Pencere -> Organizatör
  2. Arşivi seçin ve Finder'da Göster
  3. Açık .xcarchive dosyası, Show paket içeriği
  4. Terminali açın ve dSYMs klasörünün yolunu verin .

  5. Komutu girin dwarfdump --uuid *ve geçerli mimarileri olan UUID'lerin listesini gösterecektir.

UUID, Apple'ın uyarı e-postasıyla eşleşecek

Ana proje ve kakao kapsülleri aynı geçerli mimariye sahip olduklarını varsayarlar. Bunu yaparak sorunu çözecektir.


Bence neler olup bittiğini en iyi şekilde açıklıyor. Bu uyarılar sadece armv7 mimarisine sahip kütüphaneler hakkında var çünkü projem sadece arm64 için üretildi. Projeye armv7 eklemem veya Pod'lardan kaldırmam gerekiyorsa soru kalır.
Ariel Bogdziewicz

6

Bit kodunu etkinleştirerek benim için çalıştı - daha önce kapalıydı

Bitcode'u etkinleştir - Evet

resim açıklamasını buraya girin


1

Yukarıdaki sorunların giderilmesine yardımcı oldu, ancak çözülemedi. İOS 12'de projemiz vardı, ancak kapsüller 10 - bir grup armv7 dosyasına yol açtı. Pod'u iOS 12'ye güncellemek anında çözüldü.


0

Aynı sorun tüm hedeflerim için aynı "Genel" => "Dağıtım bilgisi" => "Dağıtım hedefi" ile giderildi.


0

Xcode'da, “Kopyalama Sırasında Şerit Hata Ayıklama Sembolleri” (COPY_PHASE_STRIP) için Oluşturma Ayarları konusuna bakın. Etkinleştirildiğinde, hata ayıklama sembolleri .app'nizden çıkarılır ve bir .dSYM dosyasına yerleştirilir. Aksi takdirde .app'niz bu simgeleri içerir. (Varsayılan olarak, hata ayıklama sembolleri gizleme nedeniyle yayın derlemelerinden çıkarılır. Muhtemelen yayın yapılandırması için bu ayarı değiştirmemelisiniz.)

Proje Oluşturma Ayarları'nda bu seçeneği işaretlediğinizden emin olun

https://possiblemobile.com/2015/03/symbolicating-your-ios-crash-reports/


0

Benim için sorun dosyamdaki bir satırdı build.xcconfig. Kaldırmak zorunda kaldım

IPHONEOS_DEPLOYMENT_TARGET = 11.0

bu da projeyi sadece arm64 için inşa edecek (arm7 için değil). Adımları takip ederek @miOSbakla projesinin her ikisi için de inşa edildiğini görebiliyordum.


1
stackoverflow.com/a/49063850/3293172 iOS 11, armv7 ve armv7'ler için desteği düşürdü, bu nedenle dağıtım hedefiniz> = iOS 11.0 ise yalnızca arm64 gerekir.
Ariel Bogdziewicz

-3

Benim için her şey çok basitti. Aynı sorunu yaşadım ve bir hafta boyunca ne yapacağımı bilmiyordum.

Arşivlenmiş bir uygulama gönderdikten sonra, küçük açılır pencerede dağıtım sertifikası göreceksiniz. İşaretini kaldırmanız gereken bir onay kutusu vardır. Bundan sonra onu gönderecek ve sembol dosyaları hakkında bir e-posta alacaksınız. AMA sorun değil. Bu sadece bir uyarı; hata değil! Bu onay kutusunun işaretini kaldırırsanız uygulamanız doğru bir şekilde gönderilir. Umarım size yardımcı olabilir.

Onay kutusunun ve açılır pencerenin ekran görüntüsü:

Onay kutusunun ve açılır pencerenin ekran görüntüsü


Umarım daha detaylı olursun .... Ne tür bir onay kutusunun veya pop-up'ından bahsettiğini bilmiyorum. Belki bir ekran görüntüsü?
Louis Hong

gyazo.com/6d7bb2035979cb75253ba92a40e8d898 Bunu görmek düşünüyorum, bu kişi o
Louis Hong

6
Evet, ancak bu paketteki tüm sembolleri kaldırır ve bu nedenle sembolik kilitlenme raporları almazsınız? (TestFlight ile şimdi App Store uygulamalarında sembolik kilitlenme raporları sağlıyorlar mı?)
Markus Rautopuro

31
Bu, sorunun geçerli bir çözümü değildir. Bu, sorunu gidermek değil, semptomdan kaçınmaktır. İhtiyacınız olmayan sembolleri nasıl yüklediğinizle ilgili açıklama için Mikhails yanıtına bakın. Bu yanıt , herhangi bir sembolün yüklenmesini önler , böylece iTunesConnect
JConway

3
YAPMAYIN, eğer yaparsanız App Store'daki çökme hataları için uygulamanızı analiz
edemezsiniz
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.