ios 成功提交我的应用程序后“符号文件太多”
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/25755240/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
"Too many symbol files" after successfully submitting my apps
提问by Jim Barber
I downloaded Xcode 6 GM and submitted two Swift apps to the app store today. Both passed all pre-upload verification and all the other stuff they had to pass and were successfully submitted. But then I got two emails from Apple... one for each program and they both said this:
我今天下载了 Xcode 6 GM 并提交了两个 Swift 应用程序到应用程序商店。两者都通过了所有上传前验证以及他们必须通过的所有其他内容并成功提交。但是后来我收到了来自 Apple 的两封电子邮件……每个程序一封,他们都这样说:
Dear developer,
We have discovered one or more issues with your recent delivery for "xxxxxxxx" (my app name removed). Your delivery was successful, but you may wish to correct the following issues in your next delivery:
Too many symbol files - These symbols have no corresponding slice in any binary [1431D977-72BC-308F-AB71-71529F25400B.symbols, 158C72A7-98AC-3F07-B2BE-88427591B413.symbols, 44973EAC-563E-340C-B549-55A5014A68BA.symbols, 678BF06F-0C3D-3A09-BFBF-699C7079FECD.symbols, 90907DDB-0400-38ED-BB5F-0C12333C0624.symbols, 93B79949-5757-374A-97B9-825AE1A61B7D.symbols, ABA05220-4FB0-397F-AFBB-08774A82F4CA.symbols, AD70F02A-4422-32B8-8C40-CF9B45A2CCC6.symbols, B0CC9F7D-C542-3E18-A518-B28B7ECABE80.symbols, BF6A4C3B-6FA5-3C51-8404-19C2F132458D.symbols, C9D6E078-8E2A-39D9-8DEE-476916A69CEE.symbols, CF5320DF-AB31-3845-BAD5-F6E51045D396.symbols, D4967AA3-8FB0-3712-B0DE-7F4144AF8F4B.symbols, D813B314-AD37-31D4-B675-442052994495.symbols, DF42A13F-08D8-3E71-B221-FC357E0B60F5.symbols, F5F636C2-F0E0-3CA7-8F7D-C49A36CD5C65.symbols]
After you've corrected the issues, you can use Xcode or Application Loader to upload a new binary to iTunes Connect.
Regards,
The App Store team
亲爱的开发者,
我们发现您最近为“xxxxxxxx”(我的应用名称已删除)交付的一个或多个问题。您的交付成功,但您可能希望在下次交付时更正以下问题:
符号文件太多 - 这些符号在任何二进制文件中都没有相应的切片 [1431D977-72BC-308F-AB71-71529F25400B.symbols, 158C72A7-98AC-3F07-B2BE-88427591B413.symbols, 435C-308F-AB71-71529F25400B.symbols, 435C54B40B.symbols. ,678BF06F-0C3D-3A09-BFBF-699C7079FECD.symbols,90907DDB-0400-38ED-BB5F-0C12333C0624.symbols,93B79949-5757-374A-97B9-825AE1A61B7D.symbols,ABA05220-4FB0-397F-AFBB-08774A82F4CA.symbols,AD70F02A -4422-32B8-8C40-CF9B45A2CCC6.symbols,B0CC9F7D-C542-3E18-A518-B28B7ECABE80.symbols,BF6A4C3B-6FA5-3C51-8404-19C2F132458D.symbols,C9D6E078-8E2A-39D9-8DEE-476916A69CEE.symbols,CF5320DF-AB31 -3845-BAD5-F6E51045D396.symbols,D4967AA3-8FB0-3712-B0DE-7F4144AF8F4B.symbols,D813B314-AD37-31D4-B675-442052994495.symbols,DF42A13F-08D8-3E71-B221-FC357E0B60F5.symbols,F5F636C2-F0E0-3CA7 -8F7D-C49A36CD5C65.symbols]
更正问题后,您可以使用 Xcode 或 Application Loader 将新的二进制文件上传到 iTunes Connect。
问候,
应用商店团队
I'm going to guess that really has nothing to do with me or my apps... and it is just a quirk of day one Swift app submissions? Both apps are still sitting in "Waiting for approval" mode. I certainly can't think of anything I could change to make what they said go away! Anyone else submit a Swift app yet and get that response? Think I should just ignore it and wait to see what happens?
我猜这真的与我或我的应用程序无关……这只是 Swift 应用程序提交第一天的一个怪癖?这两个应用程序仍处于“等待批准”模式。我当然想不出我可以改变什么来让他们说的话消失!还有其他人提交 Swift 应用程序并获得响应吗?认为我应该忽略它并等待看看会发生什么?
回答by Mikhail Grebionkin
This happens if you are including debug information of your libraries with the project archive but are not including binaries.
如果您在项目存档中包含库的调试信息但不包含二进制文件,则会发生这种情况。
- Open the Organizer window in Xcode
- Right-click on an archive that had this issue and select "Show in Finder".
- Right-click on the archive file and select "Show Package Contents"
In the "dSYMs" folder you will see several files. If you run the
dwarfdump
console commandon these files you will get a list of UUID strings:dwarfdump -u MyFile.dSYM
- 在 Xcode 中打开管理器窗口
- 右键单击有此问题的存档,然后选择“在 Finder 中显示”。
- 右键单击存档文件并选择“显示包内容”
在“dSYMs”文件夹中,您将看到几个文件。如果对这些文件运行
dwarfdump
控制台命令,您将获得 UUID 字符串列表:dwarfdump -u MyFile.dSYM
I'm sure you will find some matching UUIDs from Apple's email.
我相信您会从 Apple 的电子邮件中找到一些匹配的 UUID。
To avoid this warning you need to include with your archive only the dSYM
files of your application and not the libraries. For this you need to change the build configuration of the libraries to not generate a dSYM
file. Just search for "debug information format" in configuration and change it from DWARF with dSYM File
to DWARF
only.
为避免此警告,您需要在存档中仅包含dSYM
应用程序的文件,而不是库。为此,您需要更改库的构建配置以不生成dSYM
文件。只需在配置中搜索“调试信息格式”并将其从 更改DWARF with dSYM File
为DWARF
。
For example, in the screenshot below you will find the Stripe iOS framework.
例如,在下面的屏幕截图中,您将找到 Stripe iOS 框架。
回答by Denis Kutlubaev
If you encountered this problem while using CocoaPods, add this to your Podfile:
如果您在使用 CocoaPods 时遇到此问题,请将其添加到您的 Podfile 中:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf'
end
end
end
It will set Debug Information Format to DWARF only for all your Pod targets only (not the main app target)
它将仅为您的所有 Pod 目标(不是主应用程序目标)设置调试信息格式为 DWARF
回答by Jerry Chen
If you are using CocoaPods and your app is set to use arm64 only (i.e. there is only arm64 in your project's info.plist)
如果您使用 CocoaPods 并且您的应用程序设置为仅使用 arm64(即您的项目的 info.plist 中只有 arm64)
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
then you can try adding the following script in your Podfile to solve this issue.
那么您可以尝试在 Podfile 中添加以下脚本来解决此问题。
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
config.build_settings['ARCHS'] = 'arm64'
end
end
end
AND
和
set all your projects' targets (not the targets in Pods) to arm64 only
将所有项目的目标(不是 Pod 中的目标)设置为仅 arm64
回答by miOS
I have this issue due to the project has valid architecture arm64where the CocoaPods targets have valid architecture arm64, armv7 and armv7s.
我有这个问题是因为项目具有有效的架构arm64,其中 CocoaPods 目标具有有效的架构arm64, armv7 和 armv7s。
To check which target has which valid architecture follow following steps
要检查哪个目标具有哪个有效架构,请按照以下步骤操作
- In Xcode -> Window -> Organizer
- Select the archive and Reveal in Finder
- On .xcarchivefile, Show package content
Open terminal and give path of dSYMsfolder.
Enter command
dwarfdump --uuid *
and it will show list of UUIDs with valid architectures.
- 在 Xcode -> 窗口 -> 管理器中
- 选择存档并在 Finder 中显示
- 在.xcarchive文件上,显示包内容
打开终端并给出dSYMs文件夹的路径。
输入命令
dwarfdump --uuid *
,它将显示具有有效架构的 UUID 列表。
The UUID will match with Apple's warning email
UUID 将与 Apple 的警告电子邮件匹配
The main project and cocoa pods target suppose to have same valid architecture. By doing this, it will solve the issue.
主项目和可可豆荚目标假设具有相同的有效架构。通过这样做,它将解决问题。
回答by Tarun Seera
回答by drees
The above helped troubleshoot, but couldn't solve. We had project at iOS 12 but pods 10 - led to a bunch of armv7 files. Updating pod to iOS 12 solved instantly.
以上帮助排除故障,但无法解决。我们在 iOS 12 上有项目,但 pods 10 - 导致了一堆 armv7 文件。将 pod 更新到 iOS 12 立即解决。
回答by Frank
The problem for me was a line in my build.xcconfig
file.
I had to remove
我的问题是我的build.xcconfig
文件中有一行。我不得不删除
IPHONEOS_DEPLOYMENT_TARGET = 11.0
which was setting the project to only build for arm64 (and not arm7).
Following the steps by @miOS
I could see that the pods project was building for both.
这将项目设置为仅针对 arm64(而不是 arm7)构建。按照@miOS
我的步骤,我可以看到 pods 项目正在为两者构建。
回答by ARR
Had the same problem fixed it by having the same "General" => "Deployment info" => "Deployment target" for all my targets.
通过对我的所有目标使用相同的“常规”=>“部署信息”=>“部署目标”,解决了同样的问题。
回答by Sanad Barjawi
In Xcode, look in Build Settings for “Strip Debug Symbols During Copy” (COPY_PHASE_STRIP). When enabled, debug symbols are omitted from your .app and placed into a .dSYM file. Otherwise your .app contains these symbols. (By default, debug symbols are stripped from release builds for reasons of obfuscation. You probably shouldn't change this setting for the release configuration.)
在 Xcode 中,查看 Build Settings 中的“Strip Debug Symbols during Copy” (COPY_PHASE_STRIP)。启用后,调试符号将从您的 .app 中省略并放入 .dSYM 文件中。否则您的 .app 包含这些符号。(默认情况下,出于混淆的原因,调试符号会从发布版本中删除。您可能不应该为发布配置更改此设置。)
Make sure you check this option in project Build Settings
确保在项目构建设置中选中此选项
https://possiblemobile.com/2015/03/symbolicating-your-ios-crash-reports/
https://possiblemobile.com/2015/03/symbolicating-your-ios-crash-reports/
回答by lenden
For me everything was very simple. I had the same problem and didn't know what to do for a week.
对我来说,一切都很简单。我遇到了同样的问题,一周不知道该怎么办。
After you submit an archived application, you will see certificate for distribution in small popup window. There is a checkbox after it, which you should uncheck. After that you will submit it and get an email about symbol files. BUT it isn't problem. It's just a warning; not an error! If you uncheck that checkbox, your app will be sent correctly. I hope it may help you.
提交存档申请后,您将在小弹出窗口中看到分发证书。它后面有一个复选框,您应该取消选中它。之后,您将提交它并收到一封有关符号文件的电子邮件。但这不是问题。这只是一个警告;不是错误!如果您取消选中该复选框,您的应用程序将被正确发送。我希望它可以帮助你。
Screenshot of the checkbox and the popup:
复选框和弹出窗口的屏幕截图: