У меня быстрый проект с некоторыми фреймворками, добавленными через carthage. Можно ли использовать эти рамки в игровой площадке внутри проекта и как ее использовать, потому что
import Argo
не работает: (
У меня быстрый проект с некоторыми фреймворками, добавленными через carthage. Можно ли использовать эти рамки в игровой площадке внутри проекта и как ее использовать, потому что
import Argo
не работает: (
Это перестало работать в какой-то момент. Вздох
Что я делаю сейчас
github "ReactiveX/RxSwift"
и запустите carthage update --platform iOS
На данный момент я могу запускать файлы с игровой площадки.
🤷🏻♂️
Детская площадка имеет доступ к внешним фреймворкам, если она является частью рабочей области, в которой создается цель, настроенная для доступа к этим фреймворкам.
Если вы хотите добавить игровую площадку в существующий проект Carthage, вам нужно только сохранить проект как рабочее пространство (Файл> Сохранить как рабочее пространство...), построить цель, и все готово.
Если вы просто хотите распространять игровую площадку с помощью сторонних фреймворков, вам нужно создать пустое рабочее пространство. Вот пошаговый пример игровой площадки с платформой RxSwift:
Создайте новый проект XCode типа Кросс-платформенный> Другой> Пустой. Назовите это RxPlayground.
Это создаст эту структуру RxPlayground/RxPlayground.xcodeproj и откроет пустой Xcode.
Скачать RxSwift с Карфагеном
github "ReactiveX/RxSwift" "swift4.0"
carthage update --platform iOS
Карфагена carthage update --platform iOS
.Добавьте игровую площадку в проект.
Создать рабочее пространство
Скопируйте фреймворки в каталог продуктов.
cp -rv "${SRCROOT}/Carthage/Build/iOS/" "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}"
На этом этапе Xcode и Finder выглядят так:
Обратите внимание, что Carthage/и Cartfile.resolved появляются, когда вы запускаете Carthage, без них ваша игровая площадка будет всего в нескольких Ks.
Наконец, построить проект (⌘B). Теперь вы можете использовать рамки на вашей детской площадке:
//: Playground - noun: a place where people can play
import RxSwift
_ = Observable<Void>.empty()
.subscribe(onCompleted: {
print("Completed")
})
Иногда в первый раз, когда вы строите (⌘B), Xcode не замечает новую платформу (вздох). Я нажимаю на цель и возвращаюсь к исходному файлу или заново открываю проект. У меня нет объяснения, почему это происходит.
Чтобы среда работала на игровой площадке, проект, создающий структуру, должен быть включен в рабочую область для вашего проекта. Поэтому для выполнения этой работы вам необходимо выполнить следующие действия:
File > Save As Workspace
в Xcode.Carthage/Checkouts
в рабочую область.Я решил это, скопировав встроенные фреймворки в каталог Built Products, где Playgrounds в рабочей области также ищет фреймворки. Примечание: вам также нужно запустить липо и удалить неиспользуемые архитектуры из двоичных файлов FAT.
Подробнее здесь: https://github.com/richardnees/CarthagePlaygrounds
Основанный на @Jano отличный ответ (спасибо за это), я создал полностью функциональную игровую площадку, чтобы взаимодействовать с картой Карфагена:
https://github.com/backslash-f/carthage-playground
В качестве примера я включил схему диаграмм:
Я тестировал Xcode 10.1.
"Работает на моей машине". 👍🏻
Нашел, как это сделать, не перейдя в рабочее пространство и не добавив файл.xcodeproj из папки Carthage/Checkouts в ваш проект. Это работает, если у вас есть какая-то рамочная цель, которая содержит все источники, которые вы хотите использовать на игровой площадке. Эта структура должна быть в "Встроенных фреймворках" вашей основной цели.
Это сработало для меня