“Too many symbol files” after successfully submitting my apps

丶灬走出姿态 提交于 2019-11-27 16:42:44
Mikhail Grebionkin

This happens if you are including debug information of your libraries to project archive but are not including binaries. Open an organizer window with your project. In right button menu select "Show in finder". Once again use right button click on project's archive file to see contents of the package. In dSYMs folder you can find a batch of files. If you run console command on these files you will get a list of UUID strings:

dwarfdump -u MyFile.dSYM 

I'm sure you will find some UUIDs from Apple's email.

To avoid this warning you need to include to archive only dSYM file of your application but not libraries. For this you need change build configuration of the libraries to not generate dSYM file. Just search for "debug information format" in configuration and change it from DWARF with dSYM File to DWARF only. On screenshot you will find example for Stripe iOS framework.

If you encountered this problem while using Cocoapods, add this to your Podfile:

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 

It will set Debug Information Format to DWARF only for all your Pod targets only (not the main app target)

If you are using Pods and your app set arm64 only (there is only arm64 in your project's info.plist)

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

you can try following script in Podfile to solve this issue.

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 

AND

set all your projects' targets (not the targets in Pods) to arm64 only

ref: https://github.com/CocoaPods/CocoaPods/issues/7111

miOS

I have this issue due to the project has valid architecture arm64 where the cocoa pods targets have valid architecture arm64, armv7 and armv7s.

To check which target has which valid architecture follow following steps

  1. In Xcode -> Window -> Organizer
  2. Select the archive and Reveal in Finder
  3. On .xcarchive file, Show package content
  4. Open terminal and give path of dSYMs folder.

  5. Enter command dwarfdump --uuid * and it will show list of UUIDs with valid architectures.

The UUID will match with Apple's warning email

The main project and cocoa pods target suppose to have same valid architecture. By doing this, it will solve the issue.

lenden

For me everything was very simple. I had the same problem and didn't know what to do for a week.

After you submit archieved application, you see certificate for distribution in small popup window. There is a checkbox after it, you should uncheck it. After that you will submit it and get e-mail about symbol files. BUT it isn't problem. It's just warning but not error! If you uncheck that checkbox, your app will be sent right. I hope it may help

Screenshot of the checkbox and the popup :

Worked for me by enabling bitcode - it was off before

Enable Bitcode - Yes

Had the same problem fixed it by having the same "General" => "Deployment info" => "Deployment target" for all my targets.

In Xcode, look in Build Settings for “Strip Debug Symbols During Copy” (COPY_PHASE_STRIP). When enabled, debug symbols are omitted from your .app and placed into a .dSYM file. Otherwise your .app contains these symbols. (By default, debug symbols are stripped from release builds for reasons of obfuscation. You probably shouldn’t change this setting for the release configuration.)

Make sure you check this option in project Build Settings

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!