Pull to refresh

Comments 8

Совершенно не ясно зачем тогда было переезжать, все проблемы которые описаны решены в CocoaPods.
Нормальное решение это совместное использование CocoaPods и SPM.

Плюс один.


Cartage всегда был странным. Как будто зонтик в кармане открываешь каждый раз.

Основная причина переезда - возможность собирать зависимости отдельно от проекта. По моему, CocoaPods так не умеет.

А нельзя было сделать, например, кеш собранных либ кокоаподс и через симлинк подсовывать в DervedData папку теми же скриптами, например?

Я буквально пару недель назад наоборот, выдирала с кровью Carthage из проекта с 30 подпроектами. Прокляла и "архитектора" и картаж, который впиливали не очень умные люди. Большей мусорки не видела, наверное, никогда.

DerivedData - это внутренности реализации Xcode. Лезть туда совершенно не хотелось. Carthage хорош как раз тем, что живет отдельно от Xcode. Если нам нужно будет избавится от него и всех зависимостей, то все, что нужно сделать - это убрать Cartfile и линковку фреймворков в конфигурации xcodegen. Не пойму чем Carthage вас так обидел :)

Интересный опыт, спасибо за статью! Тоже меняли CocoaPods на Carthage.

Есть пара вопросов:

  • Вы все сторонние зависимости линкуете статически? Не рассматривали вариант изменения настроек сборки через файл xcconfig, который можно передать в переменной окружения XCODE_XCCONFIG_FILE?

  • XcodeGen как-то самостоятельно резолвит и включает ресурсы статических фреймворков из папки проекта в Checkouts?

  • Все, но такой вариант не рассматривали. У вас есть такой опыт?

  • Нет. Мы решили это добавлением ресурсов в бандл приложния. Вот фрагмент конфигурации:

targets:
  Joom:
    sources:
      - path: path_to_carthage/Carthage/Build/iOS/Static/DTCoreText.framework/default.css
        group: Joom/Resources

Для статической линковки не использовали.

Но до появления поддержки xcframework в Carthage исключали архитектуру arm64 для симулятора через этот файл согласно инструкции, которую, судя по статье, вы тоже используете.

Sign up to leave a comment.