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

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

я пытался

  • Перезапуск Xcode, iPhone, компьютер
  • Очистка и перестройка
  • Отмена и создание нового сертификата / профиля
  • Пути поиска пути Run – $(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 

30 Solutions collect form web for “dyld: библиотека не загружена: @ rpath / libswiftCore.dylib”

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

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

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

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

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

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

 @executable_path/Frameworks 

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

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

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

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

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

  1. перейдите на веб-сайт разработчика Apple, на котором находятся сертификаты: https://developer.apple.com/account/ios/certificate/certificateList.action
  2. выберите свой сертификат (ы) (который должен отображать «Управляемый по Xcode» в разделе «Статус») и «Отменить»
  3. следуйте инструкциям здесь, чтобы вручную создать новый сертификат: https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html#//apple_ref/doc/uid/TP40012582-CH31- SW32
  4. перейдите в раздел Xcode> Настройки> Учетные записи> [ваш идентификатор Apple]> дважды щелкните имя своей команды> нажмите кнопку обновления, чтобы обновить сертификаты и профили подготовки

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

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

Чтобы открыть окно настроек сертификатов, дважды щелкните сертификат в списке сертификатов Keychain Access.

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

ОБНОВЛЕНИЕ для XCODE 8+

из XCode8 опция для встроенного содержимого содержит опцию Swift Code больше не будет доступна, потребуется изменить "Always Embed Swift Standard Libraries = YES"

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

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

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

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

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

При попытке ссылки на 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. Если вы являетесь внутренним разработчиком Enterprise, вам нужно быть осторожным, чтобы вы не отменяли сертификат распространения, который использовался для подписания приложения. Любой из ваших сотрудников Enterprise по-прежнему используется в качестве приложений, которые были подписаны с этим сертификатом распространения предприятия перестанут работать немедленно. Вышеупомянутое относится только к сертификатам Enterprise Distribution. Сертификаты разработки могут быть отменены для корпоративных / стандартных разработчиков iOS.

Поскольку ребята AirSign утверждают, что проблема связана с отсутствующим атрибутом OU в поле темы внутреннего документа .

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

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

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

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

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

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

P -> Build Phases -> Embed Frameworks -> + . Это подходит для меня.

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

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

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

Нашел ответ здесь. https://stackoverflow.com/a/14495100/976628

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

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

чтобы:

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

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

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

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

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

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

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

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

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

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

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

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

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

Xcode 7.2, iOS 9.2 на одном устройстве, 9.0 на другом. У обоих была ошибка. Не знаю, что изменилось, что вызвало это, но решения выше для WWDR были верны для меня. Установите этот сертификат и проблему.

https://forums.developer.apple.com/message/43547 https://forums.developer.apple.com/message/84846

Чтобы добавить к решению Enterprise distribution cert, вы можете открыть Keychain и проверить сертификат. Если есть красный текст, в котором цепочка доверия не может быть проверена или она будет отозвана, она НЕ РАБОТАЕТ! На моем компьютере наш сертификат распространения показывался как отозванный, хотя веб-портал показал, что он все еще действителен. Мы получили новый сертификат распространения, который был зеленым (действительным) в Keychain, и это решило проблему.

После этих шагов я работал для меня:

  • Нажмите на название своего проекта (очень верхняя часть навигатора)
  • Нажмите на название своего проекта еще раз (не на цель)
  • Перейдите на вкладку «Настройки сборки»
  • Поиск Runpath Search Paths

  • Измените его значение на $ (унаследованный) флаг (remove @ executable_path / Frameworks).

Вышеупомянутые решения не сработали для меня. Я исправляю проблему, выполнив следующие шаги:

  1. Мне пришлось пойти в телефон (Настройки> Профиль) и удалить профили, которые были в телефоне (включая все приложения, связанные с этими профилями / положениями).
  2. После этого убедитесь, что вы загрузили положения apple в xcode. Перейдите в настройки xcode> аккаунт и войдите в свою учетную запись разработчика Apple.

Я использую Xcode 7.2. Если вы попробовали все вышеперечисленное, и ошибка все еще возникает, попробуйте удалить старый сертификат из Keychain Access! Это так больно, наконец, исправить это.

В моем случае,

Я установил @executable_path/Frameworks

Но я должен также установить «Ракурсные пути поиска»,

 $(PROJECT_DIR)/Frameworks 

меняться как recursive

Это работает для меня.

Когда Xcode попросит вас сбросить сертификаты, вы его сбросите. И приложение может быть запущено на самом устройстве без сбоев с сообщениями об ошибках. Как только эта проблема будет исправлена ​​в одном стремительном проекте. Также фиксируются и другие быстрые проекты с этой проблемой.

Я боролся за них примерно полдня, и я обнаружил, что сброс сертификатов снова и снова в портале инициализации не помогает.

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

В моем случае одна из моих целей тестирования работала, а другая – нет. Это давало указанную ошибку с отсутствующей библиотекой или что-то еще. Я сравнил настройки для обоих целевых показателей тестирования и обнаружил, что у вас не хватает конфигурации для «тестового хоста», поэтому я скопировал это из рабочей тестовой цели и исправил мой сломанный целевой тест!

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

Из сообщения https://github.com/CocoaPods/cocoapods-integration-specs/pull/24/files это означает, что swift.dylib нужен знак, но не удалось. Я даже не создал новый быстрый проект с поддержкой cocoapod.

  • Заменить вкладку и нажать вид из AppDelegate
  • Не удалось обновить основной объект данных
  • Удалить NSLog из выпусков сборки
  • XCode - добавление внешней статической библиотеки в проект Cocoapods
  • Как полностью автоматизировать от сборки до .ipa-файла в xcode 4
  • Ошибка Xcode 6.1 на «Редактировать схему»
  • Выбранное место назначения недействительно для этого действия
  • url.isFileReferenceURL () возвращает false для локального файла в IOS
  • Использование Vim вместо (или с) Xcode для разработки iOS
  • Выключить симуляцию местоположения пользователя с помощью XCode
  • Как объединить UIScrollview с UIPagecontrol для отображения разных представлений?
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.