dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/Stylist.app/Stylist
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib: mmap() errno=1 validating first page of '/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib'
(lldb)
Я получаю эту ошибку при сборке на моем iPhone. Я умею строить на тренажере. Я переделал все свои файлы подготовки, но все еще не могу построить на своем iPhone. Мой Xcode похож на этот
Это проблема с фреймворком или проблема с подписью? В Xcode 6 этого не произошло. Спасибо.
Ответы:
У меня раньше была эта проблема из-за того, что мой сертификат случайно отозвали. Тогда у всех моих быстрых проектов есть эта проблема. Есть два способа решить эту проблему:
Нажмите Продукт → Очистить (или CMD+ Shift+ K)
Или вручную очистив файлы настроек Xcode:
источник
Я долго искал по этому поводу. Эта проблема возникает по нескольким причинам.
Если вы сталкиваетесь с тем, что вы и код / библиотека Swift в проекте Objectice C, вам следует попробовать Решение 1-2-3.
Если вы столкнулись с этой проблемой в новом проекте Swift, Решение 4 подойдет вам лучше всего.
Решение 1 :
Перезагрузите Xcode, затем компьютер и iPhone
Решение 2 :
Перейдите в настройки сборки проекта и установите
Embedded Content Contains Swift
флаг кода на ДА.Решение 3:
Перейдите в настройки сборки проекта и добавьте параметр
@executable_path/Frameworks
Runpath Search PathsРешение 4:
Если ничего из вышеперечисленного не работает, это должно быть. Apple, похоже, исправила сертификаты ниндзя, как упоминалось в сообщении AirSign
Сертификаты At InHouse
они добавили новое поле с именем
OU
поэтому вам нужно просто воссоздать сертификат и положение
источник
После попытки многих других упомянутых решений, к моему вечному смущению, выполнение Xcode-> Product-> Clean и перезапуск Xcode помогло.
источник
Для меня эта проблема возникла из-за сертификата WWRD - у меня была последняя версия, но по какой-то причине он был установлен на «всегда доверять» вместо «использовать по умолчанию», что, по-видимому, имеет значение.
источник
Если вы случайно сбросили свою связку ключей, это может произойти из-за отсутствия сертификатов Apple в связке ключей. Я последовал ответу на этот вопрос, чтобы решить свою проблему.
источник
Удаление DerivedData помогло мне.
Сделал это через Xcode -> Preferences -> Locations -> щелкнул стрелку позади пути DerivedData и удалил всю папку DerivedData в Finder.
источник
Window > Projects > My Project > Derived Data > Delete
сделал всю работу за меня.Это произошло на моей стороне при создании приложения в командной строке через xcodebuild и xcrun PackageApplication, при подписании приложения с помощью корпоративного профиля. На наших серверах сборки CI для сертификата было установлено значение «Всегда доверять» в цепочке ключей (выберите сертификат -> Получить информацию -> Доверие -> «Использовать по умолчанию» можно изменить на «Всегда доверять»). Мне пришлось вернуть его в «Использовать по умолчанию», чтобы это работало. Первоначально мы установили для него значение «Всегда доверять», чтобы обходить диалоги связки ключей, которые появляются после обновлений программного обеспечения и обновлений сертификатов.
источник
Рискуя вызвать еще большую путаницу, у меня возникла эта проблема при обновлении до XC8.
Ни одно из этих предложений, ни из какой-либо другой темы не решило эту проблему. Что ДЕЙСТВИТЕЛЬНО работало, так это удаление ВСЕГО из фазы сборки «Связать двоичный файл с библиотеками», фазы сборки «Целевые зависимости» и общей настройки «Связанные платформы и библиотеки».
FYI, я использую Карфаген и добавил
$(PROJECT_DIR)/Carthage/Build/tvOS
кFRAMEWORK_SEARCH_PATHS
настройке сборки, так что мои рамки могут быть найдены.К вашему сведению 2, этот проект и фреймворки работают на 100% быстро, и фреймворки строятся
DEFINES_MODULE = YES
.источник
источник
Цитируется из технических вопросов и ответов QA1886 :
Приложение Swift аварийно завершает работу при попытке сослаться на библиотеку Swift libswiftCore.dylib.
Вопрос: Что я могу сделать с ошибкой загрузки libswiftCore.dylib в консоли моего устройства, которая возникает, когда я пытаюсь запустить приложение на языке Swift?
О: Чтобы решить эту проблему, вам нужно будет подписать свое приложение с помощью сертификатов подписи кода с Subject Organizational Unit (OU), установленным на ваш Team ID. Все корпоративные и стандартные сертификаты разработчиков iOS, которые создаются после выпуска iOS 8, имеют новое поле Team ID в нужном месте, позволяющее запускать языковые приложения Swift.
Обычно эта ошибка появляется в журнале консоли устройства с сообщением, аналогичным одному из следующих: [....] [deny-mmap] сопоставленный файл не имеет идентификатора команды и не является двоичным кодом платформы: / private / var / mobile / Контейнеры / Bundle / Application / 5D8FB2F7-1083-4564-94B2-0CB7DC75C9D1 / YourAppNameHere.app / Frameworks / libswiftCore.dylib
Новые сертификаты необходимы при создании архива и упаковке вашего приложения. Даже если у вас есть один из новых сертификатов, просто отказаться от существующего архива быстрого приложения не получится. Если он был создан с использованием сертификата до iOS 8, вам нужно будет создать другой архив.
Важно: будьте осторожны, если вам нужно отозвать и настроить новый сертификат Enterprise Distribution. Если вы являетесь внутренним разработчиком Enterprise, вам нужно быть осторожным, чтобы не отозвать сертификат распространения, который использовался для подписи приложения, который любой из ваших сотрудников Enterprise все еще использует в качестве любых приложений, подписанных этим корпоративным сертификатом распространения. немедленно перестанет работать. Вышесказанное относится только к сертификатам Enterprise Distribution. Сертификаты разработки можно безопасно отозвать для корпоративных / стандартных разработчиков iOS.
Как заявляют ребята из AirSign, корень проблемы заключается в отсутствии атрибута OU в поле темы внутреннего сертификата.
Тема: UID = 269J2W3P2L, CN = iPhone Распространение: название компании, OU = 269J2W3P2L, O = название компании, C = FR
Имею сертификат развития предприятия, создание нового решило проблему.
источник
у вас, вероятно, нет правильной арки в этой библиотеке, вы можете сделать
file /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib
и он должен показать вам арки, которые находятся в этой библиотеке ... Я не уверен, как вы связываете, но, вероятно, это неправильный путь (если libswiftcore - заводская библиотека, если это какая-то добавленная библиотека, тогда она вероятно, неправильно скомпилирован)
источник
У меня тоже была эта проблема, однако ничего, что я пробовал выше и в нескольких других сообщениях, не работало .. кроме этого.
Что касается меня, я изменил идентификатор пакета, так как у нас другой идентификатор пакета для распространения и разработки.
Мое оборудование разрешено в соответствии с этим положением, и моя командная учетная запись действительна, но она выдавала указанную выше ошибку на какой-то другой платформе.
Оказалось, что мне нужно было полностью удалить старую версию приложения с телефона. И не просто удалив стандартным способом.
Решение :
Очевидно, что при установке одного и того же приложения в одной команде под другим идентификатором пакета, если вы не начинаете полностью с нуля, есть некоторые ссылки на фреймворки, которые становятся запутанными.
Надеюсь, это кому-то поможет.
источник
Я только что почистил проект и
Clean Build Folder
по альт Меню продуктовисточник
Ниже шаги успешно отработаны.
1) В динамической библиотеке имя установки должно быть "@loader_path"
2) В основном проекте путь поиска Runpath должен быть "@loader_path" и "@ loader_path / Frameworks".
3) Из используемого вида связки ключей -> показать просроченные сертификаты и удалить все.
4) Удалил сертификат распространения и переустановил.
5) Скачал developer.apple.com/certificationauthority/AppleWWDRCA.cer и установил.
источник
Я недавно столкнулся с этой проблемой. Я перепробовал все возможные решения, но ничего не помогло. В конце я просто выхожу из Xcode, удаляю сертификаты в связке ключей и устанавливаю все новое и перезапускаю Mac. К счастью, это сработало как шарм :)
источник
У меня была такая же проблема, и я смог ее исправить, повторно загрузив файл
WWDR (Apple Worldwide Developer Relations Certification Authority)
. Загрузите отсюда :и установите Всегда доверять связке ключей. Переход на
Use System Default
это работает для меня, я надеюсь, что это поможет вам
источник
В моем случае цепочка для ключей показывает сертификат как ненадежный. Чтобы решить эту проблему, я установил параметры доверия сертификата как «Всегда доверять». Установка сертификата на «Всегда доверять» была основной причиной сбоя. Мне не удалось установить приложение на устройство. Решил эту проблему, установив для параметра доверия значение «Системные настройки по умолчанию» вместо «Всегда доверять». У меня это сработало.
источник
Вы видите те же симптомы, если работаете в Xamarin Studio и ссылаетесь на переносимую библиотеку, для которой вам нужно использовать приманку PCL и трюк с переключением. Это происходит, если ссылающийся проект устарел по отношению к указанной библиотеке. Я обнаружил, что обновил свою общую библиотеку до более новой структуры, обновил свои пакеты, но не обновил свои пакеты iOS для соответствия. Обновление пакетов решило эту ошибку для меня.
источник
Вы все еще можете столкнуться с этой проблемой после того, как попробовали ответить @Jieyi Hu. может это кажется исправленным, но если он появится снова (возможно, на xCode 9).
Однако этот обходной путь, похоже, работает (относится к Cocoapods 1.5.x):
откройте Podfile в своем проекте и добавьте это:
post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings.delete('CODE_SIGNING_ALLOWED') config.build_settings.delete('CODE_SIGNING_REQUIRED') end end
обновление стручка
Источники:
https://github.com/evgenyneu/Cosmos/issues/105
https://github.com/Skyscanner/SkyFloatingLabelTextField/issues/201#issuecomment-381915911
Спасибо @ Cédric
источник
Вы можете восстановить свой сертификат и перезагрузить iPhone.
Эта работа для меня, надеюсь, она вам поможет.
источник
Я решаю проблему, проверяя свои локальные связки ключей. Сохраняйте логин. Связка ключей имеет правильный сертификат.
источник
Вам необходимо установить сертификат (просто сертификат, а не профиль обеспечения) для каждой динамической структуры, которую вы связываете (прямо или косвенно) в своем проекте.
источник
В моем случае после удаления всех сертификатов, созданных Xcode и загруженных. Пусть xcode 8.1 управляет сертификацией приложения, он работает хорошо !!! Надеюсь, это кому-то поможет.
источник
Я столкнулся с этой проблемой ТОЛЬКО на симуляторе. Кажется, это связано с некоторыми недопустимыми Правами в нашем приложении, но проблема не появляется, когда мы запускаем на устройстве.
источник
Я решил использовать эти уловки.
Шаг 1:
Перейдите в настройки сборки проекта и добавьте параметр @ executable_path / Frameworks в Runpath Search Paths
Шаг 2:
Перейдите к настройкам целевой сборки и добавьте @ executable_path / Frameworks в параметр Runpath Search Paths и Framework Search Paths.
Шаг 3:
Повторно загрузите WWDR (всемирный центр сертификации по связям с разработчиками Apple), установите для параметра «Использовать системные значения по умолчанию».
Шаг 4:
Удалить все производные данные с помощью терминала
rm -rf ~ / Библиотека / Разработчик / Xcode / DerivedData / *
Шаг 5 :
Удалите все сертификаты и переустановите его в Связку ключей. Я включил опцию Использовать системную по умолчанию.
Шаг 6:
Перезапустите Xcode.
источник
столкнулся с той же проблемой
источник
Я столкнулся с этой проблемой с XCode 9. Ничего из вышеперечисленного не помогло. Это помогло мне:
Project > Build Settings > Swift Compiler - Search Path: Setting "Import Paths"
к$(PROJECT_DIR)
(рекурсивный)источник
Это устранило мою ошибку -
Повторно загрузите WWDR (всемирный центр сертификации по связям с разработчиками Apple), установите для параметра «Использовать системные значения по умолчанию».
источник
В моем случае это была проблема с одним из модулей, которые я использовал. В итоге я удалил этот модуль и вручную поместил от него код в свой проект.
источник
введите описание изображения здесь
У меня аналогичная проблема, в которой подробная информация представлена как первое изображение.
Мое решение состоит в том, что переключение сертификации всегда доверяет использованию системных значений по умолчанию. просто так: введите описание изображения здесь введите описание изображения здесь
источник