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

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

6 ответов

Решение

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

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

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

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

Оказывается, 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

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

Очистить полученные данные Xcode

Запустите Finder > Go > Go to Folder > Вставьте строку ниже

~/Library/Developer/Xcode/DerivedData

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

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

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

Swift, Xcode 7.3 на OS X 10.11.4.

Ну, в моем случае я использую cocoapods, и из файлов 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'

к

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

# Pods for CoreMotionExample
pod 'Firebase/Analytics'

Потом все начинает работать... Не знаю почему

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

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

Другие вопросы по тегам