“符号文件太多";提交应用程序时发出警告 [英] "Too many symbol files" warning when submitting app
问题描述
我已将我的应用提交到应用商店,并收到以下警告(不是错误):
I submitted my app to the app store and received the following warning (not error):
符号文件太多-这些符号中没有对应的切片 任何二进制[XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX.符号, XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX.符号]
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]
是什么原因导致此问题?我该如何解决?会不会向Crashlytics报告崩溃问题?
What caused this issue? How can I fix it? Will it create issues with crash reporting to Crashlytics?
推荐答案
我遇到了同样的问题,这就是为什么发生这种情况以及解决方法.
Same problem occurred to me, and here is why this happening and the solution.
简短版本:由于项目设置不正确,正在生成冗余dSYM文件.就我而言,项目"由一个主要的.xcproject
和几个CocoaPods项目组成,而后一个项目的Build Setting\Valid Architectures
设置比前一个更广泛.因此,Xcode为该Pod项目生成了多余的dSYM文件,而Apple检测到这些dSYM文件没有用,因为主项目设置为更加受限的级别.
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 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.
胡说八道的版本:
转到Window
-> Organizer
并选择归档的提交版本,然后选择right click
-> Show in finder
来找到该.xcarchive文件.然后使用terminal
导航到.xcarchive(这是一个类似.app的捆绑软件),然后导航到dSYMs
目录,运行dwarfdump --uuid *
以显示该dSYM文件的uuid.检查投诉电子邮件中的uuid是否在列表中.电子邮件中说这些dSYM文件是多余的,因此在构建存档时我们应避免产生这些文件.
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.
对我来说,我在应用程序中使用了AFNetworking和其他第三方框架,并通过CocoaPods将它们添加到了项目(或更精确地说是工作区)中.我需要保证我的应用程序不会安装在iPhone5s之前的任何设备上,因此我仅在项目的Build Setting
中将Valid Architectures
设置为arm64
.在这种情况下,我还应该为Pod
项目目标设置Valid Architectures
相同(可能有多个目标,具体取决于您通过Pods添加的框架数量).这样,Pods
项目将不会在构建过程中产生冗余的dSYM文件.正确设置所有targets
后,转到Product
-> Archive
重新存档.您应该再次检查dSYM文件的uuid,以防万一.
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 :)
这篇关于“符号文件太多";提交应用程序时发出警告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!