我将我的应用程序提交到应用程序商店并收到以下警告(不是错误):
符号文件太多 - 这些符号在任何二进制文件中都没有相应的切片[XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX.symbols,XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX.symbols]
是什么导致了这个问题 我该如何解决?它会给Crashlytics带来崩溃报告问题吗?
同样的问题发生在我身上,这就是为什么会发生这种情况和解决方案.
简短版本:由于项目设置不当,正在生成冗余dSYM文件.在我的例子中,"项目"由一个主要的xcproject和几个cocoapod项目组成,Build Setting\Valid Architectures
后者的设置比前者更广泛.因此,XCode正在为该pod项目生成冗余dSYM文件,Apple检测到这些dSYM文件无用,因为主项目设置为更受限制的级别.
一堆废话版本:
转到Window
- > Organizer
并选择您提交的存档版本,然后right click
- > Show in finder
找到该.xcarchive文件.然后使用terminal
导航到.xcarchive(它是像.app这样的包)然后到dSYMs
目录,运行dwarfdump --uuid *
以显示该dSYM文件的uuids.检查抱怨电子邮件中的uuid是否在列表中.电子邮件说这些dSYM文件是多余的,因此我们应该在构建存档时阻止生成它们.
对我来说,我在我的应用程序中使用了AFNetworking和其他第三方框架,并通过CocoaPods将它们添加到项目(或更精确地工作空间)中.我需要保证我的应用程序不会比iPhone5s年长的任何设备上安装,所以我设置Valid Architectures
到arm64
只在Build Setting
我的项目.在这种情况下,我还应该Valid Architectures
为Pod
项目目标设置相同的内容(可能有多个目标取决于您通过Pod添加的框架数量).通过这样做,Pods
项目在构建过程中不会生成冗余的dSYM文件.完成所有targets
设置后,转到Product
- > Archive
重新存档.您应该再次检查duY(s)dSYM文件以防万一.
我希望自己能理解:)