Dyld: библиотека не загружена: @rpath/libswiftCore.dylib

Я пытаюсь запустить приложение Swift на своем iPhone 4s. Он отлично работает на симуляторе, и мой друг может успешно запустить его на своем iPhone 4s. У меня есть iOS 8 и официальная версия Xcode 6.

Я пробовал

  • Перезапуск Xcode, iPhone, компьютера
  • Очистка и восстановление
  • Отмена и создание нового профиля сертификата/обеспечения
  • Пути поиска пути: $(inherited) @executable_path/Frameworks
  • Встроенный контент содержит Swift-код: "Да"
  • Идентификатор подписи кода - это разработчик

Ниже приведена ошибка целиком

dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/AppName
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/Frameworks/libswiftCore.dylib: mmap() error 1 at
address=0x008A1000, size=0x001A4000 segment=__TEXT in Segment::map() mapping
/private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/APPLICATION_NAME/Frameworks/libswiftCore.dylib

Ответ 1

Для меня ни один из предыдущих решений не работал. Мы обнаружили, что в настройках сборки есть флаг "Всегда встраивать строгие стандартные библиотеки", для которого необходимо установить значение "ДА". По умолчанию это было НЕТ!

Build Settings > Always Embed Swift Standard Libraries

После этого очистите проект до его сборки.

Для маленьких читателей есть некоторые объяснения. Наиболее важная часть:

установите для встроенного содержимого код Swift Code (EMBEDDED_CONTENT_CONTAINS_SWIFT) в YES в приложении, как показано на рисунке 2. Этот параметр сборки, определяющий, содержит ли целевой продукт встроенный контент с кодом Swift, сообщает Xcode о включении стандартных библиотек Swift в ваше приложение когда установлено значение YES.

enter image description here

Флаг ранее назывался Embedded Content Contains Swift Code

Ответ 2

Удивительно, но все, что я сделал, было "Очистить" мой проект (shift + cmd + K), и это сработало. Похоже, что это связано с сертификатом.

Ответ 3

Я начал получать эту ошибку при удалении:

@executable_path/Frameworks

из Runpath Search Paths в моих настройках сборки. Заменив его, все снова исправлено (спасибо за контроль источника!)

Я не знаю, как это произошло, но, похоже, для бинарного файла требуется найти встроенную среду выполнения Swift.

Ответ 4

Для устройства вам также необходимо добавить динамическую структуру в раздел " Embedded binaries " на вкладке " General " проекта.
enter image description here

Ответ 5

В Xcode 8 опция для Embedded Content Contains Swift Code опцию Embedded Content Contains Swift Code больше недоступна.

Он был переименован в "Always Embed Swift Standard Libraries = YES"

enter image description here

Ответ 6

Я думаю, что это ошибка, когда сертификаты генерируются непосредственно из Xcode. Чтобы разрешить (по крайней мере, в Xcode 6.1/6A1052d):

Ответ 7

ОК, разделив здесь еще одну причину этой ошибки. Мне потребовалось несколько часов, чтобы разобраться в этом.

В моем случае политика доверия моего сертификата в Keychain Access была Всегда доверять, изменив ее на значения по умолчанию, решила проблему.

Чтобы открыть окно настроек сертификата, дважды щелкните сертификат в списке сертификатов доступа к цепочке ключей.

enter image description hereenter image description here

Ответ 8

У меня была эта проблема с запуском моих тестов Swift (но не для моего приложения). Оказывается, для теста необходимо иметь в настройке Runpath Search Paths больше, чем @executable_path/Frameworks для тестовой цели. Настройка путей поиска Runpath на следующее сработала для меня:

$(inherited)
@executable_path/Frameworks
@loader_path/Frameworks

Ответ 9

Вы должны установить Runpath Search Paths в @executable_path/Frameworks, как показано на следующем скриншоте настроек сборки:

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

Если у вас есть встроенные фреймворки в Swift, вы можете установить YES Параметры сборки Embedded Content Contains Swift Code.

Ответ 10

Эта проблема возникает снова в Xcode 10.2. Вы должны загрузить и установить следующий пакет от Apple. Он обеспечивает Swift 5 Runtime Support для инструментов командной строки.

https://support.apple.com/kb/DL1998?locale=en_US

Ответ 11

Я думаю, что Apple уже подвела его под При сбое приложения Swift при попытке ссылки на библиотеку Swift libswiftCore.dylib

Цитируется по Техническому Q & A QA1886:

При попытке ссылки на библиотеку Swift появляется сообщение об ошибке Swift libswiftCore.dylib.

В: Что я могу сделать с ошибкой загрузки libswiftCore.dylib в моем консоль устройства, которая возникает, когда я пытаюсь запустить мое языковое приложение Swift?

A: Чтобы исправить эту проблему, вам нужно будет подписать приложение с помощью кода подписание сертификатов с Организационным подразделением (OU), установленным для ваш идентификатор команды. Все корпоративные и стандартные сертификаты разработчика iOS которые создаются после выхода iOS 8, имеют новое поле Team ID в правильном месте, чтобы запускать языковые приложения Swift.

Обычно эта ошибка появляется в журнале консоли устройства с сообщением аналогично одному из следующих:

[....] [deny-mmap] mapped file has no team identifier and is not a platform binary:
/private/var/mobile/Containers/Bundle/Application/5D8FB2F7-1083-4564-94B2-0CB7DC75C9D1/YourAppNameHere.app/Frameworks/libswiftCore.dylib

Dyld Error Message:
  Library not loaded: @rpath/libswiftCore.dylib

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000120021088
Triggered by Thread: 0

Referenced from: /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/TestApp
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib: mmap() error 1 at address=0x1001D8000, size=0x00194000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib
Dyld Version: 353.5

Новые сертификаты необходимы при создании архива и упаковки ваше приложение. Даже если у вас есть один из новых сертификатов, просто отставку существующий быстрый архив приложений не будет работать. Если он был построен с помощью pre-iOS 8, вам нужно будет создать еще один архив.

Важно: будьте осторожны, если вам нужно отменить и настроить новый Сертификат Enterprise Distribution. Если вы являетесь внутренним предприятием разработчику, вам нужно быть осторожным, чтобы вы не отменяли сертификат распространения, который использовался для подписывания приложения любым из ваших Сотрудники предприятия по-прежнему используют все приложения, которые были подписаны с сертификат корпоративного распространения перестанет работать немедленно. Вышеупомянутое относится только к распределению предприятий сертификаты. Сертификаты разработки могут быть отменены для корпоративных/стандартных разработчиков iOS.

Как ребята AirSign состояние, корни проблемы из отсутствующего атрибута OU в теме в поле Внутренний сертификат.

Тема: UID = 269J2W3P2L, CN = iPhone Распространение: название компании, OU = 269J2W3P2L, O = название компании, C = FR

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

Ответ 12

Пусть проект P импортирует пользовательскую библиотеку L, тогда вы должны добавить L в

P -> Build Phases -> Embed Frameworks -> +. Это работает для меня.

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

Ответ 13

Самый простой и простой в использовании способ: очистить и перестроить.

Это решило проблему после того, как вы попробовали ответы выше и не сработали.

Ответ 14

У меня была такая же проблема после перехода на новый Mac, и после нескольких часов, пробовав все предлагаемые ответы в вопросах, ничто из этого не сработало для меня.

Решение для меня заключалось в установке этого отсутствующего сертификата. http://developer.apple.com/certificationauthority/AppleWWDRCA.cer

Нашел ответ здесь. fooobar.com/questions/16243/...

Ответ 15

Измените Копировать ресурсы подстраков для цели:

"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-resources.sh"

в

"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-frameworks.sh"

Ответ 16

Я решил, удалив полученные данные, и на этот раз он работал правильно. Пробовал с помощью Xcode 7.3.1GM

Ответ 17

Это сообщение об ошибке также может быть вызвано при обновлении Xcode (а затем и новой версии Swift), и ваш проект использует фреймворк, встроенный/скомпилированный со старой/предыдущей версией Swift.

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

Ответ 18

После того, как мы все опробовали, я наконец узнал, что сборка не всегда включает каждую деталь снова и снова. Возможно, для ускорения процесса... Чтобы обеспечить упаковку WHOLE перед запуском на устройстве, сначала выполните очистку: Shift-Cmd-K. Затем постройте с помощью: Cmd-B. После этого запустите его на своем устройстве. Легко. С наилучшими пожеланиями всем вам симпатичные парни в этом месте!

Ответ 19

В моем случае это было просто имя моей цели:

Я переименовал его следующим образом: MyApp.something и появилась такая же проблема. Но я видел в окне настроек сборки, имя моего модуля продукта было изменено следующим образом MyApp-something. Итак, я удалил точку в моем целевом имени (MyAppSomething), и проблема исчезла.

Ответ 20

Для меня, пробовав все без успеха, что было сделано, чтобы удалить @executable_path/Frameworks из Packaging section (не знаю, как он оказался там в первую очередь)

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

Ответ 21

Ни один из решений не работал у меня. Исправлена ​​ошибка при перезагрузке телефона. Странно, но это сработало.

Ответ 22

ни одно из этих решений, похоже, не сработало, но когда я изменил разрешение сертификата World Wide Developer на Use System defaults, тогда это сработало. Я добавил шаги и скриншоты в ссылку ниже

Я бы посоветовал вам зарегистрировать билет в отчете об ошибке Apple, как указано здесь, поскольку Apple действительно должна решить эту массивную ошибку: fooobar.com/questions/16468/...

Ответ 24

Там много ответов, но может быть, мой ответ поможет кому-то.

У меня такая же проблема. Мое приложение отлично работает на Simulator, но на устройстве было разбито, как приложение "Обещает", и дает ошибку, как указано выше. Я пробовал все ответы и решения. В моем случае, у моего проекта у меня несколько целей. Я создал дублируемую цель B от цели A. Целевая точка B отлично работает, а цель A разбилась. Я использую разные объекты изображения для каждой цели. После поиска и выполнения google я нашел кое-что, что могло бы помочь кому-то.

Сбой приложения прекращается, когда я изменяю название Launch images для обоих приложений. например, название объекта запуска Launch Image LaunchImage A. Target B Lunch Image имя актива LaunchImage B и назначается должным образом на вкладке "Общие" для каждой цели. Мои приложения отлично работают.

Ответ 25

Для меня создание приложения командной строки MacOS Swift, зависящего от сторонних Swift-библиотек (например, SQLite), ни одно из вышеперечисленных решений, похоже, не работало. То, что работа непосредственно добавляла следующий путь к моим путям поиска пути Путь в настройках сборки:

/Applications/Xcode.app/Contents//Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/

Это дало предупреждение во время работы, говоря, что Xcode нашел 2 версии libswiftCore - что имеет смысл. За исключением того, что не включая эту строку, Xcode не обнаружил никаких версий libswiftCore.

Во всяком случае, это будет для меня, даже если это не кажется правильным - мое приложение - это просто утилита, которую я не собираюсь распространять и, по крайней мере, сейчас работает!

Ответ 26

У меня есть несколько версий Xcode, установленных одновременно. Структура была построена с более новой версией Xcode. Приложение, которое я пытался скомпилировать, было с более старой версией Xcode. Когда я очищал и скомпилировал как фреймворк, так и приложение с той же версией Xcode, тогда все сработало.

Ответ 27

Я начал получать эту аналогичную ошибку для тестирования добавления файла S3 с использованием служб AWS. Ниже была ошибка. dyld: библиотека не загружена: @rpath/AWSAutoScaling.framework/AWSAutoScaling

Я искал много, и выше решения также не помогают мне. Ниже ссылки помогли мне решить эту проблему.

https://forums.developer.apple.com/thread/21292

Как говорится, чтобы исправить эту проблему, повторно загрузив WWDR (Всемирный центр сертификации разработчиков сообществ).

Ответ 28

Я нахожусь на Xcode 8.3.2. Для меня проблема заключалась в том, что сертификат AppleWWDRCA был как в системном, так и в логическом ключе. Убрали оба, а затем добавили только логин-логин, теперь он снова работает отлично. 2 дня потеряно 😭

Ответ 29

Я использую Xcode 8.3.3 и Xcode 9.2. Решение для меня заключалось в том, чтобы переключить мой Xcode по умолчанию с 8 на 9, используя Xcode Select:

$ xcode-select --print-path

$ sudo xcode-select -switch/Applications/Xcode-9.2.app

Edit: На самом деле, что, по-видимому, помогло нам в том, что Xcode 9.2 использовал полученные данные из Xcode 8.3.3. Не решение, но, по крайней мере, это позволяет мне двигаться вперед с моей работой.

Ответ 30

Если вы получаете сообщение об ошибке, подобное этому:

Пакет "YourFrameworkTests" не может быть загружен, потому что он поврежден или отсутствует необходимые ресурсы. Попробуйте переустановить комплект. (Dlopen_preflight (/некоторые/путь/.../YourFrameworkTests.xctest/YourFrameworkTests): Библиотека не загружена: @rpath/SomeOther.framework/SomeOther Referenced из: /some/path/...)

и используйте CocoaPods в своей структуре, затем попытайтесь отредактировать Podfile и удалить inherit! :search_paths из цели Test, и снова запустить pod install.

Для получения дополнительной информации см. https://github.com/CocoaPods/CocoaPods/issues/8868.