Ошибка отправки приложения - испорчено 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-й сборки.
- Я использовал какой-то быстрый класс в исходном коде target-c, который я использовал для моста. Пока вы строите проект, вы можете видеть предупреждение на левой панели, связанное с проектом, и есть одна строка с надписью update для swift 4.
- После преобразования swift 4 я получаю еще одно предупреждение, например, использую @objc для использования swift 3 в последнем коде swift 4.
Вы можете проверить, как использовать @objc в классе swift, проверить эту ссылку: Использование Swift 3 @objc в режиме Swift 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: приложение содержит один или несколько поврежденных двоичных файлов. Перестройте приложение и повторно отправьте
После того, как узнать, что для такого рода недопустимых бинарных отклонений нет единого решения. Я упомянул некоторые возможные решения, которые в последнее время работают для некоторых пользователей.
- Обновите ваши какао-стручки, если вы используете их долгое время и которые содержат некоторую среду или класс swift начиная с swift 2.0, а затем просто обновите ваши какао-стручки с поддержкой swift 4 и целевым значением 10.0, чтобы эта ошибка исчезла.
- Один из пользователей, с которыми я разговаривал, включил битовый код в настройках сборки, и эта проблема решается за него
- Некоторые из пользователей удаляют неиспользуемый код, класс и инфраструктуру, которые непосредственно используются в коде без проблем с какао-бобами.
- Для меня я получаю предупреждение в левой панели, как на следующем изображении
- Как только я перехожу на
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 мы прошли вчера вечером. Пытался выяснить, что решило проблему после всех этих изменений, - похоже, сейчас проходит и начальная сборка.
Так что три дня я мог провести на улице...