我下载了Xcode 6 GM,今天向应用商店提交了两个Swift应用。这两款游戏都通过了所有上传前验证和其他必须通过的内容,并成功提交。但后来我收到了苹果公司的两封邮件……每个节目一个,他们都这么说:

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

我猜这真的与我或我的应用程序无关……这只是Swift应用程序提交第一天的一个怪癖吗?这两个应用程序仍处于“等待批准”模式。我当然想不出我能改变什么来让他们说的话消失!有人提交了Swift应用程序并得到了回应吗?你觉得我该无视它,静观其变吗?


当前回答

如果在项目存档中包含库的调试信息,但不包括二进制文件,就会发生这种情况。

在Xcode中打开Organizer窗口 右键单击有此问题的存档,并选择“在Finder中显示”。 右键单击存档文件并选择“Show Package Contents” 在“dSYMs”文件夹中,您将看到几个文件。如果你在这些文件上运行dwarfdump控制台命令,你会得到一个UUID字符串列表: dwarfdump -u MyFile.dSYM

我相信你会从苹果的邮件中找到一些匹配的uuid。

为了避免此警告,您需要在存档中只包含应用程序的dSYM文件,而不是库。为此,您需要更改库的构建配置,以不生成dSYM文件。只需在配置中搜索“调试信息格式”,并将其从“DWARF with dSYM File”更改为“DWARF only”。

例如,在下面的截图中,你会发现Stripe iOS框架。

其他回答

如果在项目存档中包含库的调试信息,但不包括二进制文件,就会发生这种情况。

在Xcode中打开Organizer窗口 右键单击有此问题的存档,并选择“在Finder中显示”。 右键单击存档文件并选择“Show Package Contents” 在“dSYMs”文件夹中,您将看到几个文件。如果你在这些文件上运行dwarfdump控制台命令,你会得到一个UUID字符串列表: dwarfdump -u MyFile.dSYM

我相信你会从苹果的邮件中找到一些匹配的uuid。

为了避免此警告,您需要在存档中只包含应用程序的dSYM文件,而不是库。为此,您需要更改库的构建配置,以不生成dSYM文件。只需在配置中搜索“调试信息格式”,并将其从“DWARF with dSYM File”更改为“DWARF only”。

例如,在下面的截图中,你会发现Stripe iOS框架。

如果你正在使用CocoaPods,并且你的应用被设置为只使用arm64(即在你的项目的info.plist中只有arm64)

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

那么你可以尝试在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

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

CocoaPods Github问题参考

上述方法有助于排除故障,但无法解决问题。我们在iOS 12上有项目,但pod 10导致了一堆armv7文件。更新pod到iOS 12立即解决。

为我工作通过启用比特码-它是关闭之前

启用Bitcode -是

有同样的问题修复它有相同的“一般”=>“部署信息”=>“部署目标”为我的所有目标。