Прежде всего, я включил use_framework! в подфайле.
Предположим, что основным проектом является MAIN_APP, а два подпроекта: FRAMEWORK_A и FRAMEWORK_B.
MAIN_APP требует FRAMEWORK_A и FRAMEWORK_B, а FRAMEWORK_B также требует FRAMEWORK_A.
Все проекты/цели используют CocoaPods для управления сторонними библиотеками.
В настоящее время мой подфайл выглядит следующим образом:
target :MAIN_APP do
project 'MAIN_APP'
pod 'PodA'
end
target :FRAMEWORK_A do
project 'FRAMEWORK_A'
pod 'PodB'
end
target :FRAMEWORK_B do
project 'FRAMEWORK_B'
pod 'PodC'
end
Я вручную добавил FRAMEWORK_A для создания настроек FRAMEWORK_B и FRAMEWORK_A и FRAMEWORK_B для создания настроек MAIN_APP.
Весь код компилируется хорошо, но при запуске MAIN_APP происходит сбой, потому что он не может загрузить Framework of PodB.
Я знаю, что я могу вручную добавить PodB в MAIN_APP и FRAMEWORK_B, но можно ли определить эту целевую зависимость в подфайле?
Btw, когда pod install
, я получил предупреждение:
[!] Подфайл содержит объекты каркаса, для которых подфайл не содержит целевые объекты (цели, которые вставляют фреймворк).
Если этот проект предназначен для разработки рамок, вы можете игнорировать это сообщение. В противном случае добавьте цель в подфайл, который внедряет эти фреймворки, чтобы убрать это сообщение (например, тестовый объект).
Как я знаю, я могу использовать вложенную цель для целей хоста, например:
target :FRAMEWORK_A
target :MAIN_APP
end
end
Таким образом, CocoaPods настроит MAIN_APP для использования FRAMEWORK_A и наследует зависимостей pod от FRAMEWORK_A. Но кажется, что я не могу сделать это с помощью нескольких зависимостей типа:
target :FRAMEWORK_A
target :MAIN_APP
end
end
target :FRAMEWORK_B
target :MAIN_APP
end
end
Поскольку цель: MAIN_APP не может быть объявлена дважды.
Есть ли какие-либо лучшие решения вместо определения зависимостей pod как функции в подфайле и включать во все целевые?