dyld: библиотека не загружена. Причина: не найдено подходящего изображения

Я просмотрел кучу ответов здесь, и никто не решил мою проблему.

У меня есть рабочая область Xcode с пользовательской структурой и проектом приложения iOS. Проект работал нормально до сегодняшнего утра, теперь он собирается, но сразу же вылетает:

dyld: Library not loaded: @rpath/ONCKit.framework/ONCKit
  Referenced from: /private/var/mobile/Containers/Bundle/Application/4DF67A3F-6255-4276-8812-8C742A363995/atero_t.app/atero_t
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/4DF67A3F-6255-4276-8812-8C742A363995/atero_t.app/Frameworks/ONCKit.framework/ONCKit: mmap() error 1 at address=0x100118000, size=0x000B8000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/4DF67A3F-6255-4276-8812-8C742A363995/atero_t.app/Frameworks/ONCKit.framework/ONCKit
    /private/var/mobile/Containers/Bundle/Application/4DF67A3F-6255-4276-8812-8C742A363995/atero_t.app/Frameworks/ONCKit.framework/ONCKit: mmap() error 1 at address=0x100280000, size=0x000B8000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/4DF67A3F-6255-4276-8812-8C742A363995/atero_t.app/Frameworks/ONCKit.framework/ONCKit

Я экспериментировал с настройками сборки весь день, и я просто полностью потерялся.


person olynoise    schedule 24.11.2014    source источник


Ответы (8)


Я столкнулся с этой проблемой сегодня и решил ее таким же образом. Отмена и повторное создание подписи кода решает эту проблему. Но чтобы пролить свет на "почему" часть этого.

Apple пошла дальше и изменила содержимое сертификата. Чтобы быть более точным, было добавлено новое поле «OU» (организационная единица) в разделе «Тема». Отменив и повторно сгенерировав подпись кода, он добавил отсутствующее поле, и проблемы исчезли.

person BlitzHiryu    schedule 15.04.2015
comment
Это поле OU добавляется в какой раздел? В эмитенте или в теме?? Не могли бы вы указать на это? - person bikram990; 09.09.2015
comment
Изменил ответ для большей ясности. OU — это организационная единица, которую можно найти в тематическом разделе. - person BlitzHiryu; 16.09.2015

Если это кому-то поможет, ни одно из решений, которые я постоянно находил в Интернете, не работало для меня. Выдергивал мои волосы 2 дня и перепробовал все. Я отозвал внутренний сертификат, новый профиль подготовки, добавил файлы во встроенные файлы и т. д.

На всю жизнь я не мог понять, что не так, пока не заметил, что в доступе к цепочке ключей мои сертификаты Apple WWDR и iOS Distributions были установлены на "Always Trust" вместо «Использовать системы по умолчанию». Переключил мои сертификаты обратно на "Use Systems Defaults", и все снова заработало как надо. Я понятия не имею, почему и как это работает, но это сработало.

person Geoherna    schedule 24.08.2016
comment
Я на самом деле не верю в это. Это была и моя проблема. Для меня это было нормально на моем локальном компьютере, работающем на устройстве с Xcode, но при запуске IPA, сгенерированного из задания сборки Jenkins, произошел сбой из-за разницы в настройке параметров доверия для сертификата. Ошибка никоим образом не указывает на то, что она так или иначе связана с сертификатами. Вы спасли меня еще от нескольких дней боли. - person Fergal Rooney; 22.09.2016
comment
Это действительно решает мою проблему. Я не могу поверить, что это может быть вызвано таким вводящим в заблуждение атрибутом в связке ключей! - person wilson100; 01.02.2018

Оказывается, Xcode кэширует некоторые вещи, специфичные для устройства, которые могут быть перепутаны, если вы запускаете свои приложения на нескольких устройствах. Простое исправление — удалить кеш Xcode. Следующая команда очистит его для вас

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ~/Library/Caches/com.apple.dt.Xcode
person Tarik    schedule 18.04.2017
comment
Четыре года спустя этот блестящий пост решил мою проблему. Спасибо @Tarik - person SaxDaddy; 28.05.2021
comment
Это здорово, если решение полезно для пользователей - person Tarik; 01.06.2021

Простое изменение профиля подписи кода решило проблему. Перейти к цели. Затем выберите другой вариант в «Общие» -> «Подписание» -> «Команда».

person Asma Zubair    schedule 27.01.2018

Просто для любых других людей, которые, как и я, столкнулись с этой проблемой совсем недавно и задаются вопросом, где и как именно отозвать объект подписи кода (это в «Настройки»> «Учетная запись»):

У меня тоже утром все работало нормально. Где-то читал про перезагрузку. Итак, прежде чем пройти еще один длительный сеанс подписи-идентификаций-профилей-профилей, я просто перезагрузил свою машину. И это исправило это, по-видимому, без каких-либо дополнительных усилий.

Swift, Xcode 7.3 на OS X 10.11.4.

person marco    schedule 08.06.2016

Очистить производные данные Xcode

Запустите Finder> Перейти> Перейти к папке> Вставьте строку ниже

~/Library/Developer/Xcode/DerivedData

Теперь перезапустите Xcode.

person Mohit Tomar    schedule 23.11.2016

Ну, в моем случае я используюcocopods, и из файлов pod измените:

target 'CoreMotionExample' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!

# Pods for CoreMotionExample
pod 'Firebase/Analytics'

to

target 'CoreMotionExample' do
# Comment the next line if you don't want to use dynamic frameworks
# use_frameworks!

# Pods for CoreMotionExample
pod 'Firebase/Analytics'

Затем все начинает работать ... Я не знаю, почему

person Ren    schedule 20.02.2020
comment
Вы используете бесплатную учетную запись разработчика для подписи? Внешние фреймворки не работают с бесплатными учетными записями, начиная с iOS 13.3.1, поэтому, возможно, переход на статические библиотеки решит эту проблему за вас. - person Benjamin Breiby; 06.03.2020

моя проблема была решена путем удаления "use_frameworks!" и заменив его на "use_modular_headers!" в Podfile и выполнить обновление модуля и установку модуля в терминале.

надеюсь, это поможет вам, как это помогло мне, после того как я неделю ломал голову над этой проблемой.

person Bsl Dngl    schedule 06.03.2020