it-roy-ru.com

"Неверная поддержка Swift - папка SwiftSupport отсутствует" с Xcode 7.3.1

После отправки обновления приложения с помощью Application Loader я получил это письмо от Apple:

Мы обнаружили одну или несколько проблем с вашей недавней доставкой за "[Имя приложения]". Для обработки вашей доставки, следующие проблемы должны быть исправлено:

Неверная поддержка Swift - папка SwiftSupport отсутствует. Перестроить Ваше приложение использует текущую общедоступную (GM) версию Xcode и повторно отправляет Это.

После исправления этих проблем вы можете повторно загрузить исправленный двоичный файл.

Я подтвердил, что этот двоичный файл был собран с последним Xcode GM (7.3.1), так что это не проблема. Я видел множество возможных решений этой проблемы в Интернете, но надеялся, что, предоставив дополнительную информацию, кто-нибудь сможет помочь мне найти конкретное решение.

  • Отправил файл IPA с помощью Application Loader 3.5 без проблем.
  • Предыдущая версия приложения не использует Swift, но это обновление делает.
  • Параметр сборки «Встроенный контент содержит код Swift» имеет значение NO. Насколько я понимаю это то, что это должно быть YES, если у нас есть чистая цель Objective-C, которая зависит от быстрой или смешанной цели.
  • В проекте используются CocoaPods, но в наших модулях для этого обновления ничего не изменилось.
  • Предыдущая версия приложения включала приложение и расширение WatchKit, но это обновление не делает.
  • Внутри xcarchive, сгенерированной с той же сборкой, находится папка SwiftSupport. Он содержит подпапку с именем iphoneos, которая содержит несколько библиотек Apple Swift, таких как libswiftFoundation.dylib.
  • Если я переименую файл .ipa в .Zip и разархивирую его, его пакет приложения не будет содержать папку SwiftSupport, но будет содержать папку Frameworks с теми же dylibs Swift.
10
Luke

Решение здесь было в этот ответ . Нам нужно было использовать новый флаг -exportOptionsPlist с xcodebuild вместо старых флагов -exportFormat и -exportWithOriginalSigningIdentity. Для plist необходимо, чтобы ключ method был установлен в app-store.

10
Luke

Вы должны выбрать «Сохранить для iOS App Store Deployment» вместо «Сохранить для Ad Hoc Deployment» во время создания файла ipa .  enter image description here

2
Pranit

Основной причиной этого является то, что профиль обеспечения является специальным, и он не создает каталог SwiftSupport в ipa. Папка создается с использованием app-store в качестве метода экспорта, поэтому она работала для меня, когда я обновил свой профиль обеспечения до app-store.

Ссылка

1
tsuz

В моем случае я просто добавил избыточный файл Swift в проект, и это решило проблему.

0
Soohwan Park