Невозможно связать какой-либо фреймворк с помощью Carthage или CocoaPods.

Я пытался добавить несколько проектов Icon-font в свою Cocoa Touch Framework, используя как CocoaPods, так и Carthage, но продолжаю получать ld: framework not found SomeIconFont

Вещи, которые я пытался сделать:

  • Перетащите последнюю версию .framework в Linked Framework and Libraries.
  • Пытались добавить Копировать файлы с назначением Frameworks на этапах сборки до этапа Связать двоичный файл с библиотеками
  • Добавлен carthage copy-frameworks скрипт запуска для фреймворка с $(SRCROOT)/Carthage/Build/iOS/SomeIconFont.framework
  • Установите для параметра Создать только активную архитектуру значение Да как на уровне проекта, так и на уровне цели.
  • Архитектура для обоих является Стандартной.
  • Задайте для Пути поиска Framework как для проекта, так и для цели значение $(SRCROOT)/Carthage/Build/iOS и $(PROJECT_DIR)/Carthage/Build/iOS соответственно.
  • Пробовали очистить, сбросить DerivedData

Мои последние варианты — это жертвоприношение животных и подводная стойка на руках, но, конечно, они уступают только переустановке Xcode и снова его нескольких ГБ. Я публикую этот вопрос только потому, что, честно говоря, полностью избит этой проблемой за последние 48 часов.


person Angad    schedule 12.06.2016    source источник


Ответы (1)


По истечении 2 изнурительных дней (от чего я вас спас!), мне наконец удалось это исправить:

Под Пути поиска Framework вы увидите разделы Отладка и Выпуск, а также Любая архитектура | Любой SDK.

Просто установите Любая архитектура | Любой SDK до $(inherited) устранил эту проблему для меня. Конечно, это не будет работать, если вы не установили верхний уровень на $(SRCROOT)/..., как показано в OP, так как это будет только имитировать значение родительского элемента!

Почему это не дубликат одного из сотен других вопросов/блогов, которые вы найдете в Интернете: почти все релевантные сообщения на момент написания этой статьи относятся к приложению. , а не Dynamic Library/Cocoa Touch Framework

person Angad    schedule 12.06.2016
comment
Это настройка по умолчанию? - person Dan Rosenstark; 12.06.2016
comment
@DanRosenstark Нет! Единственное место, где я видел $(inherited) раньше, было в предупреждении CocoaPods, в котором вас просили добавить его на верхний уровень для Путей поиска фреймворка, но по какой-то причине он не каскадируется по крайней мере, в текущей версии Xcode - person Angad; 12.06.2016
comment
Теперь я помню. Я проходил через это раньше. К сожалению, мои заметки не очень помогают ;) dr2050.com/automatic-images/__inherited_.png - person Dan Rosenstark; 13.06.2016