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

enter image description here

РЕДАКТИРОВАТЬ: Я также хотел бы добавить, что недавние волны этих ошибок были вызваны чем-то другим - 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-совместимую, он решил:

1hGxh.png

Ответ 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 необязательным.

Цели: Общие: Связанные структуры и библиотеки: WatchKit.framework: Необязательный

Ответ 30

Спустя месяцы и месяцы пробовать все здесь... Определение безумия... запуск Xcode под новым пользователем Mac разрешил его для меня.

Я удалил ~/Library/Developer/* и переустановил Xcode, поэтому не знаю, что еще форматировать, чтобы заставить его работать.