Использование внешних библиотек на детской площадке Swift 4

Я пытался изучить Swift 4, и поэтому мне нужно было использовать Xcode9 Beta в качестве IDE. Я хотел бы загрузить большой файл данных CSV, чтобы провести анализ данных на игровой площадке. Я пытаюсь использовать библиотеку CSVImporter, установленную с помощью Carthage, как рекомендовано разработчиком.

Я потратил неделю на эту проблему, пытаясь следовать руководствам, которые я нашел в Интернете, например, здесь - Stackru, здесь - Medium, но все они ссылаются на предыдущие версии Swift и Xcode, и ни одна из них, похоже, не работает.

В целом их подход заключается в том, чтобы включить игровую площадку в рабочее пространство с проектом, использующим импортированный ресурс. Я обычно получаю "Нет такого модуля" CSVImporter "".

Мой конкретный вопрос: как мне настроить Swift 4 Playground, чтобы я мог импортировать CSVImporter с Xcode 9 Beta?

Хотя у меня есть эта конкретная задача, я думаю, что она будет представлять общий интерес для сообщества. Я подозреваю, что кто-то с гораздо более ясным представлением, чем я, о том, как Xcode выполняет сборки и разрешает зависимости, сможет решить эту проблему довольно легко! Большое спасибо.

1 ответ

В принципе, вы правильно поняли. Подход есть:

  1. Создать новый проект XCode для Cocoa Framework под MacOS
  2. Создайте Cartfile с вашими зависимостями
  3. Построить зависимости (например, carthage update --platform macOS)
  4. Импортировать .framework файлы, которые были построены (из Carthage/Build/Mac)
  5. Создайте дополнительный этап сборки, который будет запускать скрипт /usr/local/bin/carthage copy-frameworks и скопируйте импортированные фреймворки (просто следуйте указаниям Карфагена, пока все одинаково)
  6. Создайте некоторый файл.swift (например, main.swift) это будет просто импортировать рамки, которые вы импортировали через Карфаген
  7. Сохранить проект XCode как файл рабочей области
  8. Создайте новую игровую площадку (также MacOS) и сохраните ее в корневой папке проектов вашей "фальшивой" инфраструктуры
  9. Добавьте игровую площадку в рабочее пространство (начиная с XCode 9 невозможно создавать игровые площадки непосредственно в проектах / рабочих пространствах, поэтому вам нужно проделать этот трюк с добавлением существующего файла в рабочую область)
  10. Создай свой проект
  11. В файле игровой площадки импортируйте вашу "фальшивую" платформу (см. Шаг 1) и только после импорта вашей каркасной структуры зависимостей.
  12. прибыль

Если ваши внешние библиотеки являются пакетами SPM, вы можете создать игровую площадку с помощью Arena:

arena https://github.com/finestructure/Gala
  resolving package dependencies
  libraries found: Gala
✅  created project in folder 'SPM-Playground'
Другие вопросы по тегам