"符号文件太多"成功提交我的应用程序后

时间:2014-09-09 23:50:14

标签: ios xcode app-store xcodebuild appstoreconnect

我今天下载了Xcode 6 GM并向应用程序商店提交了两个Swift应用程序。两者都通过了所有上传前验证以及他们必须通过并成功提交的所有其他内容。但后来我收到了两封来自Apple的电子邮件......每个节目一封,他们都说了这个:

  

亲爱的开发人员,

     

我们发现您最近交付的一个或多个问题" xxxxxxxx" (我的应用名称已删除)。您的交付成功,但您可能希望在下次交付时更正以下问题:

     

符号文件太多 - 这些符号在任何二进制文件中都没有相应的切片[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。符号,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。符号,F5F636C2- F0E0-3CA7-8F7D-C49A36CD5C65.symbols]

     

更正问题后,您可以使用Xcode或Application Loader将新二进制文件上传到iTunes Connect。

     

此致

     

App Store团队

我猜这真的与我或我的应用程序无关......这只是Swift应用程序提交日期的一个怪癖?两个应用程序仍然在等待批准"模式。我当然无法想到任何我可以改变的东西,以使他们所说的消失!还有其他人提交Swift应用程序并获得响应吗?我想我应该忽略它并等待看看会发生什么?

10 个答案:

答案 0 :(得分:57)

如果要将库的调试信息包含到项目存档中但不包含二进制文件,则会发生这种情况。打开包含项目的管理器窗口。在右键菜单中选择“在查找器中显示”。再次使用右键单击项目的存档文件以查看包的内容。在dSYMs文件夹中,您可以找到一批文件。如果您对这些文件运行console command,您将获得一个UUID字符串列表:

dwarfdump -u MyFile.dSYM

我相信你会从Apple的电子邮件中找到一些UUID。

要避免此警告,您需要包含仅归档应用程序的dSYM文件,而不归档库。为此,您需要更改库的构建配置以不生成dSYM文件。只需在配置中搜索“调试信息格式”,然后将其从DWARF with dSYM File更改为DWARF。在屏幕截图中,您将找到Stripe iOS框架的示例。

enter image description here

答案 1 :(得分:42)

如果您在使用Cocoapods时遇到此问题,请将其添加到您的Podfile:

column

它仅将调试信息格式设置为仅适用于所有Pod目标的DWARF(不是主应用程序目标)

答案 2 :(得分:9)

如果您使用的是Pods,而您的app只设置了arm64(项目的info.plist中只有arm64)

C().f()

您可以尝试在Podfile中使用以下脚本来解决此问题。

<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>arm64</string>
</array>

将所有项目的目标(不是Pods中的目标)设置为仅限arm64

enter image description here

参考:https://github.com/CocoaPods/CocoaPods/issues/7111

答案 3 :(得分:8)

我有这个问题,因为该项目具有有效的架构 arm64 ,其中可可豆荚目标具有有效的架构 arm64,armv7和armv7s

要检查哪个目标具有哪个有效架构,请执行以下步骤

  1. 在Xcode中 - &gt;窗口 - &gt;组织者
  2. 选择存档并在Finder中显示
  3. .xcarchive 文件中,显示包内容
  4. 打开终端并提供 dSYMs 文件夹的路径。

  5. 输入命令dwarfdump --uuid *,它将显示具有有效体系结构的UDIDS列表。

  6. UDID将与Apple的警告电子邮件

    匹配

    主项目和可可豆荚目标假设具有相同的有效架构。通过这样做,它将解决问题。

答案 4 :(得分:6)

对我来说一切都很简单。我遇到了同样的问题,并且不知道一周要做什么。

提交成功的应用程序后,您会在小弹出窗口中看到要分发的证书。之后有一个复选框,您应该取消选中它。之后,您将提交它并收到有关符号文件的电子邮件。但这不是问题。它只是警告但不是错误!如果您取消选中该复选框,您的应用将会被正确发送。我希望它可以帮助

复选框和弹出窗口的屏幕截图:

答案 5 :(得分:1)

通过启用位码为我工作-在

之前已关闭

启用位码-是

enter image description here

答案 6 :(得分:1)

以上内容有助于解决问题,但无法解决。我们在iOS 12上有项目,但在pod 10上却产生了很多armv7文件。将pod更新到iOS 12即可立即解决。

答案 7 :(得分:0)

通过为我的所有目标使用相同的“常规” =>“部署信息” =>“部署目标”,解决了相同的问题。

答案 8 :(得分:0)

  

在Xcode中,在“构建设置”中查找“复制期间的条形调试符号”   (COPY_PHASE_STRIP)。启用后,您的调试符号将被省略   .app并放入.dSYM文件。否则,您的.app包含这些   符号。 (默认情况下,调试符号从发行版本中剥离   由于混淆的原因。您可能不应该更改此设置   用于发布配置。)

确保在项目构建设置

中选中此选项

https://possiblemobile.com/2015/03/symbolicating-your-ios-crash-reports/

答案 9 :(得分:0)

对我来说,问题是我的build.xcconfig文件中的一行。 我必须删除

IPHONEOS_DEPLOYMENT_TARGET = 11.0

将项目设置为仅针对arm64(而非arm7)构建。 按照@miOS的步骤进行操作,我可以看到这两个项目都在构建pods项目。