“Terlalu banyak file simbol” setelah berhasil mengirimkan aplikasi saya

199

Saya mengunduh Xcode 6 GM dan mengirimkan dua aplikasi Swift ke app store hari ini. Keduanya melewati semua verifikasi pra-unggah dan semua hal lain yang harus mereka lewati dan berhasil dikirim. Tapi kemudian saya mendapat dua email dari Apple ... satu untuk setiap program dan mereka berdua mengatakan ini:

Pengembang yang terhormat,

Kami telah menemukan satu atau beberapa masalah dengan pengiriman Anda baru-baru ini untuk "xxxxxxxx" (nama aplikasi saya dihapus). Pengiriman Anda berhasil, tetapi Anda mungkin ingin memperbaiki masalah berikut dalam pengiriman berikutnya:

Terlalu banyak file simbol - Simbol-simbol ini tidak memiliki irisan yang sesuai dalam biner [1431D977-72BC-308F-AB71-71529F25400B.symbols, 158C72A7-98AC-3F07-B2BE-88427591B413.symbols, 44973EAC-563E-340C505 , 678BF06F-0C3D-3A09-BFBF-699C7079FECD.symbols, 90907DDB-0400-38ED-BB5F-0C12333C0624.symbols, 93B79949-5757-374A-97B9-07f08dmdmf0f0f0fbmnfmnmnnfmnfbnfmnfmnfbnfmnfmnfbnfmnnnnnnnnnnnnnrnnnnnnnnnnnnnnnnnnnnnnnnnnnnl -4422-32B8-8C40-CF9B45A2CCC6.symbols, B0CC9F7D-C542-3E18-A518-B28B7ECABE80.symbols, BF6A4C3B-6FA5-3C51-8404-19C2F132458D987889Edc -3845-BAD5-F6E51045D396.symbols, D4967AA3-8FB0-3712-B0DE-7F4144AF8F4B.symbols, D813B314-AD37-31D4-B675-442052994495.s125f07f0f0f0f0f0f0f0f0f0f0f0f0f0fbf0fmfbfmfmfmfmfmfmfmfb -8F7D-C49A36CD5C65.symbols]

Setelah Anda memperbaiki masalah, Anda dapat menggunakan Xcode atau Application Loader untuk mengunggah biner baru ke iTunes Connect.

Salam,

Tim App Store

Saya akan menebak bahwa sebenarnya tidak ada hubungannya dengan saya atau aplikasi saya ... dan itu hanya kekhasan dari satu hari pengiriman aplikasi Swift? Kedua aplikasi masih duduk dalam mode "Menunggu persetujuan". Saya tentu tidak bisa memikirkan apa pun yang bisa saya ubah untuk membuat apa yang mereka katakan hilang! Adakah yang belum mengirimkan aplikasi Swift dan mendapatkan respons itu? Pikir saya harus mengabaikannya dan menunggu untuk melihat apa yang terjadi?

Jim Barber
sumber
Milik saya mengatakan itu dan Invalid Swift Support. Adakah ide mengapa saya bisa mendapatkan ini? Saya menggunakan Xcode terbaru.
Dehli
masalah yang sama di sini, dan aplikasi saya tidak dapat mengirimkan untuk ditinjau. karena masalah ini. ada yang terpecahkan?
yudun1989
1
masalah yang sama di sini. tetap dikirimkan untuk ditinjau .. mari kita lihat apa yang terjadi :)
dandoen
Kedua Aplikasi Swift saya baru saja disetujui untuk di App Store ... jadi saya rasa saya tidak khawatir apa-apa! Wah ... :)
Jim Barber

Jawaban:

128

Ini terjadi jika Anda menyertakan informasi debug perpustakaan Anda dengan arsip proyek tetapi tidak termasuk binari.

  1. Buka jendela Agenda di Xcode
  2. Klik kanan pada arsip yang memiliki masalah ini dan pilih "Show in Finder".
  3. Klik kanan pada file arsip dan pilih "Tampilkan Isi Paket"
  4. Dalam folder "dSYMs" Anda akan melihat beberapa file. Jika Anda menjalankan dwarfdumpperintah konsol pada file-file ini, Anda akan mendapatkan daftar string UUID:

    dwarfdump -u MyFile.dSYM

Saya yakin Anda akan menemukan beberapa UUID yang cocok dari email Apple.

Untuk menghindari peringatan ini, Anda perlu memasukkan arsip Anda hanya dengan dSYMfile aplikasi Anda dan bukan perpustakaan. Untuk ini, Anda perlu mengubah konfigurasi build perpustakaan untuk tidak menghasilkan dSYMfile. Hanya mencari "debug Format informasi" dalam konfigurasi dan mengubahnya dari DWARF with dSYM Fileke DWARFsaja.

Misalnya, dalam tangkapan layar di bawah ini Anda akan menemukan kerangka iOS Stripe.

Tangkapan layar pengaturan proyek Xcode

Mikhail Grebionkin
sumber
13
dwarfdump -u *dalam folder untuk melihat semua UUID
Jon
@Jo ooooh kenapa aku melihatnya setelah aku membuat satu per satu? :) pokoknya terima kasih!
Serj Rubens
6
Akankah menghapus file dSYM berarti crash yang terkait dengan pihak ke-3 tidak akan disimbolkan lagi pada Crashlytics (atau alat pelaporan kerusakan lainnya)?
Eugenio
Namun, jika Anda menggunakan firebase \ fabric, file dsym harus digunakan untuk melihat crash log di situs. Apakah mereka masih bekerja dengan perubahan ini?
Mattia Lancieri
88

Jika Anda mengalami masalah ini saat menggunakan CocoaPods, tambahkan ini ke Podfile Anda:

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

Ini akan mengatur Format Informasi Debug ke DWARF hanya untuk semua target Pod Anda saja (bukan target aplikasi utama)

Denis Kutlubaev
sumber
@wzbozon Ya, saya minta periksa saja. Karena setelah saya melakukannya, Crashlyticts berhenti bekerja. Terima kasih!
Cesar Rodriguez
Crashlytics akan terus bekerja untuk aplikasi Anda karena skrip ini mengubah pengaturan build untuk pod saja.
Stan
1
Saya setuju. Tetapi Anda tidak akan melihat laporan untuk pod. Anda juga dapat mengatur DWARF dengan File dSYM hanya untuk beberapa pod, misalnya pod pengembangan.
Denis Kutlubaev
@Stan, apakah Anda mengatakan bahwa Crashlytics akan tetap berfungsi? Cesar Rodriguez tampaknya mengatakan itu tidak akan berhasil.
airowe
8
Ini menyelesaikannya untuk saya. Jangan lupa untukpod install
firebear
17

Jika Anda menggunakan CocoaPods dan aplikasi Anda diatur untuk menggunakan arm64 saja (yaitu hanya ada arm64 di info.plist proyek Anda)

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

maka Anda dapat mencoba menambahkan skrip berikut di Podfile Anda untuk menyelesaikan masalah ini.

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

DAN

setel semua target proyek Anda (bukan target di Pods) menjadi arm64 saja

Pengaturan proyek Xcode

Referensi masalah CocoaPods Github

Jerry Chen
sumber
Mungkin Anda harus memasukkan arm64e juga sekarang, bukan?
shim
Saya akan menyertakan arm64 untuk simulator. Itu akan dihapus secara otomatis untuk rilis build.
cybergen
13

Saya memiliki masalah ini karena proyek ini memiliki arm64 arsitektur yang valid di mana target CocoaPods memiliki arsitektur arm64, armv7 dan armv7 yang valid .

Untuk memeriksa target mana yang memiliki arsitektur yang valid ikuti langkah-langkah berikut

  1. Dalam Xcode -> Window -> Organizer
  2. Pilih arsip dan Buka di Finder
  3. Pada file .xcarchive , Tampilkan konten paket
  4. Buka terminal dan berikan path folder dSYMs .

  5. Masukkan perintah dwarfdump --uuid *dan itu akan menampilkan daftar UUID dengan arsitektur yang valid.

UUID akan cocok dengan email peringatan Apple

Target proyek utama dan kakao seharusnya memiliki arsitektur yang sama. Dengan melakukan ini, itu akan menyelesaikan masalah.

MIOS
sumber
Saya pikir itu menjelaskan yang terbaik apa yang sedang terjadi. Saya memiliki peringatan ini hanya tentang perpustakaan dengan arsitektur armv7 karena proyek saya dibuat hanya untuk arm64. Pertanyaan tetap jika saya harus menambahkan armv7 ke proyek atau menghapusnya dari Pods.
Ariel Bogdziewicz
6

Bekerja untuk saya dengan mengaktifkan bitcode - itu mati sebelumnya

Aktifkan Bitcode - Ya

masukkan deskripsi gambar di sini

Tarun Seera
sumber
1

Di atas membantu memecahkan masalah, tetapi tidak bisa menyelesaikan. Kami memiliki proyek di iOS 12 tetapi pod 10 - menyebabkan banyak file armv7. Memperbarui pod ke iOS 12 diselesaikan secara instan.

drees
sumber
0

Apakah masalah yang sama telah memperbaikinya dengan memiliki "Umum" => "Info penerapan" yang sama "=>" Target penerapan "untuk semua target saya.

ARR
sumber
0

Di Xcode, lihat di Bangun Pengaturan untuk "Simbol Debug Strip Selama Salin" (COPY_PHASE_STRIP). Saat diaktifkan, simbol debug dihilangkan dari .app Anda dan ditempatkan ke dalam file .dSYM. Jika tidak. .App Anda mengandung simbol-simbol ini. (Secara default, simbol debug dilepaskan dari rilis build karena alasan kebingungan. Anda mungkin tidak boleh mengubah pengaturan ini untuk konfigurasi rilis.)

Pastikan Anda memeriksa opsi ini di Pengaturan Bangun proyek

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

Sanad Barjawi
sumber
0

Masalahnya bagi saya adalah garis di build.xcconfigfile saya . Saya harus menghapus

IPHONEOS_DEPLOYMENT_TARGET = 11.0

yang menetapkan proyek hanya membangun untuk arm64 (dan bukan arm7). Mengikuti langkah-langkah oleh @miOSsaya bisa melihat bahwa proyek pod sedang membangun untuk keduanya.

jujur
sumber
1
stackoverflow.com/a/49063850/3293172 iOS 11 menjatuhkan dukungan untuk armv7 dan armv7 sehingga hanya diperlukan arm64 jika Anda memiliki target penempatan> = iOS 11.0.
Ariel Bogdziewicz
-2

Bagi saya semuanya sangat sederhana. Saya memiliki masalah yang sama dan tidak tahu harus berbuat apa selama seminggu.

Setelah Anda mengirimkan aplikasi yang diarsipkan, Anda akan melihat sertifikat untuk distribusi di jendela sembulan kecil. Ada kotak centang setelahnya, yang harus Anda hapus centang. Setelah itu Anda akan mengirimkannya dan mendapatkan email tentang file simbol. TAPI itu bukan masalah. Itu hanya peringatan; bukan kesalahan! Jika Anda menghapus centang pada kotak centang itu, aplikasi Anda akan dikirim dengan benar. Saya harap ini dapat membantu Anda.

Cuplikan layar kotak centang dan munculan:

Cuplikan layar kotak centang dan munculan

lenden
sumber
Saya benar-benar berharap Anda akan lebih detail .... Saya tidak tahu kotak centang atau sembulan apa yang Anda bicarakan. Mungkin tangkapan layar?
Louis Hong
gyazo.com/6d7bb2035979cb75253ba92a40e8d898 Saya rasa saya melihatnya, ini yang ini
Louis Hong
5
Ya, tetapi ini akan menghapus semua simbol dari paket, dan karenanya Anda tidak akan menerima laporan kerusakan yang disimbolkan? (Apakah mereka bahkan menyediakan laporan kerusakan yang disimbolkan di aplikasi App Store sekarang dengan TestFlight?)
Markus Rautopuro
30
Ini bukan solusi yang valid untuk masalah ini. Ini menghindari gejala, bukan mengatasi masalah. Lihat jawaban Mikhails untuk deskripsi tentang cara Anda mengunggah simbol yang tidak Anda butuhkan. Jawaban ini mencegah pengunggahan simbol apa pun , sehingga melanggar simbolikasi kerusakan melalui iTunesConnect
JConway
2
JANGAN lakukan itu, jika Anda melakukannya, Anda tidak akan dapat menganalisis aplikasi Anda di App Store untuk kesalahan kerusakan
user924