macos - usr - xcode library not loaded image not found




OS X Framework Library не загружена: «Изображение не найдено» (12)

Я пытаюсь создать базовую ОС X Framework, прямо сейчас у меня есть только созданная тестовая среда: TestMacFramework.framework и я пытаюсь импортировать ее в новый проект приложения OS X.

Я создал файл .framework и импортировал его в новый проект. Структура, по-видимому, поддерживает связь, и я могу ссылаться на публичный файл заголовка, добавленный в фазу сборки фреймов.

Однако, когда я пытаюсь запустить приложение-контейнер, я получаю следующую ошибку:

dyld: Library not loaded: /Library/Frameworks/TestMacFramework.framework/Versions/A/TestMacFramework
  Referenced from: /Users/samharman/Library/Developer/Xcode/DerivedData/TestMacContainer-dzabuelobzfknafuhmgooqhqrgzl/Build/Products/Debug/TestMacContainer.app/Contents/MacOS/TestMacContainer
  Reason: image not found

После небольшого поиска в Google я понял, что мне нужно добавить раздел « Copy Files » в фаз сборки контейнера, поэтому я сделал это и настроил его так ...

Тем не менее, я все еще получаю ошибку времени выполнения. Я, очевидно, делаю что-то неправильно здесь, но ресурс библиотеки разработчиков Apple для этого ссылается на Xcode 2, так что это не очень полезно!

Что я пропустил?

ОБНОВИТЬ:

Я могу видеть в журнале сборки, что моя TestMacFramework.framework копируется в каталог .app contents / frameworks, но она не устанавливается в каталог Library / Frameworks на HD

ОБНОВЛЕНИЕ 2:

TestMacFramework.framework правильно связывается, если я вручную TestMacFramework.framework в TestMacFramework.framework Library/Frameworks


[из Xcode 6 -> 7.3]

(Да, все еще работаю над Xcode 10, iOS и macOS)

Единственное, что нужно сделать, это добавить фреймворк в раздел « Embedded binaries » на вкладке « General » вашего целевого приложения.


open xcode -> general -> Embedded Binaries -> добавить QBImagepicker.framework и RSKImageCropper -> чистый проект

просто добавьте QBImagePicker.framework и RSKImageCropper.framework во встроенные исполняемые файлы для меня


Варианты выше, где я не могу включить. Я решил это, указав путь поиска Runpath

Это находится на вкладке « Настройки сборки ». В разделе « Связывание ». Измените « Пути поиска пути » на $(inherited) @executable_path/Frameworks


Возникла проблема при попытке Xcode 9 beta и возвращении к Xcode 8. Простой Clean на целевом компьютере решил проблему.


Для меня это было решением, после многих часов поиска!

По какой-то причине, в разработке пользовательской платформы Swift 2.3, Xcode 8 удалил параметр DYLIB_INSTALL_NAME_BASE из файла project.pbxproj . Немного перейдите в Build Settings / Dynamic Library Install Name Base чтобы вернуться к @rpath .

(от https://forums.developer.apple.com/thread/4687 )


Единственное, что сработало для меня:

Целевая задача> Сформировать фазы> [CP] Вставить модули Pods Снимите флажок «Показывать переменные среды в журнале сборки» и «Запустить скрипт только при установке»


Ни одна из этих проблем не решила это для меня. Проблема в конце концов была довольно легкой. Похоже, что это довольно крупная ошибка Xcode, в которой я зарегистрировал проблему и исправил ошибку Apple: 29820370. Если вы боретесь (как кажется несколько проблем с подобными проблемами), было бы здорово, если бы вы могли поднимите ошибку на репортере ошибок: https://bugreport.apple.com/ и укажите ошибку, которую я поднял, чтобы получить видимость. Я хочу вернуть Xcode в удовольствие, которое было раньше - и я уверен, что Xcode должен был зафиксировать себя.

Вот исправление: 1. Откройте Keychain - перейдите в Apple Worldwide Developer Cert. 2. Дважды щелкните по нему. 3. Измените уровень разрешений на «всегда доверять», чтобы использовать системные значения по умолчанию. 4. Сохраните и закройте его. 5. Перезапустите Xcode, очистите и создайте свой проект, и он должен исчезнуть.

Снимок экрана ниже: Надеюсь это поможет!


Поэтому мне удалось заставить его работать, это довольно просто, когда у вас есть правильные инструкции. То, что я искал, было «частной» структурой, которая живет в комплекте приложений, а не записывается в папку системной библиотеки.

Создание структуры

  1. Добавить цель создания Cocoa Framework
  2. В пределах этих настроек «Настройки сборки» настройте «Каталог установки» на «@executable_path /../ Frameworks»
  3. Создайте библиотеку и получите доступ к .framework из каталога архива или продуктов

Включая Рамочную

  1. Перетащите созданный файл .framework в проект Xcode, обязательно отметьте «Скопировать файлы в каталог»,
  2. В целевой задаче для приложений добавьте новую «Фазу сборки файла копирования»,
  3. Установите 'Destination' в 'Frameworks'
  4. Перетащить созданный .framework

Удаление полученных данных спасло меня для меня


Это было довольно просто для меня, я просто добавил рамки для своих встроенных двоичных файлов в соответствии с целевыми приложениями


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

Edit: Моя цель тестирования пользовательского интерфейса тоже не работала, и решение, которое я нашел, это удалить его и сгенерировать его снова.


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

Ошибка в исходном сообщении:

dyld: Library not loaded: /Library/Frameworks/TestMacFramework.framework/Versions/A/TestMacFramework
  Referenced from: /Users/samharman/Library/Developer/Xcode/DerivedData/TestMacContainer-dzabuelobzfknafuhmgooqhqrgzl/Build/Products/Debug/TestMacContainer.app/Contents/MacOS/TestMacContainer
  Reason: image not found

Обратите внимание на первый путь после загрузки библиотеки . Структура загружается с абсолютного пути. Этот путь исходит из имени установки рамки (иногда называемого rpath), которое можно проверить, используя:

otool -D MyFramework.framework/MyFramework

Когда среда встроена в приложение, этот путь должен быть относительным и этой формы: @ rpath / MyFramework.framework / MyFramework . Если ваше установочное имя вашей инфраструктуры является абсолютным путем, оно не может быть загружено во время выполнения, и будет произведена ошибка, аналогичная приведенной выше.

Решение заключается в изменении имени установки:

install_name_tool -id "@rpath/MyFramework.framework/MyFramework" MyFramework.framework/MyFramework 

С этим изменением я больше не получаю ошибку





xcode5