Dyld: библиотека не загружена: @rpath/libswift_stdlib_core.dylib
Я получаю эту ошибку после добавления класса Swift к старому проекту Xcode.
dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib
Как я могу снова запустить проект?
Ответы
Ответ 1
Для меня ни один из предыдущих решений не работал. Мы обнаружили, что есть флаг ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
(в более ранних версиях: "Встроенный контент содержит Swift Code" ) в настройках сборки, которые должны быть установлены в YES. По умолчанию это было НЕТ!
Ответ 2
Эта ошибка может возникнуть, если что-то пошло не так во время преобразования проекта Objective-C, чтобы начать использовать Swift. Проблема в том, что настройки компоновщика Linker никогда не были правильно настроены, поэтому вам придется делать это вручную. Найдите настройки сборки Path Path Search Path и установите для этого значение:
$(inherited) @executable_path/Frameworks
РЕДАКТИРОВАТЬ: Я также хотел бы добавить, что недавние волны этих ошибок были вызваны чем-то другим - Apple внесла изменения в сам Swift, начиная, возможно, с Xcode 6.1 или 6.1.1. Единственное решение, похоже, заключается в том, чтобы выйти из Xcode, уничтожить ваши сертификаты в Keychain Access, перейти в Центр участников и удалить все сертификаты и профили (кроме профилей для приложений в Магазине - их нельзя удалить), а затем запустить весь процесс запроса сертификата с нуля.
Ответ 3
Я не совсем уверен, почему этот вопрос игнорируется, у меня тоже была эта проблема, когда я сначала попытался использовать Swift с существующим проектом. Перезагрузка Xcode также исправила это для меня.
Ответ 4
Я долго искал по этому вопросу. Есть несколько причин, вызывающих эту проблему.
Если вы сталкиваетесь с тем, когда вы и Swift-код/библиотека в проекте Objectice C, вам следует попробовать Решение 1-2-3
Если вы столкнулись с этой проблемой с новым проектом Swift, Solution 4 подойдет вам лучше всего.
Решение 1:
Перезагрузите Xcode, затем компьютер и iPhone
Решение 2:
Перейдите к настройкам сборки проекта и установите для флага " Always Embed Swift Standard Libraries
Embedded Content Contains Swift Code
Always Embed Swift Standard Libraries
(ранее Embedded Content Contains Swift Code
) значение " YES
Решение 3:
Перейдите в настройки сборки проекта и добавьте параметр @executable_path/Frameworks
Runpath Search Paths
@executable_path/Frameworks
в Runpath Search Paths
Решение 4:
Если ничего из вышеперечисленного не работает, это должно. Apple, кажется, патчи сертификатов ниндзя, как упомянуто в сообщении AirSign
У InHouse сертификаты
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR
они добавили новое поле с именем OU
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR
поэтому вы должны просто восстановить сертификат и предоставление
Ответ 5
В моем случае я пытался импортировать пользовательскую фреймворк и получал аналогичную ошибку.
Оказывается, мне пришлось импортировать структуру во встроенные двоичные файлы, а не в связанные структуры и библиотеки.
Встроенные двоичные файлы находятся в разделе "Настройки проекта" → - > Общие
Ответ 6
Для разработчиков, у которых была эта проблема с сборками Adhoc/Enterprise,
Создайте производственный сертификат с портала dev, а затем восстановите профиль распространения. Загрузите и установите их на свой Mac. Убедитесь, что вы выбрали правильный профиль в настройках сборки Xcode и пересоздаете приложение.
Источник: https://devforums.apple.com/message/1022908#1022908
Ответ 7
Решение 5:
В моем случае все решения, упомянутые в ответе accfews, были очень полезны, но никто не работал. Я решил проблему, добавив свою быструю библиотеку в раздел "Встроенные двоичные файлы" в разделе "Общие" моей целевой задачи. Возможно, это связано с тем, что я включил свои быстрые рамки в свое рабочее пространство? Что бы он ни компилировал сейчас! Приготовься Свифт, я здесь!
Ответ 8
Простой перезапуск Xcode решил проблему для меня.
Ответ 9
Для меня проблема была связана с тем, что мой Центр сертификации отношений с разработчиками Apple Worldwide недействителен.
Загрузите его отсюда: https://developer.apple.com/certificationauthority/AppleWWDRCA.cer.
Перетащите его в Keychain Access, очистите проект и запустите.
Ответ 10
Я пробовал все ответы, приведенные выше, ничего не работало.
Наконец-то работал после обновления до Yosemite
Ответ 11
У меня был проект Obj-C, где я начал добавлять быстрые исходные файлы.
Следующее исправлено для меня:
- Ссылка:
RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
- Компилятор Swift - Генерация кода:
EMBEDDED CONTENT CONTAINS SWIFT = YES
Я только что создал новый проект из шаблонов Xcode 6.3 и сравнил настройки проекта с моим старым оригинальным проектом.
Ответ 12
Попробуйте провести Alt, затем перейдите в Product → Clean Build Folder...
Надеюсь, это поможет кому-то.
Ответ 13
Причины этого происходят много. Просто проведя забавный уик-энд, обнаружив еще одну проблему, которая вызывает это (порядок подписания кода), я хотел создать сводный ответ, который объединяет все возможные решения:
- Добавить встроенный контент Содержит Swift Code для проекта. Вам нужно установить этот флаг, если ваше приложение содержит код Swift.
- Очистить проект. Помимо Project > Clean вы также можете удалить каталоги
DerivedData
и Build
. Посмотрите в разделе "Настройки" для местоположения DerivedData
. Build
должен находиться в папке проекта.
- Убедитесь, что пути поиска Пути поиска содержат
@executable_path/Frameworks
.
- Убедитесь, что ваш сертификат содержит идентификатор вашей Apple Team в поле OU (Unit Unit). Apple добавит это для вас, просто отмените существующий сертификат распространения и создайте новый, загрузите, установите KeyChain, регенерировать все профили обеспечения, загружать их и перестраивать.
- Перезагрузка Xcode. Если все в целом хорошо, но Xcode еще не получил его.
Это легкий материал. Если вы создаете собственную сборку командной строки, вы можете создавать свои собственные файлы .ipa
для загрузки. В этом случае вам необходимо обеспечить следующее:
- Убедитесь, что версия файлов Swift в
SwiftSupport/iphoneos
совпадает с версией в Contents/YourApp.app/Frameworks
. Поскольку Swift еще не совместим с бинарной версией, вы должны убедиться, что эти версии с которым вы создали свое приложение. Вы можете найти эти библиотеки под /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos
.
- Сначала подпишите библиотеки и рамки. Сначала необходимо
codesign
библиотеки и файлы фреймворка (в Frameworks
в папке .app
), а затем подписать полное дерево .app
. Дерево .app
должно быть подписано с помощью entitlements.plist
, но не с фреймворками.
Надеюсь, когда появится Swift 3.0, и нам больше не нужно связывать Swift с нашими приложениями, все это проблема исчезнет.
Ответ 14
У меня возникла эта проблема с использованием мобильного решения Ad (hoc) или производственного сертификата. Переход к сертификату разработки и мобильному обеспечению решил проблему.
Ответ 15
Мой проект - это проект Swift с некоторыми классами Objective-C.
У меня была та же проблема, когда был подписан старый сертификат inHouse (enterprise).
Следующие шаги исправили это для меня.
- Создание и использование нового сертификата и мобильного обеспечения.
(Ссылка Блог AIRSIGNs)
- Задайте настройку
Runpath Search Paths
для сборки: $(inherited) @executable_path/Frameworks
.
(Ссылка ответ matts)
Ответ 16
Решение 6:
В нашем случае сертификат Enterprise Distribution был отозван. Создание нового сертификата и обновление профиля подготовки исправили проблему.
(Кажется, существует много разных причин этой ошибки. Надеюсь, это поможет кому-то.)
Ответ 17
Я столкнулся с той же проблемой, установив правильный идентификатор значка кода, решив проблему (параметры сборки → Идентификация подписи кода).
В соответствии с технический вопрос Apple "Все сертификаты разработчика и стандартные сертификаты iOS, созданные после выхода iOS 8, имеют новое поле Team ID в правильное место для запуска языковых приложений Swift"
Ответ 18
Если вы добавите три фреймворка через Embedded Binaries, они будут добавлены в Linked Frameworks и Libraries. Удалите три записи в Связанные структуры и библиотеки, чтобы решить проблему.
Магические методы, такие как перезапуск Xcode и перезагрузка Mac, не работают на меня.
Ответ 19
Добавление Framework как "встроенного двоичного" вместо "Linked Frameworks and Libraries" - Исправлена проблема.
Я также устанавливаю встроенный контент. Содержит флаг Swift Code для YES.
Ответ 20
Обновление до последней версии OS X (Yosemite)
После нескольких часов проб и ошибок я пришел к решению этой проблемы.
- Если это относится к вашему делу, конечно.
У меня была такая же проблема, пока я не обновил свою Mac OS X от Mavericks до Yosemite.
- Он исправил мою проблему, надеюсь, что она исправит вашу проблему.
Ответ 21
Я пробовал все решения, найденные в Интернете, в том числе Apple и новые сертификаты. Без успеха.
Единственный способ, которым я мог запускать xcode, после 6 месяцев попытки создать новую учетную запись на моем macbook.
Ответ 22
Обычно эта ошибка исчезает, если вы добавляете эту библиотеку в сегмент "Копировать файлы" на фазах сборки.
Ответ 23
И если все вышеперечисленное не поможет вам, и вы действительно расстроены... Попробуйте лучший трюк: Clean
и просто убедитесь, что Clean Build Folder
.:) Надеюсь, это поможет кому-то!
Ответ 24
Ни одно из этих решений, казалось, постоянно работало для меня; после каждой пары успешных запусков он снова потерпит неудачу. Флаг "Встроенный контент со скрытым кодом" всегда был для меня "YES".
Оказывается, я установил бы Xcode 6.3-совместимым. Сменив его на 3.2-совместимую, он решил:
Ответ 25
У меня была и эта проблема, только она не находила libswiftXCTest.dylib
.
Решение заключалось в том, чтобы добавить XCTest.framework
в цель тестирования, в Build Phases/Link Binary with Library
. Я получал эту ошибку, даже когда пытался создать основную цель.
Ответ 26
Это проявилось, когда я добавил новый объект назначения Today с языком Swift в старый проект.
Исправлено легко, обновив проект до рекомендуемых параметров. Xcode 6.0.1
Ответ 27
У меня возникла такая же проблема с использованием Mavericks, Xcode 6.1.1, тестирование на iPhone5 с помощью iOS 8.1.1. Я пробовал все возможные решения, включая новые сертификаты и профили подготовки, но ничего не помогло. Я внес изменения в Embedded Content Contains Swift Code
и Runpath Search Paths
как на уровне проекта, так и на уровне цели.
Теперь я установил Yosemite, и без каких-либо дальнейших изменений он начал работать.
Ответ 28
В этом же выпуске, для меня это были Crashlytics/Fabric/Beta/Twitter/Whatever-they-call-yourself, загружающие двоичный файл, в котором отсутствовали встроенные фреймворки. Если я сделал архив, а затем экспортировал сборку Enterprise стандартным образом, они сработали шармом.
Ответ 29
Моя среда: Cocos2d 2.0, Box2d, Objective C
В дополнение к выполнению других ответов выше я, наконец, перешел на вкладку "Общие" и сделал WatchKit необязательным.
Ответ 30
Спустя месяцы и месяцы пробовать все здесь... Определение безумия... запуск Xcode под новым пользователем Mac разрешил его для меня.
Я удалил ~/Library/Developer/* и переустановил Xcode, поэтому не знаю, что еще форматировать, чтобы заставить его работать.