Xcode 7 не может найти заголовочные файлы из фреймворка
Я пытаюсь добавить PassSlot в свой проект, но он говорит, что не может найти файл.h. Отсюда все правильно: https://github.com/passslot/passslot-ios-sdk
Это проблема Xcode 7? Это работало нормально, и теперь, когда я открыл проект в Xcode 7, он вызывает у меня эту проблему. Я снова открыл его на Xcode 6, и он начинает показывать проблему также.
7 ответов
Я думаю, что Динези прав. Это решает проблему для меня.
Я заметил, что Xcode7 не автоматически заполняет требуемые пути поиска Framework, когда вы импортируете сторонний (я полагаю, Xcode6 сделал это). Проверьте, пусты ли вы, перейдя в Project -> Build Settings -> Search Paths -> Framework Search Paths. Заполните его везде, где живут ваши фреймворки. Если это в вашем проекте, вы можете использовать $(PROJECT_DIR)
Замена #import "Headerfile.h"
с #import <Framework/Headerfile.h>
работал на меня.
Когда вы перетаскиваете нужный фреймворк в папку Frameworks, отметьте "Назначение: копировать элементы при необходимости".
Тогда вы сможете ссылаться на него правильно сейчас.
Просто столкнулся с этим с Xcode 7, и мне пришлось скопировать сторонний файл Framework (и комплект) в основной каталог моего проекта, прежде чем перетаскивать его в проект Xcode. Это позволило ему добавить правильный путь поиска Framework и больше не доставляло мне никаких проблем.
Просто решите эту проблему самостоятельно после создания новой цели теста в Objective-C.
Следует помнить, что при некоторых обстоятельствах каждая цель теста должна быть указана в Podfile
с pod
зависимостей. Если Podfile
только связывает проект с модулями, он может не найти файлы заголовков модуля.
Вот пример более сложного Podfile
из документов по кокоаподам.
target 'MyApp' do
pod 'ObjectiveSugar', '~> 0.5'
target "MyAppTests" do
inherit! :search_paths
pod 'OCMock', '~> 2.0.1'
end
end
post_install do |installer|
installer.pods_project.targets.each do |target|
puts "#{target.name}"
end
end
Я столкнулся с этой ошибкой при попытке установить ссылку на свой собственный фреймворк. Проблема заключалась в том, что я не настроил свой фреймворк для экспорта необходимых заголовков. Для этого:
- Выберите каждый файл заголовка, который вы хотите сделать доступным, перейдите в "Инспектор файлов"> "Целевое членство" и убедитесь, что цель отмечена и установлена на "Общедоступный".
- В файле верхнего уровня MyFrameworkName.h импортируйте каждый файл заголовка, который вы хотите сделать доступным: например,
#import <MyFrameworkName/MyPublicHeader.h>
В моем случае, используя CocoaPods, Xcode работал нормально, но сборка из командной строки не могла найти заголовки платформы.
Решение было построить рабочее пространство, а не проект!