Не удалось отправить приложение - 1 + поврежденные двоичные файлы/использование не публичного API и никаких дополнительных сведений
Я отправлял свое приложение в App Store для тестового полета и после сборки 11, Ive получал сбои по электронной почте от Apple:
Непубличное использование API: приложение содержит один или несколько поврежденных двоичных файлов. Переустановите приложение и повторно отправьте
Я не получаю от них никаких дополнительных данных. Нет имен или классов методов или чего-либо еще.
Например, я представил сборку 15, которая является буквально точной копией сборки 11 (которая прошла!) с ошибкой номера версии и сбором 15.
Я считаю, что это ошибка Apple, хотя я не могу доказать это иначе, чем выше. Сборка 1-11 отлично работала, и их можно было загружать и распространять.
Im, используя Xcode 9.1 и 9.2, оба дают ту же ошибку.
Ive также связался с Apple через DTS, и они сказали, что они не могут мне помочь.
Что мне теперь делать?
Ответы
Ответ 1
У меня была эта точная проблема. Я использовал CommonCrypto как фальшивую структуру. Я удалил это и переключился на метод, описанный принятым ответом в этом потоке, и iTunesConnect принял мою сборку.
Получение предупреждения о преобразовании Swift 4 от XCode или наличие "CommonCryptoModule", отображаемого в CMD-выходе при использовании pod update
, похоже, является сильным индикатором того, затронута ли эта проблема или нет.
Ответ 2
Я нашел решение самостоятельно после загрузки 9-й сборки.
- Я использовал некоторый быстрый класс в исходном коде objective-c, который я использовал мостом. Пока вы строите проект, вы можете увидеть предупреждение левой панели о связанном проекте и есть однострочное обновление для быстрого 4.
- После преобразования swift 4 я получаю еще несколько предупреждений, таких как use @objc, чтобы использовать быстрый код версии 3 для быстрого быстрого 4.
-
Вы можете проверить, как использовать @objc в классе swift, проверьте эту ссылку: Использование вывода Swift 3 @objc в режиме Swift 4 устарел?
-
Затем у меня есть изменения неиспользуемых профилей.
Затем я загружаю приложение, и оно работает. Дайте мне знать, если кому-то нужна помощь.
Ответ 3
Наши проекты, у которых не был установлен биткод, начали сбой в пятницу 2018-01-26. Установка Enable Bitcode
в Yes
в настройках сборки этих проектов решила проблему.
Ответ 4
Была та же проблема с субботы. В нашем случае долгое испытание и ошибка, включение 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
После того, как я удалил это, он обработался без ошибки (все еще с отключенным Bitcode). Это действительно озадачивает меня, но почему установка цели развертывания внезапно вызывает отклонение.
Ответ 5
После большого количества исследований по этой части мы, наконец, нашли проблему для этого вопроса:
Похоже, что Apple дает эту ошибку для приложений, которые поддерживают как 32, так и 64 бит.
Apple предоставила это напоминание для Mac Appstore, но похоже, что приложения iOS также затронуты.
Таким образом, решение для этого - поддерживать бит-код ИЛИ отказаться от поддержки 32-разрядных устройств, удалив поддержку ARMV7 и ARMV7S или ниже из Valid Architectures из настроек сборки. Это будет означать, что ваше приложение будет работать только на iPhone 5S и выше.
Я надеюсь, что это помогает кому-то.
Спасибо!
Ответ 6
Похоже, проблема была исправлена в бэкэнде iTunes Connect.
После сборки 45 мы прошли вчера вечером. Попытался выяснить, что фиксировало проблему от всех этих изменений - похоже, теперь и с встроенной сборкой.
Итак, три дня я мог бы провести вне...
Ответ 7
Недавно с 26 января 2018 года Без какого-либо уведомления или анонса Apple сделал некоторые изменения, связанные с быстрым старым кодом, больше не работает с представлением приложения в магазине приложений. Я вообще не использовал CommonCrypto
в моем проекте
Я также сталкиваюсь с этой проблемой, и я много разбираюсь и публикую вопрос на форумах Apple и на разных платформах о использовании непубличного API: приложение содержит один или несколько поврежденных двоичных файлов. Переустановите приложение и отправьте повторно
После того, как вы узнаете, что для такого отклонения Invalid Binary не существует единого решения. Я упоминаю некоторое возможное решение, которое работает для некоторых пользователей в последнее время.
- Обновляйте свои cocoa -pods, если вы используете с давних времен и которые содержат некоторую быструю фреймворк или класс, начиная с Swift 2.0, а затем просто обновляйте свои cocoa -pods с поддержкой Quick 4 и целью 10.0, что ошибка уходит.
- Один из пользователей, с которыми я разговариваю, он включает бит-код в настройках Build, и эта проблема решает для него.
- Некоторые пользователи удаляют неиспользуемый код, класс и фреймворк, которые напрямую используются в коде без проблемы cocoa -pods, для них.
- Для меня я получаю предупреждение в левой панели, как показано ниже.
![введите описание изображения здесь]()
- Как только я конвертируется в
swift4
, я получаю следующее предупреждение:
Использование вывода Swift 3 @objc в режиме Swift 4 устарело. Пожалуйста, обращайтесь к устаревшим предупреждениям о запрете @objc, проверьте свой код с включенным протоколом "Использование устаревшего входа Swift 3 @objc", и затем отключите вывод, изменив строчку "Swift 3 @objc Inference" установите для параметра "По умолчанию" значение "appname".
-
Для устранения этого предупреждения я использую этот ответ: Использование вывода Swift 3 @objc в режиме Swift 4 устарело?
-
После этого мне нужно добавить @objc
в класс swift3
class public method, который я использовал в моем классе objective-c
, используя мост
-
Я также проверяю другое предупреждение в левой боковой панели, есть другое предупреждение о зависимостях приложения, которое может быть так же и helpfup для других.
Надеюсь, этот ответ может быть полезен для некоторых пользователей, которые еще не нашли ответ, и это может быть полезно.
Ответ 8
Я смог решить это для себя, вот что я сделал:
- Биткод отключен в моем проекте и остается отключенным.
- Я удалил 3 контейнера, один из которых был CommonCrypto, который я забыл, у меня были (другие были QRCode и SwiftyJSON).
- Я удалил флагов Linker, а также в настройках сборки
Я надеюсь, что это поможет!
Ответ 9
Я использовал soffes/CommonCrypto с Карфагеном. Удаление CommonCrypto.framework работает для меня, и, пожалуйста, проверьте эту ссылку, как импортировать commoncryto framework:
http://ioscake.com/importing-commoncrypto-in-a-swift-framework.html