Подтвердить что ты не робот

Неверная поддержка Swift/папка SwiftSupport пуста

Окружающая среда: Xcode 7 GM

Я успешно загрузил приложение iOS, используя Xcode без ошибок. Это приложение написано в Objective-C и Swift.

Однако сразу после успешной загрузки я получил это письмо от Apple, в котором была указана эта ошибка:

Неверная поддержка Swift. Мы обнаружили одну или несколько проблем с вашей недавней доставкой для XXXXX (мое имя приложения). Для обработки вашей доставки необходимо устранить следующие проблемы:

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

Как только эти проблемы будут исправлены, вы можете повторно добавить исправленный двоичный файл.

У кого-нибудь есть решение этой проблемы?

Я уже подтвердил ниже проблемы.

"Библиотеки SwiftSupport/iphoneos/" в архивах (файл .xcarchive) равны "Продукты/Приложения/myApp.ipa/Frameworks/"

Мой параметр "Действительные архитектуры" - "$ (ARCHS_STANDARD)", отображающий "armv7k".

Профиль Provisioning установлен на Dev и Release, который был создан в iTunes, соответственно.

И в моей "схеме редактирования" тестовая цель не отмечена в Архиве.

4b9b3361

Ответ 1

важное примечание: это работает только для проектов, которые не используют swift, см. comment ниже

Я только что встретил ту же проблему и разрешил ее, сделав следующее изменение: Если вы использовали файлы Swift в своем проекте, но затем удалили их, вам нужно только установить "Встроенный контент содержит Swift Code" в "NO" в "Параметры сборки".

Ответ 2

На этой странице много противоречивых ответов. Что для меня работало, так называемый здесь, который просто выбирает сохранение для варианта развертывания магазина приложений iOS ( На самом деле я не заинтересован в выпуске магазина приложений. Я хочу просто нажать выпуск для внутреннего тестирования testflight).

что, как говорится, у меня есть способ проверить, будет ли ваш ipa одобрен или нет, прежде чем отправить его:

  • перетащите файл .ipa в новую папку (вызовите ее анализ)
  • щелкните правой кнопкой мыши файл ipa и переименуйте его в .zip(подтвердите диалог для использования .zip)
  • дважды щелкните zip файл

здесь, если вы получаете папку (с тем же именем, что и файл .ipa), который содержит следующие подпапки:

  • Полезная нагрузка
  • swiftSupport
  • Символы

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

тогда вам хорошо идти, однако, если вы видите только папку Payload внутри. Тогда вам нужно попробовать еще раз

также несколько указателей

  • Я пробовал установку "Встроенный контент со сводным кодом" в НЕТ, он работал только один раз, а затем прекратил работать после этого.
  • Я гарантировал, что у меня не было ошибок в cocoapod. Это не помогло
  • Я попытался вручную добавить папку SwiftSupport в архив, как было предложено здесь.. но потом я получил всевозможные побочные эффекты.. не сделал работа

Заключение

Я думаю, что это связано с некоторой ошибкой с xcode (написав это с помощью Xcode 8.0 build (8A218a).. так что продолжайте проверять свою удачу, пока она не сработает.. просто не ожидайте каких-либо твердых объяснений для нее

Ответ 3

при попытке экспорта после "Xcode- > Product- > Archive" вы должны выбрать вариант "сохранить для развертывания магазина приложений ios"

Та же проблема путала меня пару дней, вышеуказанная настройка может решить эту проблему.

независимо от того, "встроенное содержимое содержит быстрый код", да или нет.

Ответ 4

Решение с пятью шагами:

  • Перейдите к настройкам сборки и введите флаг Встроенный контент содержит Swift Code YES, если ваш код содержит частичный код быстрого доступа или полностью выполнен в Swift
  • Архивируйте свою сборку с помощью Xcode- > Product- > Archive
  • Экспортируйте сборку Archive Build, вы увидите, что размер сборки разницы будет 40+ МБ, потому что XCode добавил папку SwiftSupport, которая отсутствовала.
  • Теперь загрузите эту сборку с помощью загрузчика приложений
  • Если это не работает, проверьте, есть ли у вас несколько XCode в вашей системе goto Xcode- > Настройки- > Местоположение- > Команда Линейные инструменты имеют тот же самый последний или тот же Xcode, который вы выбрали, на котором вы выполнили кодировку и вола.

Это немного недостаток, так как быстрый переносит багаж и должен быть совместим с более ранней версией и кодом Objective C.

Мои много часов были потрачены впустую, надеюсь, что вы найдете это полезным;)

Ответ 5

Эта ошибка может произойти, если вы используете xcodebuild для экспорта IPA без указания опции -exportOptionsPlist

См. xcodebuild -help для доступных ключей, но вы, вероятно, хотите, чтобы plist, по крайней мере, с ключом метода, установленным в "app-store", например:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>method</key>
    <string>app-store</string>
</dict>
</plist>

Ответ 6

Я схватился за это несколько часов, и вот что сработало для меня.

В архиве Xcode не копировал быстрые библиотеки в SwiftSupport/iphoneos, хотя мой проект имел "Embedded Content Contains Swift Code" для "да" для всех целей. Он также не копировал быстрые библиотеки в "AppName.app/Frameworks" . Поэтому я должен был сделать это вручную в архиве перед отправкой:

скопировать "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos/lib*" в "Archive_folder/Products/Applications/AppName.app/Frameworks" and "SwiftSupport/iphoneos"

Если ваше приложение также имеет приложение для просмотра

Копия

"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/watchos" into "Archive_folder/SwiftSupport/watchos" и "Archive_folder/Products/Applications/AppName.app/Watch/AppName WatchKit App.app/Frameworks"

Затем отправьте приложение.

Ответ 7

Настройка "Встроенный контент содержит Swift Code" до $(inherited) работал у меня. Предупреждение после выполнения команды CocoaPods pod install помогло мне это выяснить.

[!] The `applewatch Extension [Debug]` target overrides the `EMBEDDED_CONTENT_CONTAINS_SWIFT` build setting defined in `Pods/Target Support Files/Pods-applewatch Extension/Pods-applewatch Extension.debug.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or  <--------------
- Remove the build settings from the target.

Ответ 8

Использование Save for iOS App Store Deployment вместо Save for Ad Hoc Deployment Опция экспорта Xcode решила эту проблему для меня. Противоинтуитивно, вы должны использовать первый вариант даже для сборки TestFlight.

Ответ 9

Настройка Всегда встраивать стандартные библиотеки Swift в значение "Да" требуется только для целей Objective-C, которые связаны с вашими собственными структурами, которые зависят от Swift. В тех случаях, когда вы не связываете (то есть используете) внутреннюю структуру, которая зависит от Swift, Xcode будет внедрять стандартные библиотеки Swift в ваш архив, если есть хотя бы один случай импорта стандартной библиотеки Swift в файл Swift который является частью цели сборки.

Другими словами, если ваша цель имеет файл Swift, который не импортирует никакие стандартные библиотеки Swift - например, через "import Foundation" - тогда Xcode не будет копировать библиотеки Swift Standard в архив.

Исправление для этой проблемы заключается в обеспечении того, чтобы хотя бы один из файлов Swift в вашей целевой стране импортировал быструю стандартную библиотеку (например, "import Foundation" ).

Даниэль Ялкут имеет очень информативный пост о зависимостях Swift, который проливает свет на эту проблему.

Ответ 11

Вот что я делаю сейчас, чтобы решить эту проблему, так как мой метод выше перестает работать. Имейте в виду, что основное приложение для моего кода - Obj-C, а мое приложение для часов - Swift.

  • Убедитесь, что для параметра "Встроенный контент содержит быстрый код" установлено значение:
    • YES для цели приложения
    • НЕТ для расширения WatchKit
    • YES для приложения Watchkit
  • После архивирования мой XCode не создаст "[архивную папку]/SwiftSupport/iphoneos", но создаст и заполнит "[архивная папка]/Продукты/Приложения/[имя приложения].app/Watch/\ WatchKit\App.app/Frameworks" с Swift dylib. Поэтому я создал следующую мягкую ссылку:

    ln -s "[папка архива]/Products/Applications/.app/Watch/\ WatchKit\App.app/Frameworks" "[папка архива]/SwiftSupport/iphoneos"

Затем, когда я отправляю через XCode Organize, он принимается без ошибок.

Если вы просто скопируете файлы, а не связываете их, вы рискуете, что приложение для часов превысит 50 МБ.

Ответ 12

Вы также получаете эту ошибку, когда вы загружаете ipa, у которого есть plist с export_method, установленным на ad-hoc вместо app-store на itunes...

Ответ 13

Подача сборки в App Store Проблема:

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

Решение:

В в большинстве случаев мы обнаружили эту проблему из-за отправки приложения через App Loader и нашей обычной практики, чтобы сделать ipa как Organizer > Архив приложений > Показать в Finder > Показать содержимое пакетa > Продукты > Приложения > OurProjectName.app в копировании этого приложения в папку "Полезная нагрузка" и закрепить его и сделать ipa файл для отправки в App Store с помощью App Loader. Это отлично работает для представления только объектных файлов c, содержащих проекты.

Но есть некоторые изменения, если ваш проект содержит любые быстрые классы и их использование. Если ваш проект содержит быстрые классы с проектом Objective C, структура контента IPA несколько изменилась как прикрепленный скриншот.

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

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

Чтобы устранить эту проблему, отправьте приложение непосредственно из Xcode [OR] , если вы хотите отправить приложение через App Loader, чем первый экспорт ipa с помощью опции "Экспорт" из организатора Xcode и отправьте эти файлы ipa в App Store через App Loader.

Смотрите ссылочный снимок экрана, как показано ниже:

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

Hurrey!!! Ваша проблема будет исправлена ​​:):):)