"Слишком много файлов символов" после успешной отправки моих приложений

Я загрузил Xcode 6 GM и представил два приложения Swift в магазине приложений сегодня. Оба прошли все проверки предварительной загрузки и все остальное, что им нужно было передать, и были успешно отправлены. Но потом я получил два письма от Apple... по одному для каждой программы, и они оба сказали это:

Уважаемый разработчик,

Мы обнаружили одну или несколько проблем с вашей недавней доставкой для "xxxxxxxx" (мое имя приложения удалено). Ваша поставка прошла успешно, но вы можете исправить следующие проблемы при следующей поставке:

Слишком много файлов символов. Эти символы не имеют соответствующего среза в любых двоичных файлах [1431D977-72BC-308F-AB71-71529F25400B.symbols, 158C72A7-98AC-3F07-B2BE-88427591B413.symbols, 44973EAC-563E-340C-B549- 55A5014A68BA.символы, 678BF06F-0C3D-3A09-BFBF-699C7079FECD.символы, 90907DDB-0400-38ED-BB5F-0C12333C0624.символы, 93B79949-5757-374A-97B9-825AE1A61B7D.символы, ABA05220-4FB0-397F-AFBB-08774A82F4CA. символы, AD70F02A-4422-32B8-8C40-CF9B45A2CCC6.символы, B0CC9F7D-C542-3E18-A518-B28B7ECABE80.символы, BF6A4C3B-6FA5-3C51-8404-19C2F132458D.символы, C9D6E078-8E2A-39D9-8DEE-476916A69CEE.символы, CF5320DF-AB31-3845-BAD5-F6E51045D396.символы, D4967AA3-8FB0-3712-B0DE-7F4144AF8F4B.символы, D813B314-AD37-31D4-B675-442052994495.символы, DF42A13F-08D8-3E71-B221-FC357E0B60F5.символы, F5F636C2- F0E0-3CA7-8F7D-C49A36CD5C65.symbols]

После устранения проблем вы можете использовать Xcode или Application Loader для загрузки нового бинарного файла в iTunes Connect.

Привет,

Команда App Store

Я собираюсь догадаться, что это действительно не имеет ничего общего со мной или моими приложениями... и это просто причуда в представлении приложений Swift на один день? Оба приложения все еще сидят в режиме ожидания "Ожидание". Я, конечно, не могу думать ни о чем, что мог бы изменить, чтобы сделать то, что они сказали, уйти! Кто-нибудь еще представляет приложение Swift и получит ответ? Думаю, я должен просто игнорировать его и ждать, чтобы узнать, что произойдет?

Ответ 1

Это происходит, если вы включаете отладочную информацию своих библиотек в архив проекта, но не включаете двоичные файлы. Откройте окно организатора с вашим проектом. В меню правой кнопки выберите "Показать в поиске". Еще раз щелкните правой кнопкой мыши на файле архива проекта, чтобы увидеть содержимое пакета. В папке dSYMs вы можете найти партию файлов. Если вы запустите консольную команду в этих файлах, вы получите список строк UUID:

dwarfdump -u MyFile.dSYM

Я уверен, что вы найдете UUID из электронной почты Apple.

Чтобы избежать этого предупреждения, вам нужно включить в архив только dSYM файл вашего приложения, но не библиотеки. Для этого вам нужно изменить конфигурацию сборки библиотек, чтобы не генерировать файл dSYM. Просто найдите "формат отладочной информации" в конфигурации и измените его только с DWARF with dSYM File на DWARF. На скриншоте вы найдете пример для рамки IOS для Stripe.

введите описание изображения здесь

Ответ 2

Если вы столкнулись с этой проблемой при использовании Cocoapods, добавьте это в свой подфайл:

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

Он установит формат отчета Debug для DWARF только для всех ваших целевых объектов Pod (не для основного целевого приложения)

Ответ 3

Если вы используете Pods и в вашем приложении установлен только 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

А ТАКЖЕ

установите цели всех ваших проектов (не цели в модулях) только на arm64

enter image description here

ссылка: https://github.com/CocoaPods/CocoaPods/issues/7111

Ответ 4

У меня возникла эта проблема из-за допустимой архитектуры проекта arm64, в которой цели cocoa-бобов имеют действующую архитектуру arm64, armv7 и armv7s.

Чтобы проверить, какая цель имеет какую действительную архитектуру, выполните следующие действия:

  1. В Xcode → Окно → Органайзер
  2. Выберите архив и откройте в Finder
  3. В .xcarchive файле Показать содержимое пакета
  4. Откройте терминал и укажите путь к папке dSYMs.

  5. Введите команду dwarfdump --uuid *, и она покажет список UUID с допустимыми архитектурами.

UUID будет совпадать с предупреждением Apple по электронной почте

Предполагается, что основной проект и cocoa-бобы имеют одинаковую архитектуру. Делая это, это решит проблему.

Ответ 5

Для меня все было очень просто. У меня была такая же проблема и я не знал, что делать в течение недели.

После отправки архивного приложения вы увидите сертификат для распространения в небольшом всплывающем окне. После этого есть флажок, вы должны снять флажок. После этого вы отправите его и получите электронную почту о файлах символов. НО это не проблема. Это просто предупреждение, но не ошибка! Если вы снимете этот флажок, ваше приложение будет отправлено правильно. Надеюсь, это поможет

Снимок экрана с флажком и всплывающим окном:

Ответ 6

Работал для меня, включив битовый код - он был выключен раньше

Включить битовый код - Да

enter image description here

Ответ 7

Если бы та же проблема была исправлена, то есть "General" => "Информация о развертывании" => "Цель развертывания" для всех моих целей.

Ответ 8

Я вижу ту же проблему, но UUID, предоставленный яблоком, не отображается, когда я делаю dwarfdump. Есть идеи, когда это произойдет?

Ответ 9

В XCode, посмотрите в Настройках сборки для "Полоса Символов Отладки во время Копирования" (COPY_PHASE_STRIP). Когда включено, символы отладки опускаются из вашего .app и помещаются в файл .dSYM. В противном случае ваш .app содержит эти символы. (По умолчанию символы отладки удаляются из сборок выпуска по причинам запутывания. Возможно, вам не следует изменять этот параметр для конфигурации выпуска.)

Убедитесь, что вы отметили эту опцию в настройках проекта.

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

Ответ 10

Проблемой для меня была строка в моем файле build.xcconfig. Я должен был удалить

IPHONEOS_DEPLOYMENT_TARGET = 11.0

который настраивал проект на сборку только для arm64 (а не arm7). Следуя указаниям @miOS, я увидел, что проект pods строился для обоих.