Использование внешних библиотек на детской площадке Swift 4
Я пытался изучить Swift 4, и поэтому мне нужно было использовать Xcode9 Beta в качестве IDE. Я хотел бы загрузить большой файл данных CSV, чтобы провести анализ данных на игровой площадке. Я пытаюсь использовать библиотеку CSVImporter, установленную с помощью Carthage, как рекомендовано разработчиком.
Я потратил неделю на эту проблему, пытаясь следовать руководствам, которые я нашел в Интернете, например, здесь - Stackru, здесь - Medium, но все они ссылаются на предыдущие версии Swift и Xcode, и ни одна из них, похоже, не работает.
В целом их подход заключается в том, чтобы включить игровую площадку в рабочее пространство с проектом, использующим импортированный ресурс. Я обычно получаю "Нет такого модуля" CSVImporter "".
Мой конкретный вопрос: как мне настроить Swift 4 Playground, чтобы я мог импортировать CSVImporter с Xcode 9 Beta?
Хотя у меня есть эта конкретная задача, я думаю, что она будет представлять общий интерес для сообщества. Я подозреваю, что кто-то с гораздо более ясным представлением, чем я, о том, как Xcode выполняет сборки и разрешает зависимости, сможет решить эту проблему довольно легко! Большое спасибо.
1 ответ
В принципе, вы правильно поняли. Подход есть:
- Создать новый проект XCode для Cocoa Framework под MacOS
- Создайте
Cartfile
с вашими зависимостями - Построить зависимости (например,
carthage update --platform macOS
) - Импортировать
.framework
файлы, которые были построены (изCarthage/Build/Mac
) - Создайте дополнительный этап сборки, который будет запускать скрипт
/usr/local/bin/carthage copy-frameworks
и скопируйте импортированные фреймворки (просто следуйте указаниям Карфагена, пока все одинаково) - Создайте некоторый файл.swift (например,
main.swift
) это будет просто импортировать рамки, которые вы импортировали через Карфаген - Сохранить проект XCode как файл рабочей области
- Создайте новую игровую площадку (также MacOS) и сохраните ее в корневой папке проектов вашей "фальшивой" инфраструктуры
- Добавьте игровую площадку в рабочее пространство (начиная с XCode 9 невозможно создавать игровые площадки непосредственно в проектах / рабочих пространствах, поэтому вам нужно проделать этот трюк с добавлением существующего файла в рабочую область)
- Создай свой проект
- В файле игровой площадки импортируйте вашу "фальшивую" платформу (см. Шаг 1) и только после импорта вашей каркасной структуры зависимостей.
- прибыль
Если ваши внешние библиотеки являются пакетами SPM, вы можете создать игровую площадку с помощью Arena:
arena https://github.com/finestructure/Gala
resolving package dependencies
libraries found: Gala
✅ created project in folder 'SPM-Playground'