提交应用时,"符号文件太多"会发出警告

Yog*_*ton 8 xcode app-store appstore-approval ios

我将我的应用程序提交到应用程序商店并收到以下警告(不是错误):

符号文件太多 - 这些符号在任何二进制文件中都没有相应的切片[XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX.symbols,XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX.symbols]

是什么导致了这个问题 我该如何解决?它会给Crashlytics带来崩溃报告问题吗?

Nan*_*gin 32

同样的问题发生在我身上,这就是为什么会发生这种情况和解决方案.

简短版本:由于项目设置不当,正在生成冗余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 Architecturesarm64只在Build Setting我的项目.在这种情况下,我还应该Valid ArchitecturesPod项目目标设置相同的内容(可能有多个目标取决于您通过Pod添加的框架数量).通过这样做,Pods项目在构建过程中不会生成冗余的dSYM文件.完成所有targets设置后,转到Product- > Archive重新存档.您应该再次检查duY(s)dSYM文件以防万一.

我希望自己能理解:)


G S*_*G S 12

假设您的目标是 iOS 11,但您的 cocoapods 框架的最低部署目标低于 iOS 11,然后在 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
Run Code Online (Sandbox Code Playgroud)

“符号文件过多”警告告诉您,您的项目比 cocopods 框架具有更多限制性约束。 在此处输入图片说明


小智 2

Crashlytics 报告不会受此设置的影响。