Open avgx opened 11 months ago
CocoaPods :
Большое количество фреймворков
Удобство использования
При сборке проекта, Xcode компилирует этот исходный код в машинный код и интегрирует его в приложение. Это дает некоторую гибкость и позволяет вносить изменения в исходный код зависимостей.
Иногда могут конфликтовать версии
Carthage
При использовании Carthage фреймворки уже скомпелированы в машинный код и это может "облегчить" приложение и оно будет быстрее запускаться на устройстве например.
Также за счет этого подхода в проект внедряются только те библиотеки, которые используются.
Сложность настройки
SPM
+- В интернете много где написано, что фреймворков, которые можно добавить в проект с помощью SPM, не много. Но сам я не пользовался таким большим количеством фреймворков, чтобы понять насколько это большой минус. К тому же , постепенно эта проблема будет уходить, так как фреймворков будет все больше.
Немного не понял какие примеры нужно привести.
И по поводу gitignore тоже . Нужно показать как это работает или?
Сделать себе по репозиторию с каждым вариантом. Закоммитить туда по проекту с зависимостями. Собирающемуся. Выкачать в пустую папку и убедиться что там нет мусора и бинарей Обновить xcode попробовать собрать ещё раз.
https://github.com/MusaShojen/UIKitLifeCycle
сделал репозиторий, скачал snapkit через SPM и добавил соответствующие строки в GitIgnore , все собирается, однако я не понял действительно ли я игнорирую SPM , так как сразу после запуска колонизованного проекта у меня. автоматически погрузился snapkit .
https://github.com/MusaShojen/SwiftUILifeCycle
Тут использую alamofire через carthage , но при клонировании проекта появляются в проекте Products и Frameworks , и видимо это служит причиной следующей ошибки при попытке скачать alamofire через carthage :
Task failed with exit code 70:
/usr/bin/xcrun xcodebuild -workspace /Users/musasogenov/Documents/SwiftUILifeCycle112/Carthage/Checkouts/Alamofire/Alamofire.xcworkspace -scheme Alamofire\ tvOS -configuration Release -derivedDataPath /Users/musasogenov/Library/Caches/org.carthage.CarthageKit/DerivedData/15.0_15A240d/Alamofire/5.8.0 -sdk appletvos ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES archive VALIDATE_WORKSPACE=NO -archivePath /var/folders/tm/0thvxss55l3dk1lgb8p7d8k00000gn/T/Alamofire SKIP_INSTALL=YES GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=NO CLANG_ENABLE_CODE_COVERAGE=NO STRIP_INSTALLED_PRODUCT=NO (launched in /Users/musasogenov/Documents/SwiftUILifeCycle112/Carthage/Checkouts/Alamofire)
This usually indicates that project itself failed to compile. Please check the xcodebuild log for more details: /var/folders/tm/0thvxss55l3dk1lgb8p7d8k00000gn/T/carthage-xcodebuild.JGpzqj.log
изменено: сделал новый репозиторий пока пытался разобраться с ошибкой, в итоге все работает , но теперь по этой ссылке : https://github.com/MusaShojen/SwiftUILifeCycle/tree/main
https://github.com/MusaShojen/UIKitLifeCycle
сделал репозиторий, скачал snapkit через SPM и добавил соответствующие строки в GitIgnore , все собирается, однако я не понял действительно ли я игнорирую SPM , так как сразу после запуска колонизованного проекта у меня. автоматически погрузился snapkit .
Чтобы проверить нужно выкачать не через xcode, а например из консоли. И после этого запускать xcode и собрать. Если всё хорошо, то всё подтянется и соберётся. При этом в коде, что лежит в репозитории, зависимости не лежат.
по результатам сделай вывод: что использовать в своих проектах (если есть возможность выбрать любой) и в дальнейшем используй именно его.
нужно знать / понимать как и что можно использовать, а вот мучаться от продолжения использования не того, что хочется, на данном этапе не нужно.
https://github.com/MusaShojen/SwiftUIUIKitLifeCycle Здесь использую CocoaPods. Проект собирается, все в порядке.
Из 3 способов, самый удобный конечно же SPM. Он легче всего настраивается) Но в целом если честно carthage и cocoapods не так чтобы очень неудобные. При работе с ними просто нужно следить за версиями (самого carthage, Ruby и тд) Все проблемы с которыми я столкнулся пока работал с carthage и cocoapods были из-за каких-либо несовместимостей (из-за того , что раньше я что-то добавил и это потом устарело) В целом все эти проблемы решаемы, но удобнее всех конечно SPM) Если бы давали выбирать выбрал бы его 100%)
Cocoa pods Carthage SPM
+/- примеры по каждому gitignore