Недопустимая поддержка Swift/недействительная реализация быстрой
Я хочу загрузить приложение, написанное быстро. Загрузчик приложений успешно доставляет приложение, но через несколько минут я получаю ответ от Apple:
Неверная поддержка Swift - пакет содержит недопустимую реализацию Swift. Возможно, приложение было создано или подписано с помощью несовместимых или предустановленных инструментов. Посетите developer.apple.com для получения дополнительной информации.
Я использую xCode Version 6.0.1 (6A317), Swift iOS SDK 8.0 и просто создаю приложение с помощью xcode.
Где я могу найти какую-либо информацию о том, как получить правильную реализацию быстрой?
Apple не говорит ничего конкретного.
спасибо
Ответы
Ответ 1
У меня была аналогичная проблема.
Чтобы исправить это и иметь возможность нажимать сборку на iTunesConnect, мне нужно было сделать следующее:
- Установите флаг
EMBEDDED_CONTENT_CONTAINS_SWIFT
в YES
в целевых настройках
- Убедитесь, что на этапах сборки не было никаких других странных целей.
-
Logout
все учетные записи Apple Developer из Xcode и входа в систему только с тем, с которым вы хотите нажать приложение.
- Архив и отправьте приложение
with Xcode
и НЕ с загрузчиком приложений.
Почему мне нужно выйти из всех учетных записей Apple Developper?
Поскольку Xcode не знает, какую учетную запись использовать для загрузки двоичного файла. Загрузчик приложений спрашивает вас в начале, но затем загруженная сборка недействительна...
UPDATE:
Так как Xcode 7.1, а новые версии Swift я снова получил ошибку. Текущее обходное решение состоит в том, чтобы сделать следующее:
- Создайте архив локально на Xcode (не работает на моем CI)
- В Organizer экспортируйте его как сборку AppStore.
- Используйте Application Loader для загрузки двоичного файла.
Через несколько минут (~ 10) сборка должна быть доступна на iTunesConnect.
Ответ 2
Проблема может исходить от cocoapods, если вы используете стручки Swift.
Чтобы исправить это, используйте ветку xcode7-invalid-swift-support-fix (использование). Или сделайте это вручную, отредактировав Подпрограммы/Целевые файлы поддержки /Pods/Pods -frameworks.sh
и комментируя блок после
# Embed linked Swift runtime libraries
Дополнительная информация:
Ответ 3
Решение для xcodebuild
Здесь моя оболочка script для добавления Swift libs в ipa
https://github.com/huhuvipi/VH_ipa_packger
Если вы существующий ipa файл, вы просто:
path/to/package_ipa.sh /path/to/ipafile
Ответ 4
Вы строите с помощью командной строки (xcodebuild)?
Если да:
Я столкнулся с той же проблемой. Проблема в том, что сгенерированный файл ipa недействителен. Отсутствует папка SwiftSupport. Папка добавляется XCode, когда проект с Swift построен с помощью Xcode Gui.
Проблема описана в этом форуме разработчиков яблочного разработчика со ссылкой на открытый билет радиолокатора:
https://devforums.apple.com/message/1042117#1042117
Ответ 5
У вас установлена другая версия Xcode?
Откройте свой последний Xcode, затем перейдите к настройкам (меню Xcode → Настройки), перейдите на вкладку "Местоположения" и убедитесь, что средства командной строки соответствуют вашей версии Xcode.
Ответ 6
Если вы создаете через xcodebuild
или Xcode Server (или что-то другое, кроме окна Organizer в Xcode), IPA отсутствует SwiftSupport
. См. это обсуждение проблемы.
Решение по существу заключается в том, чтобы экспортировать IPA самостоятельно. CaveJohnson имеет команду экспортировать IPA с правильным SwiftSupport, поэтому вы можете построить IPA, например:
cavejohnson xcodeGUITricks --archive-path my.xcarchive --new-ipa-path myapp.ipa
Ответ 7
У меня была одна и та же проблема и все было предложено, но всегда не удалось... Мои приложения генерируют SwiftSupport Folders, я просто решил с этим решением:
Спасибо, что отправили этот файл .ipa. Проблема вызвана libswiftXCTest.dylib в каталоге SwiftSupport. Этот dylib используется при тестировании целей и является нормальным для включения в состав сборки, но сборка архива для App Store не должна включать этот dylib.
Чтобы решить эту проблему, выполните следующие действия:
- Откройте проект Xcode
- Выберите продукт > Схемa > Изменить схему
- Нажмите "Сборка" на левой боковой панели
- Для вашей тестовой цели снимите флажок "Архив"
- Нажмите кнопку "Закрыть"
- Выберите продукт > Архив
- Отправить последний архив в App Store
Ответ 8
Проверьте подписание кода. У меня была эта ошибка при автоматическом подписании.
Я размещаю профиль моего dev для профиля dev и production для версии выпуска, и ошибка исчезла.
Ответ 9
Простое решение:
Привет, у меня была такая же проблема, и ниже это решение:
Просто установите флаг EMBEDDED_CONTENT_CONTAINS_SWIFT
в NO
в настройке сборки Target, Project и везде, как testTarget.
Ответ 10
У меня тоже была эта проблема
Я попытался установить флаг EMBEDDED_CONTENT_CONTAINS_SWIFT в YES и NO. Оба не работали для меня.
В конце концов я попробовал это с CaveJohnson, упомянутым Дрю. Но это тоже не сработало.
Наконец, я создал новый проект и ввел свои быстрые файлы и фреймворки и т.д. Вот и все!
Решение в моем случае: Создать новый проект
Ответ 11
Хорошо, я работаю над этим уже много часов и наконец нашел решение.
Чтобы предварительно задать ответ, вот что я сделал:
- попробовал все в предыдущих ответах
- провел час по телефону с поддержкой Apple Tech.
- прочитайте каждый форум разработчиков Apple, связанный с "недействительным быстрым" в своей сети разработчиков. Пробовал каждое из предлагаемых решений.
Я, наконец, удалил и переустановил Xcode, и что вы знаете, он работает сейчас.
Иногда я не знаю, почему это не моя первая идея для решения.
Ответ 12
Я обнаружил, что смена "Встроенного содержимого содержит Swift Code" от YES до NO в основных настройках сборки приложения (и при условии, что он установлен на YES в расширении) будет выполняться на часах (и на телефоне). В то же время, когда я загрузил этот двоичный файл, Apple, должно быть, внесла изменения в бэкэнд ITC, поскольку мои другие загруженные сборки, которые были отмечены как "Invalid Binary", были возвращены в "Обработка", а затем передали экран "Неактивен".
Итак, я отправил сборку с надписью "Встроенный контент со сводным кодом" YES в расширении только для просмотра.
Основное приложение: Встроенное содержимое содержит Swift Code = YES (если это быстрый проект, иначе NO)
Расширение WatchKit: встроенное содержимое содержит Swift Code = YES (если это быстрый проект, еще нет)
Приложение WatchKit: встроенное содержимое содержит Swift Code = NO (в любом случае)
Ответ 13
Здесь решение при использовании командной строки http://www.matrixprojects.net/p/xcodebuild-export-options-plist/
В основном все, что нужно сделать, - это создать файл plc buildOptions xcodebuild, который выглядит следующим образом:
<?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>teamID</key>
<string>MYTEAMID123</string>
<key>method</key>
<string>app-store</string>
<key>uploadSymbols</key>
<true/>
</dict>
</plist>
Наиболее важным ключом является метод app-store
И затем запустите сборку xcode с архивом
xcodebuild -scheme MyApp -archivePath builds/MyApp.xcarchive archive
После этого запустите xcrun с экспортным архивом
xcrun xcodebuild -exportArchive -exportOptionsPlist exportPlist.plist -archivePath builds/MyApp.xcarchive -exportPath builds
Ответ 14
У меня была такая же проблема. Решение, которое работало для меня, состояло в том, чтобы обновить мой xcode, а затем создать новый проект и скопировать все мои работы в этот проект
Ответ 15
серьезно. Я потратил два дня на эту проблему, и я пробовал все вышеперечисленные методы. Ничего не работает! Я использовал моего друга Мак. И на этот раз он работает. После этого я понял, что загрузил xcode из центра разработчика не в магазин приложений Mac. Поэтому я удалил весь xcode с моего mac и переустановил xcode из магазина приложений, и он сработал. И нет никакой разницы между двумя версиями, которые разделяют точно такой же номер версии.
Ответ 16
После того, как обновление проекта Swift в новом xcode получило аналогичную ошибку, и ниже мое решение.
Откройте файл project.pbxproj и удалите строку ниже.
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
и смог успешно отправить приложение.
Ответ 17
У нас была аналогичная проблема после обновления до Xcode 7. Пришлось добавить опцию -exportOptionsPlist
и поставить method
и teamID
. Перепутано, но работает сейчас.
Ответ 18
Пятиэтажное решение:
- Перейдите к настройкам сборки и введите флаг Встроенный контент содержит Swift Code → YES, если ваш код содержит частичный код быстрого доступа или полностью выполнен в Swift
- Архивируйте свою сборку с помощью Xcode- > Product- > Archive
- Экспортируйте сборку архива, вы внезапно увидите, что размер сборки разницы будет 40+ МБ, потому что XCode добавил папку SwiftSupport, которая отсутствовала
- Теперь загрузите эту сборку, используя загрузчик приложений
- Если это не работает, проверьте, что если у вас есть несколько XCode в вашей системе goto Xcode- > Preferences- > Location- > Command Lines Tools имеет тот же самый последний или тот же Xcode из выпадающего списка на котором вы сделали кодировку и вола, которую она сделала.
Это немного недостаток, так как быстрый переносит багаж и должен быть совместим с более ранней версией и кодом Objective C.
Мои много часов были потрачены впустую, надеюсь, что вы найдете это полезным;)
Ответ 19
Думаю, что я должен поделиться тем, что провел несколько дней, пытаясь решить эту проблему.
Каждый продолжает говорить, чтобы установить EMBEDDED_CONTENT_CONTAINS_SWIFT = NO
или =YES
У меня было приложение для iPhone, полностью написанное в Objective-C, и приложение Watch Kit, полностью написанное в Swift.
Я установил EMBEDDED_CONTENT_CONTAINS_SWIFT = NO
для всех (Project Target, приложение для iPhone, тесты, UITests и WatchKit)
Место, где я устанавливаю EMBEDDED_CONTENT_CONTAINS_SWIFT = YES
, находится в расширении WatchKit. Это решило мою проблему, и я смог загрузить в App Store через Xcode.
Надеюсь, это поможет кому-то!
Ответ 20
Я смог исправить это, открыв архив, перейдя в SwiftSupport и удалив папку для WatchOS, потому что она пуста. Я предполагаю, что моя цель Watch была настроена на включение Swift, поэтому она включала в себя папку, но ничего не генерировала внутри нее. Таким образом, iTC увидел пустую папку и ошибки. Удалив пустую папку, она сработала.
Ответ 21
Для меня это то, что работало для распространения.
Перейти → Xcode- > product- > Archive- > Export
После этого будет создана папка с текущей датой. Вы можете сохранить его где-нибудь для последующего использования. Затем откройте загрузчик приложений, и вы можете отправить на itunesConnect отсюда. Все будет очищено. Убедитесь, что вы создали файл Build (.ipa), нажав кнопку "Экспорт" в окне органайзера. Затем используйте загрузчик приложений для отправки сборки в iTunesConnect.
Надеюсь, это поможет. Дайте мне знать, если вам нужна дополнительная информация.
Ответ 22
Если у вас есть cocoapods, просто удалите все контейнеры и переустановите pod install
.
Очень раздражает, так как у меня ошибка -22421 при загрузке непосредственно из поддержки Xcode и Invalid Swift при использовании Application Loader
Ответ 23
Я на самом деле просто решил это с совершенно другим, несвязанным и действительно странным исправлением. Имел вышеуказанную ошибку, но ничего не изменил в проекте или среде сборки.
После большого количества циклов перестройки и загрузки оказалось, что это был Ad-Hoc-сертификат, который вызывал эту проблему. Использование fastlane и установка флага gym
ad_hoc на false, а также использование Release
Config для сборки (не уверен, какой из них исправлено), наконец, сработало. Вот моя строка gym
:
identifier = "de.xxx.yyy"
config = "Release"
ad_hoc = false
scheme = "Schema"
gym(verbose: false, scheme: scheme, codesigning_identity: "iPhone Distribution: YTB)", configuration: config)