Мне было интересно, есть ли что-то вроде частных модулей в Carthage
, у меня есть пара фреймворков, и в настоящее время я использую git submodules
, я начал использовать Carthage
для нового проекта, и это довольно неплохо, но пока я просто настроил его для управления зависимостями сторонних фреймворков. Я проверил документацию по carthage, но не совсем понимаю, как его настроить. Carthage
работает только с Github
репозиториями? Может ли он работать с Atlassian-Stash
(сейчас Bitbucket
)? Если да, то как?
Как мне настроить Carthage для использования моих собственных фреймворков, находящихся в частном репозитории, таком как Stash (Bitbucket)?
Ответы (3)
Итак, я наконец узнал, как настроить Карфаген с помощью Atlassian-Bitbucket
на Cartfile
i Просто нужно определить источник зависимости, который является репозиторием git
Корпоративный репозиторий git, например Atlassian-Stash(Bitbucket)
git "https://stashRepo"
он также работает с ssh://
Или локальный проект
git "file:///directory/to/project" "branch"
ОБНОВЛЕНИЕ
Карфаген добавил дополнительную документацию о том, как OGDL работает в Cartfile < / а>
Решения для Карфагенской платформы развития
Для кодирования фреймворка способом, аналогичным разработке с использованием модулей разработки CocoaPods, существуют решения, готовые к использованию с Carthage.
Решение 1 - Путь локального пути
Это решение намного удобнее, чем альтернативных решений .
Шаг 1. Добавьте локальный путь в Cartfile
Например,
Добавить локальный путь в Cartfile
git "PATH_TO_LOCAL_DEVELOPING_FRAMEWORK_SOURCE_ROOT_DIRECTORY" "BRANCH_NAME"
Шаг 2. Обновите зависимость Carthage
Например,
Обновите зависимость Carthage с помощью Cartfile
$ carthage update $DEVELOPING_FRAMEWORK_NAME --platform iOS --cache-builds --configuration Debug
Чтобы выполнить отладку с помощью точек останова или разработать платформу в основном проекте, добавьте ссылку на проект разработки инфраструктуры $(DEVELOPING_FRAMEWORK).xcodeproj
в основное приложение и создайте основное приложение в Xcode.
Осторожно
Удалите накладные расходы на разработку (например, изменения в $(MAIN_APP_NAME).xcodeproj/project.pbxproj
из-за добавления ссылки на проект разработки фреймворка) перед фиксацией изменений в удаленном репо.
Решение 2. Способ символического связывания
Протестированная среда
- Xcode 10.1
- macOS 10.13.6
Исходное местоположение файла корзины
github
- репозиторий GitHub
github "<owner>/<repo>" //GitHub.com
github "https://<path>" //GitHub Enterprise Server
git
- репозиторий Git
git "https://<path>" //remote
git "ssh://<command>" //ssh connection
git "file:///<path>" "<branch_name>" //local
binary
- предварительно скомпилированный двоичный файл
binary "https://<path>.json" //remote
binary "file:///<path>.json" //local
Обратите внимание, что file:/
используется для локальных файлов, что полезно для разработки / отладки зависимостей. Не забудьте зафиксировать изменения перед использованием git
[Local CocoaPods] [Локальный SPM]