Статическая структура, связанная с Cocoapod, не найдена в основном проекте

Я пытаюсь добавить статическую структуру (Moya) в свой частный проект Cocoapod через Carthage.

Моя цель состоит в том, чтобы включить Moya в качестве статического фреймворка в мой частный Cocoapod (SwiftModel) и использовать Moya также в моем основном проекте (поскольку SwiftModel имеет зависимость от него).

Я добавил Moya в свою структуру, выполнив следующие шаги:

  1. структура ссылок в файле podspec

    s.vendored_frameworks = 'SwiftModel/Carthage/Build/iOS/Moya.framework'

  2. добавить Moya в частную структуру (связать двоичный файл с библиотеками)

введите описание изображения здесь

Итак, внутри моего проекта Pods это выглядит так:

введите здесь описание изображения

Попытка добавить путь к «Пути поиска заголовков фреймворка» не внесла никаких изменений. Я пытался добавить его в основной проект и в проект pods.

Когда вы просто создаете приватную капсулу, все работает нормально, и Moya распознается. Однако, если я хочу построить основной проект (который включает в себя мой частный модуль), я всегда получаю эту ошибку:

фреймворк не найден Мойя для архитектуры arm64

введите здесь описание изображения


person gpichler    schedule 23.08.2016    source источник
comment
Cocoapod и Carthage - это две разные вещи, когда вы используете Cocoapod, вам не нужно явно добавлять файл фреймворка в свой проект. Если вы добавляете его с помощью Carthage, вам нужно добавить файл .Framework в раздел Link Binary With Libraries вашего проекта, а не внутри Pod.   -  person Dipen Panchasara    schedule 23.08.2016
comment
Я явно хочу добавить фреймворк, так как хочу сократить время компиляции в своем основном проекте. Однако мой собственный фреймворк интегрирован как частный модуль, но мой частный модуль использует другие фреймворки, такие как Moya, которые интегрированы как фреймворк. (см. шаг 2)   -  person gpichler    schedule 23.08.2016
comment
Хотя вам нужно добавить его в свой проект, а не в проект Pod. Переместите его внутрь своего проекта из проекта Pod.   -  person Dipen Panchasara    schedule 23.08.2016
comment
@DipenPanchasara, к сожалению, добавление его в Link Binary with Libraries (содержащее Moya.framework и Pods.framework) в основном проекте не помогло, все та же проблема.   -  person gpichler    schedule 23.08.2016
comment
Удалите его из проекта Podfile и Pod. Храните его только в Link Binary with Libraries проекта. Не держите его в обоих местах.   -  person Dipen Panchasara    schedule 23.08.2016
comment
У меня нет Мойи в Подфайле, она интегрирована через Карфаген. Мне нужна Мойя в моем личном модуле и в моем основном проекте. Когда я просто использую Cocoapods, я также могу использовать зависимость модуля в своем основном проекте, однако это кажется невозможным с Carthage.   -  person gpichler    schedule 23.08.2016
comment
зачем он нужен в обоих местах? Используйте любой из них за раз: 1) добавьте вручную в свой основной проект, 2) добавьте с помощью Cocoapods или 3) добавьте с помощью Carthage.   -  person Dipen Panchasara    schedule 23.08.2016
comment
Извините, если я недостаточно хорошо объяснил. SwiftModel (частный модуль) — это автономный фреймворк, который можно использовать и в других проектах (требуется Moya через Carthage для сокращения времени компиляции), для основного проекта требуется SwiftModel (как Cocoapod) и Moya (должен использоваться Moya из SwiftModel.   -  person gpichler    schedule 23.08.2016


Ответы (1)


Поскольку ваша ошибка гласит, что

фреймворк не найден Мойя для архитектуры arm64

Это означает, что Moya недоступна для архитектуры arm64, но ваш основной проект имеет следующие архитектуры: arm64, armv7, armv7s. Remove the arm64 из допустимой архитектуры вашего основного проекта.

  • Также попробуйте добавить -Objc в другие флаги ссылок.
  • Попробуйте добавить libz в раздел библиотеки ссылок вашего проекта.

Матрица поддержки iOS: -

введите здесь описание изображения

person pkc456    schedule 30.08.2016
comment
К сожалению, невозможно удалить архитектуру arm64 из моего основного проекта. Также было бы удивительно, если бы Мойя не поддерживала arm64. - person gpichler; 31.08.2016
comment
Вы пробовали другие варианты, которые я написал в формате пули. - person pkc456; 31.08.2016
comment
Да, к сожалению, ошибка все еще возникает. Я не уверен, что это вообще возможно с Cocoapods (поставщики фреймворков). - person gpichler; 01.09.2016
comment
Я только что нашел похожую проблему на официальном github moya. (Кое-что о carthage update --platform iOS --no-use-binaries и удалении папки.) - person pkc456; 01.09.2016