“太多符号文件”在提交应用时发出警告
我将我的应用程序提交到app store并收到以下警告(不是错误):
符号文件太多 – 这些符号在任何二进制文件中都没有对应的切片[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的设备上,所以我只在我的项目的Build Setting
中将Valid Architectures
设置为arm64
。 在这种情况下,我还应该为Pod
项目目标设置相同的Valid Architectures
(根据您通过Pod
添加的框架数量,可能有多个目标)。 通过这样做, Pods
项目将不会在构建过程中生成冗余的dSYM文件。 正确设置所有targets
后,转到Product
– > Archive
以重新存档。 您应该再次检查dSYM文件的uuid,以防万一。
我希望自己能理解:)
Crashlytics报告不会受此设置的影响。
在构建设置中禁用bitcode。
我遇到了类似的问题,并确定启用bitcode将在app存档中生成BCSymbolMaps。 禁用bitcode可解决此问题。
- Visual Studio Debugger无法连接到iOS模拟器中的远程Apache Cordova应用程序
- HealthKit – 我们可以先问一些权限,然后再问一些吗?
- Testflight SDK缺less报告
- 背景音乐播放不工作在iOS模拟器
- 更改App Store中支持的语言的iOS应用程序列表
- Xcode错误 – 终止应用程序由于未捕获的exception“NSUnknownKeyException”,原因:':
- 在Objective-C中发布JSON
- safeAreaLayoutGuide在阻塞的旋转上返回错误的值
- “alert()”和“confirm()”不支持“apple-mobile-web-app-capable”