“Too many symbol files” warning when submitting app

被刻印的时光 ゝ 提交于 2020-01-30 23:06:24

问题


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?


回答1:


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 cocoapod projects, and the Build 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 and right click->Show in finder to locate that .xcarchive file. Then use terminal to navigate into the .xcarchive(it's a bundle like .app) and then to the dSYMs directory, run dwarfdump --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 to arm64 only in Build Setting of my project. In this case, I should also set Valid Architectures same for the Pod 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 the targets are set properly, go to Product->Archive to re-archive. You should check the uuid(s) of dSYM files again just in case.

I hope I have myself understood :)




回答2:


Crashlytics reporting will not be affected by this setting.




回答3:


Let's say you are targeting iOS 11 but your cocoapods frameworks have minimum deployment target less that iOS 11, then add this at the end of your podfile:

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

"Too many symbol files" warning is telling you that your project has more restrictive constraints than the cocopods frameworks.




回答4:


Disable bitcode in the build setting.

I got similar problem and determined that enabling bitcode will produce BCSymbolMaps in the app archive. Disabling bitcode resolve the issue.



来源:https://stackoverflow.com/questions/34313049/too-many-symbol-files-warning-when-submitting-app

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