Ошибка отправки приложения - испорчено 1+ испорченных двоичных файлов / непубличного API и никаких дополнительных подробностей

Я отправляю свое приложение в App Store для тестового полета, и после сборки 11 я получаю сбои по электронной почте от Apple:

Непубличное использование API: приложение содержит один или несколько поврежденных двоичных файлов. Перестройте приложение и повторно отправьте

Я не получаю дополнительных подробностей от них. Никаких имен методов или классов или чего-либо еще.

Например, я представил сборку 15, которая в буквальном смысле является точной копией сборки 11 (которая прошла!) С ударом по номеру версии, а сборка 15 не удалась.

Я считаю, что это ошибка Apple, хотя у меня нет другого способа доказать это, кроме пункта выше. Сборки 1-11 работали нормально, и их можно было загружать и распространять.

Я использую Xcode 9.1 и 9.2, оба выдают одну и ту же ошибку.

Я также связался с Apple через DTS, и они сказали, что не могут мне помочь.

Что мне теперь делать?

9 ответов

У меня была именно эта проблема. Я использовал CommonCrypto как "фальшивый" фреймворк. Я удалил это и переключился на метод, описанный принятым ответом в этой теме, и iTunesConnect принял мою сборку.

Получение предупреждения о преобразовании Swift 4 по XCode или наличие "CommonCryptoModule" в выводе cmd при использовании pod update кажется сильным показателем того, затронут ли вас эта проблема или нет.

Наши проекты, у которых не был включен битовый код, начали терпеть неудачу в пятницу 2018-01-26. настройка Enable Bitcode в Yes в настройках сборки тех проектов решена проблема.

После МНОГО исследований этой части мы наконец нашли проблему для этой проблемы: похоже, что Apple выдает эту ошибку для приложений, которые поддерживают как 32, так и 64 бит.

Apple дала это напоминание для Mac Appstore, но, похоже, это касается и приложений для iOS.

Таким образом, решение для этого заключается в поддержке битового кода ИЛИ для отказа от поддержки 32-разрядных устройств путем удаления поддержки ARMV7 и ARMV7S или ниже из Valid Architectures из настроек сборки. Это будет означать, что ваше приложение будет работать только на iPhone 5S и выше. Я надеюсь, что это помогает кому-то. Спасибо!

Была такая же проблема с субботы. В нашем случае потребовалось много проб и ошибок, включение Bitcode не работало. Следующая часть моего podfile была причина:

post_install do |installer| 
  puts("Set deployment target")
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.3'
    end
  end
end

После того, как я удалил этот, он обработал без ошибки (все еще с выключенным Биткодом). Это действительно озадачивает меня, хотя, почему установка цели развертывания внезапно вызывает отклонение.

Я нашел решение самостоятельно после загрузки 9-й сборки.

  1. Я использовал какой-то быстрый класс в исходном коде target-c, который я использовал для моста. Пока вы строите проект, вы можете видеть предупреждение на левой панели, связанное с проектом, и есть одна строка с надписью update для swift 4.
  2. После преобразования swift 4 я получаю еще одно предупреждение, например, использую @objc для использования swift 3 в последнем коде swift 4.
  3. Вы можете проверить, как использовать @objc в классе swift, проверить эту ссылку: Использование Swift 3 @objc в режиме Swift 4 устарело?

  4. Затем я изменил неиспользуемые профили.

Затем я загружаю приложение, и оно работает. Дайте мне знать, если кому-то нужна помощь

Я смог решить это для себя, вот что я сделал:

  • Бит-код отключен в моем проекте и остается отключенным
  • Я удалил 3 модуля, один из которых был CommonCrypto, о котором я забыл (остальные 2 были QRCode и SwiftyJSON)
  • Я удалил их флаги компоновщика, а также в настройках сборки

Надеюсь, это поможет!

Я использовал soffes / CommonCrypto с Карфагеном. Удаление CommonCrypto.framework - это работа для меня, и, пожалуйста, проверьте эту ссылку, как импортировать CommonCryto Framework: http://ioscake.com/importing-commoncrypto-in-a-swift-framework.html

Недавно, с 26 января 2018 года, без какого-либо уведомления или объявления Apple, некоторые изменения, связанные со старым быстрым кодом, больше не работают с подачей заявки в магазин приложений. Я не пользовалась CommonCrypto в моем проекте вообще

Я также сталкиваюсь с этой проблемой, и я делаю большой поиск и размещаю вопрос на форумах Apple и на различных платформах об использовании непубличного API: приложение содержит один или несколько поврежденных двоичных файлов. Перестройте приложение и повторно отправьте

После того, как узнать, что для такого рода недопустимых бинарных отклонений нет единого решения. Я упомянул некоторые возможные решения, которые в последнее время работают для некоторых пользователей.

  1. Обновите ваши какао-стручки, если вы используете их долгое время и которые содержат некоторую среду или класс swift начиная с swift 2.0, а затем просто обновите ваши какао-стручки с поддержкой swift 4 и целевым значением 10.0, чтобы эта ошибка исчезла.
  2. Один из пользователей, с которыми я разговаривал, включил битовый код в настройках сборки, и эта проблема решается за него
  3. Некоторые из пользователей удаляют неиспользуемый код, класс и инфраструктуру, которые непосредственно используются в коде без проблем с какао-бобами.
  4. Для меня я получаю предупреждение в левой панели, как на следующем изображении

  • Как только я перехожу на swift4 я получаю следующее предупреждение:

Использование Swift 3 @objc в режиме Swift 4 не рекомендуется. Обратите внимание на устаревшие предупреждения @objc, проверьте ваш код с включенным ведением журнала "Использование устаревшего Swift 3 @objc", а затем отключите вывод, изменив настройку сборки "Swift 3 @objc Inference" на "По умолчанию" для "appname". цель.

  • Для исправления этого предупреждения я использую этот ответ: Использование Swift 3 @objc в режиме Swift 4 не рекомендуется?

  • После этого мне нужно добавить @objc в swift3 класс публичный метод, который я использовал в моем objective-c класс с использованием моста

  • Я также проверяю другое предупреждение в левой боковой панели, есть другое предупреждение о зависимости цели приложения, которое также может помочь другим.

Надеюсь, что этот ответ может быть полезен для некоторых пользователей, которые еще не нашли ответ, и это может быть полезно.

Похоже, проблема была исправлена ​​в бэкэнде iTunes Connect. После сборки 45 мы прошли вчера вечером. Пытался выяснить, что решило проблему после всех этих изменений, - похоже, сейчас проходит и начальная сборка.

Так что три дня я мог провести на улице...

Другие вопросы по тегам