I submitted my app to the app store and received the following warning (not error):
Too many symbol files – These symbols have no corresponding slice in
any binary [XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX.symbols,
XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX.symbols]
What caused this issue? How can I fix it? Will it create issues with crash reporting to Crashlytics?
Best Answer
Same problem occurred to me, and here is why this happening and the solution.
Short version: Redundant dSYM files are being produced due to improper project settings. In my case, the "project" consists of one major
.xcproject
and several CocoaPods projects, and theBuild Setting\Valid Architectures
setting of the latter one is more extensive than the former. Thus Xcode is producing redundant dSYM files for that pod projects and Apple detected those dSYM files is useless because the main project is set to a more constrained level.Bunch of bullshit version:
Go to
Window
->Organizer
and select your submitting version of archive andright click
->Show in finder
to locate that .xcarchive file. Then useterminal
to navigate into the .xcarchive(it's a bundle like .app) and then to thedSYMs
directory, rundwarfdump --uuid *
to show the uuids of that dSYM files. Check whether the uuid(s) in the complaining email are in the list. The email says those dSYM files are redundant, so we should prevent producing them when building the archive.For me, I used AFNetworking and other 3rd party frameworks in my app, and they are added to the project(or workspace more precisely) via CocoaPods. I need to guarantee my app won't be installed on any device older than iPhone5s, so I set
Valid Architectures
toarm64
only inBuild Setting
of my project. In this case, I should also setValid Architectures
same for thePod
project targets(there may be several targets depending on how many frameworks you have added via Pods). By doing this,Pods
project won't produce the redundant dSYM files during the build process. After all thetargets
are set properly, go toProduct
->Archive
to re-archive. You should check the uuid(s) of dSYM files again just in case.I hope I have myself understood :)