Самый быстрый способ добавить Карфаген в Xcode Project
Какой самый быстрый способ добавить зависимости в проекте XCode, используя Carthage.
Как добавить или отредактировать зависимости позже.
3 ответа
Установить Карфаген
Открытый терминал
Терминал: cd ~/Path/To/ Папка, содержащая проект
Создайте файл Carthage как:
Терминал: сенсорный Cartfile
Откройте файл Cartfile из папки проекта и добавьте необходимые зависимости
Пример файла Cartfile
github "Alamofire / Аламофир" == 4.5
github "Alamofire / AlamofireImage"
После редактирования файла Cartfile сохраните его.
Запустите следующую команду из терминала
Терминал: обновление карфагена - платформа iOS
xCode> Этапы сборки
- Кнопка "Плюс" в верхнем левом углу> Фазы запуска нового скрипта
- Запустите скрипт> окно скрипта оболочки> добавьте следующее:
/ usr / local / bin / carthage copy-frameworks
- Запустите скрипт> окно входного файла> добавьте следующее:
$ (SRCROOT) /Carthage/Build/iOS/DependencyName.framework
- Связать двоичные файлы с библиотеками> кнопка "Плюс"> "Добавить другое"> "Перейти к папке проекта"> "Карфаген"> "Создать"> "iOS"> "Framework для добавления"
Готово
Установка Карфагена
//Homebrew brew install carthage
Создайте
Cartfile
файл в проекте (.xcodeproj
)/Рабочее пространство(.xcworkspace
) каталогИзменить
Cartfile
. Добавить необходимую зависимость == репоgithub "<owner>/<repo>" == <version>
Бегать
carthage update
. Логика высокого уровня:`carthage update [dependency]` { - reads `Cartfile`, resolves dependency graph and generates `Cartfile.resolved` to store a list of versions that will be actually built //--no-use-binaries - this flag force a Carthage to not use a `Prebuilt framework` //--no-build - this flag skip a building step - `carthage build` `carthage bootstrap [dependency]` { - reads `Cartfile.resolved` `carthage checkout [dependency]` { `carthage fetch <path>` { - fetch dependency from `Cartfile.resolved` into `~/Library/Caches/org.carthage.CarthageKit/` folder } - checkout/move a dependency from `~/Library/Caches/org.carthage.CarthageKit/` to generated `Carthage/Checkouts` folder } `carthage build [dependency]` { - builds all `shared frameworks schemes` from `Carthage/Checkouts` into generated `Carthage/Build` folder //--no-skip-current - this flag also builds all `shared frameworks schemes` of a consumer workspace/project(in addition to `Carthage/Checkouts` folder) } } }
Перетащите построенные фреймворки в
General -> Frameworks and Libraries
Запускаем следующий скрипт. Этот шаг важен, потому что процесс сборки Carthage
fat
двоичный (arm64... + x86_64) с использованиемlipo
[О]. Apple отклоняет заявку, которая ее использует. Вот почему вы должны добавить этот дополнительный шаг, чтобы вырезать архитектуру для симулятора (x86_64)Build Phases -> + -> New Run Script phase -> // /usr/local/bin/carthage - path to Carthage, copy-frameworks - command which sets a necessary architecture and copies framework to an application bundle Shell -> /usr/local/bin/carthage copy-frameworks //path to a generated Carthage/Build Input files -> + -> $(SRCROOT)/Carthage/Build/<platform>/<name>.framework
*Любой carthage
команда должна вызываться из Cartfile
папка
- Установите Carthage на свой Mac:
brew install carthage
- Создать
Cartfile
в корневом каталоге проекта, напримерvim Cartfile
и вставьте:github "AFNetworking/AFNetworking" ~> 4.0
- Создайте фреймворки: запустите
carthage update --platform iOS
- Предупреждение: в зависимости от библиотеки, которую вы используете, вам нужно будет следовать их инструкциям относительно того, что
carthage update
команда для конкретного запуска. Вам может потребоваться запустить, например,carthage update --use-xcframeworks --platform iOS --no-use-binaries
вместо. Проверьте их ридми.
- Предупреждение: в зависимости от библиотеки, которую вы используете, вам нужно будет следовать их инструкциям относительно того, что
- Добавьте его в Xcode: в Finder перейдите к
$project_dir/Carthage/Build
. Вы найдетеFrameworkName.framework
илиFrameworkName.xcframework
. Перетащите.framework
/.xcframework
в ваш проект Xcode (в навигаторе проекта).